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.   | |
Compresses or uncompresses a file.
| enum coder_init_ret | 
Return value type for coder_init().
| 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] | 
        
Compress or decompress using liblzma.
References lzma_stream::avail_in, lzma_stream::avail_out, io_read(), io_write(), lzma_code(), LZMA_FINISH, lzma_memusage(), LZMA_NO_CHECK, LZMA_OK, LZMA_STREAM_END, message_error(), message_mem_needed(), message_progress_update(), message_strm(), message_warning(), lzma_stream::next_in, lzma_stream::next_out, opt_mode, file_pair::src_eof, file_pair::src_name, user_abort, and V_ERROR.
Referenced by coder_run().
| 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 | ) | 
Compress or decompress the given file.
References lzma_stream::avail_in, coder_init(), coder_normal(), coder_passthru(), io_close(), io_open_dest(), io_open_src(), io_read(), message_filename(), message_progress_end(), message_progress_start(), lzma_stream::next_in, opt_mode, file_pair::src_st, and user_abort.
| 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().
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().
 1.7.1