xz/xz-5.1.1alpha-text-tune.patch
2012-06-01 12:03:42 +00:00

133 lines
3.6 KiB
Diff

--- xz-5.1.1alpha/src/liblzma/api/lzma/container.h.text~ 2011-08-18 18:24:40.000000000 +0200
+++ xz-5.1.1alpha/src/liblzma/api/lzma/container.h 2011-08-18 19:10:12.065402208 +0200
@@ -43,7 +43,7 @@
/*
* Preset flags
*
- * Currently only one flag is defined.
+ * Currently only two flags are defined.
*/
/**
@@ -59,6 +59,12 @@
*/
#define LZMA_PRESET_EXTREME (UINT32_C(1) << 31)
+/**
+ * \brief Text compression preset
+ *
+ * TODO
+ */
+#define LZMA_PRESET_TEXT (UINT32_C(1) << 18)
#ifdef LZMA_UNSTABLE /* Unstable API that may change. Use only for testing. */
/**
--- xz-5.1.1alpha/src/liblzma/lzma/lzma_encoder_presets.c.text~ 2011-08-18 18:24:40.000000000 +0200
+++ xz-5.1.1alpha/src/liblzma/lzma/lzma_encoder_presets.c 2011-08-18 19:08:52.453282915 +0200
@@ -18,7 +18,7 @@ lzma_lzma_preset(lzma_options_lzma *opti
{
const uint32_t level = preset & LZMA_PRESET_LEVEL_MASK;
const uint32_t flags = preset & ~LZMA_PRESET_LEVEL_MASK;
- const uint32_t supported_flags = LZMA_PRESET_EXTREME;
+ const uint32_t supported_flags = LZMA_PRESET_EXTREME | LZMA_PRESET_TEXT;
if (level > 9 || (flags & ~supported_flags))
return true;
@@ -57,5 +57,18 @@ lzma_lzma_preset(lzma_options_lzma *opti
}
}
+ if (flags & LZMA_PRESET_TEXT) {
+ if (level == 0)
+ options->lc = 3;
+ else
+ options->lc = 4;
+ options->lp = 0;
+ options->pb = 0;
+ options->mode = LZMA_MODE_NORMAL;
+ options->nice_len = 273;
+ options->mf = LZMA_MF_BT4;
+ options->depth = 512;
+ }
+
return false;
}
--- xz-5.1.1alpha/src/xz/args.c.text~ 2011-08-18 18:24:40.000000000 +0200
+++ xz-5.1.1alpha/src/xz/args.c 2011-08-18 19:08:52.454282916 +0200
@@ -78,6 +78,7 @@ parse_real(args_info *args, int argc, ch
OPT_NO_ADJUST,
OPT_INFO_MEMORY,
OPT_ROBOT,
+ OPT_TEXT,
};
static const char short_opts[]
@@ -117,6 +118,8 @@ parse_real(args_info *args, int argc, ch
{ "extreme", no_argument, NULL, 'e' },
{ "fast", no_argument, NULL, '0' },
{ "best", no_argument, NULL, '9' },
+ { "text", no_argument, NULL, OPT_TEXT },
+
// Filters
{ "lzma1", optional_argument, NULL, OPT_LZMA1 },
@@ -415,6 +418,10 @@ parse_real(args_info *args, int argc, ch
opt_auto_adjust = false;
break;
+ case OPT_TEXT:
+ coder_set_text();
+ break;
+
default:
message_try_help();
tuklib_exit(E_ERROR, E_ERROR, false);
--- xz-5.1.1alpha/src/xz/coder.c.text~ 2011-08-18 18:24:40.000000000 +0200
+++ xz-5.1.1alpha/src/xz/coder.c 2011-08-18 19:08:52.456282919 +0200
@@ -49,6 +49,9 @@ static uint32_t preset_number = 6;
/// compression ratio.
static bool preset_extreme = false;
+/// TODO: Description..
+static bool preset_text = false;
+
/// Integrity check type
static lzma_check check;
@@ -99,6 +102,14 @@ coder_set_extreme(void)
extern void
+coder_set_text(void)
+{
+ preset_text = true;
+ return;
+}
+
+
+extern void
coder_add_filter(lzma_vli id, void *options)
{
if (filters_count == LZMA_FILTERS_MAX)
@@ -156,6 +167,9 @@ coder_set_compression_settings(void)
if (preset_extreme)
preset_number |= LZMA_PRESET_EXTREME;
+ if (preset_text)
+ preset_number |= LZMA_PRESET_TEXT;
+
if (lzma_lzma_preset(&opt_lzma, preset_number))
message_bug();
--- xz-5.1.1alpha/src/xz/coder.h.text~ 2011-08-18 18:24:40.000000000 +0200
+++ xz-5.1.1alpha/src/xz/coder.h 2011-08-18 19:08:52.457282921 +0200
@@ -57,6 +57,9 @@ extern void coder_set_preset(uint32_t ne
/// Enable extreme mode
extern void coder_set_extreme(void);
+/// Enable text mode
+extern void coder_set_text(void);
+
/// Add a filter to the custom filter chain
extern void coder_add_filter(lzma_vli id, void *options);