Data Structures | Enumerations | Functions

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

Parser for filter-specific options. More...

#include "private.h"

Data Structures

struct  name_id_map
struct  option_map

Enumerations

enum  { OPT_DIST }
enum  { OPT_START_OFFSET }
enum  {
  OPT_PRESET, OPT_DICT, OPT_LC, OPT_LP,
  OPT_PB, OPT_MODE, OPT_NICE, OPT_MF,
  OPT_DEPTH
}

Functions

static void parse_options (const char *str, const option_map *opts, void(*set)(void *filter_options, uint32_t key, uint64_t value, const char *valuestr), void *filter_options)
static void set_delta (void *options, uint32_t key, uint64_t value, const char *valuestr lzma_attribute((unused)))
lzma_options_deltaoptions_delta (const char *str)
 Parser for Delta options.
static void set_bcj (void *options, uint32_t key, uint64_t value, const char *valuestr lzma_attribute((unused)))
lzma_options_bcjoptions_bcj (const char *str)
 Parser for BCJ options.
static void lzma_attribute ((noreturn))
static void set_lzma (void *options, uint32_t key, uint64_t value, const char *valuestr)
lzma_options_lzmaoptions_lzma (const char *str)
 Parser for LZMA options.

Detailed Description

Parser for filter-specific options.


Function Documentation

static void parse_options ( const char *  str,
const option_map opts,
void(*)(void *filter_options, uint32_t key, uint64_t value, const char *valuestr)  set,
void *  filter_options 
) [static]

Parses option=value pairs that are separated with colons, semicolons, or commas: opt=val:opt=val;opt=val,opt=val

Each option is a string, that is converted to an integer using the index where the option string is in the array.

Value can be

  • a string-id map mapping a list of possible string values to integers (opts[i].map != NULL, opts[i].min and opts[i].max are ignored);
  • a number with minimum and maximum value limit (opts[i].map == NULL && opts[i].min != UINT64_MAX);
  • a string that will be parsed by the filter-specific code (opts[i].map == NULL && opts[i].min == UINT64_MAX, opts[i].max ignored)

When parsing both option and value succeed, a filter-specific function is called, which should update the given value to filter-specific options structure.

Parameters:
str String containing the options from the command line
opts Filter-specific option map
set Filter-specific function to update filter_options
filter_options Pointer to filter-specific options structure
Returns:
Returns only if no errors occur.

References message_fatal(), str_to_uint64(), and xstrdup().

Referenced by options_bcj(), options_delta(), and options_lzma().

lzma_options_delta* options_delta ( const char *  str  ) 

Parser for Delta options.

Returns:
Pointer to allocated options structure. Doesn't return on error.

References parse_options(), lzma_options_delta::type, and xmalloc.

lzma_options_bcj* options_bcj ( const char *  str  ) 

Parser for BCJ options.

Returns:
Pointer to allocated options structure. Doesn't return on error.

References parse_options(), lzma_options_bcj::start_offset, and xmalloc.

lzma_options_lzma* options_lzma ( const char *  str  )