]> granicus.if.org Git - xz/commitdiff
Added preset=NUM to --lzma1 and --lzma2. This makes it easy
authorLasse Collin <lasse.collin@tukaani.org>
Tue, 9 Dec 2008 23:23:58 +0000 (01:23 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Tue, 9 Dec 2008 23:23:58 +0000 (01:23 +0200)
to take a preset as a template and modify it a little.

src/xz/message.c
src/xz/options.c

index 0e1f2bc4c2ce77e776261ac3efe71569b917c6f6..39f751e8c681cd99ef7ad9623af6c02ce696755a 100644 (file)
@@ -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"
index 77ebddd63b3480403c3e9b0090c7d1ce9393bd8a..e754c266005c58f86a3263124417afdacbef0d3f 100644 (file)
@@ -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 },