Enumerations | Functions | Variables

/tmp/buildd/xz-utils-5.0.0/src/xz/coder.c File Reference

Compresses or uncompresses a file. More...

#include "private.h"

Enumerations

enum  coder_init_ret { CODER_INIT_NORMAL, CODER_INIT_PASSTHRU, CODER_INIT_ERROR }
 

Return value type for coder_init().

More...

Functions

void coder_set_check (lzma_check new_check)
 Set the integrity check type used when compressing.
void coder_set_preset (size_t new_preset)
 Set preset number.
void coder_set_extreme (void)
 Enable extreme mode.
void coder_add_filter (lzma_vli id, void *options)
 Add a filter to the custom filter chain.
static void lzma_attribute ((noreturn))
void coder_set_compression_settings (void)
static bool is_format_xz (void)
 Return true if the data in in_buf seems to be in the .xz format.
static bool is_format_lzma (void)
 Return true if the data in in_buf seems to be in the .lzma format.
static enum coder_init_ret coder_init (file_pair *pair)
static bool coder_normal (file_pair *pair)
 Compress or decompress using liblzma.
static bool coder_passthru (file_pair *pair)
void coder_run (const char *filename)
 Compress or decompress the given file.

Variables

enum operation_mode opt_mode = MODE_COMPRESS
enum format_type opt_format = FORMAT_AUTO
bool opt_auto_adjust = true
static lzma_stream strm = LZMA_STREAM_INIT
 Stream used to communicate with liblzma.
static lzma_filter filters [LZMA_FILTERS_MAX+1]
 Filters needed for all encoding all formats, and also decoding in raw data.
static io_buf in_buf
 Input and output buffers.
static io_buf out_buf
static size_t filters_count = 0
 Number of filters. Zero indicates that we are using a preset.
static size_t preset_number = 6
 Number of the preset (0-9).
static bool preset_extreme = false
static lzma_check check
 Integrity check type.
static bool check_default = true
 This becomes false if the --check=CHECK option is used.

Detailed Description

Compresses or uncompresses a file.


Enumeration Type Documentation

Return value type for coder_init().


Function Documentation

void coder_set_check ( lzma_check  new_check  ) 

Set the integrity check type used when compressing.

References check, and check_default.

void coder_set_preset ( size_t  new_preset  ) 

Set preset number.

References filters_count, lzma_filter::options, and preset_number.

void coder_set_extreme ( void   ) 

Enable extreme mode.

References preset_extreme.

void coder_add_filter ( lzma_vli  id,
void *  options 
)

Add a filter to the custom filter chain.

References filters_count, lzma_filter::id, LZMA_FILTERS_MAX, message_fatal(), and lzma_filter::options.

static bool is_format_xz ( void   )  [static]

Return true if the data in in_buf seems to be in the .xz format.

References lzma_stream::avail_in.

Referenced by coder_init().

static bool is_format_lzma ( void   )  [static]

Return true if the data in in_buf seems to be in the .lzma format.

References lzma_stream::avail_in, lzma_options_lzma::dict_size, LZMA_FILTER_LZMA1, LZMA_OK, lzma_properties_decode(), and lzma_filter::options.

Referenced by coder_init().

static enum coder_init_ret coder_init ( file_pair pair  )  [static]

Detect the input file type (for now, this done only when decompressing), and initialize an appropriate coder. Return value indicates if a normal liblzma-based coder was initialized (CODER_INIT_NORMAL), if passthru mode should be used (CODER_INIT_PASSTHRU), or if an error occurred (CODER_INIT_ERROR).

References lzma_stream::avail_out, check, hardware_memlimit_get(), is_format_lzma(), is_format_xz(), lzma_alone_decoder(), lzma_alone_encoder(), lzma_code(), lzma_memusage(), LZMA_OK, lzma_raw_decoder(), lzma_raw_encoder(), LZMA_RUN, lzma_stream_decoder(), lzma_stream_encoder(), LZMA_TELL_UNSUPPORTED_CHECK, message_error(), message_mem_needed(), message_strm(), lzma_stream::next_out, opt_format, opt_mode, file_pair::src_name, and V_ERROR.

Referenced by coder_run().

static bool coder_normal ( file_pair pair  )  [static]
static bool coder_passthru ( file_pair pair  )  [static]

Copy from input file to output file without processing the data in any way. This is used only when trying to decompress unrecognized files with --decompress --stdout --force, so the output is always stdout.

References lzma_stream::avail_in, io_read(), io_write(), message_progress_update(), lzma_stream::total_in, lzma_stream::total_out, and user_abort.

Referenced by coder_run().

void coder_run ( const char *  filename  ) 

Variable Documentation

enum operation_mode opt_mode = MODE_COMPRESS

Operation mode of the command line tool. This is set in args.c and read in several files.

Referenced by coder_init(), coder_normal(), coder_run(), message_filename(), message_mem_needed(), print_filename(), progress_pos(), and suffix_get_dest_name().

enum format_type opt_format = FORMAT_AUTO

File format to use when encoding or what format(s) to accept when decoding. This is a global because it's needed also in suffix.c. This is set in args.c.

Referenced by coder_init(), compressed_name(), list_file(), and uncompressed_name().

bool opt_auto_adjust = true

If true, the compression settings are automatically adjusted down if they exceed the memory usage limit.

lzma_stream strm = LZMA_STREAM_INIT [static]

Stream used to communicate with liblzma.

Referenced by parse_indexes().

lzma_filter filters[LZMA_FILTERS_MAX+1] [static]

Filters needed for all encoding all formats, and also decoding in raw data.

Referenced by parse_block_header().

io_buf in_buf [static]

Input and output buffers.

size_t filters_count = 0 [static]

Number of filters. Zero indicates that we are using a preset.

Referenced by coder_add_filter(), and coder_set_preset().

size_t preset_number = 6 [static]

Number of the preset (0-9).

Referenced by coder_set_preset().

bool preset_extreme = false [static]

If a preset is used (no custom filter chain) and preset_extreme is true, a significantly slower compression is used to achieve slightly better compression ratio.

Referenced by coder_set_extreme().

lzma_check check [static]

Integrity check type.

Referenced by coder_init(), coder_set_check(), and lzma_block_buffer_encode().

bool check_default = true [static]

This becomes false if the --check=CHECK option is used.

Referenced by coder_set_check().