diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2008-12-10 01:23:58 +0200 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2008-12-10 01:23:58 +0200 |
commit | 1ea9e7f15afd5d3981e2432710e932320597bca9 (patch) | |
tree | 30e37f2a2f2ae6ffc7ee3901d317b365c489b9bc | |
parent | Put the file format specification into the public domain. (diff) | |
download | xz-1ea9e7f15afd5d3981e2432710e932320597bca9.tar.xz |
Added preset=NUM to --lzma1 and --lzma2. This makes it easy
to take a preset as a template and modify it a little.
-rw-r--r-- | src/xz/message.c | 1 | ||||
-rw-r--r-- | src/xz/options.c | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/xz/message.c b/src/xz/message.c index 0e1f2bc4..39f751e8 100644 --- a/src/xz/message.c +++ b/src/xz/message.c @@ -806,6 +806,7 @@ message_help(bool long_help) "\n" " --lzma1=[OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" " --lzma2=[OPTS] more of the following options (valid values; default):\n" +" preset=NUM reset options to preset number NUM (1-9)\n" " dict=NUM dictionary size (4KiB - 1536MiB; 8MiB)\n" " lc=NUM number of literal context bits (0-4; 3)\n" " lp=NUM number of literal position bits (0-4; 0)\n" diff --git a/src/xz/options.c b/src/xz/options.c index 77ebddd6..e754c266 100644 --- a/src/xz/options.c +++ b/src/xz/options.c @@ -237,6 +237,7 @@ options_delta(const char *str) ////////// enum { + OPT_PRESET, OPT_DICT, OPT_LC, OPT_LP, @@ -254,6 +255,12 @@ set_lzma(void *options, uint32_t key, uint64_t value) lzma_options_lzma *opt = options; switch (key) { + case OPT_PRESET: + if (lzma_lzma_preset(options, (uint32_t)(value))) + message_fatal("LZMA1/LZMA2 preset %u is not supported", + (unsigned int)(value)); + break; + case OPT_DICT: opt->dict_size = value; break; @@ -308,6 +315,7 @@ options_lzma(const char *str) }; static const option_map opts[] = { + { "preset", NULL, 1, 9 }, { "dict", NULL, LZMA_DICT_SIZE_MIN, (UINT32_C(1) << 30) + (UINT32_C(1) << 29) }, { "lc", NULL, LZMA_LCLP_MIN, LZMA_LCLP_MAX }, |