aboutsummaryrefslogtreecommitdiff
path: root/src/lzma
diff options
context:
space:
mode:
Diffstat (limited to 'src/lzma')
-rw-r--r--src/lzma/args.c22
-rw-r--r--src/lzma/args.h2
-rw-r--r--src/lzma/error.c6
-rw-r--r--src/lzma/process.c26
4 files changed, 12 insertions, 44 deletions
diff --git a/src/lzma/args.c b/src/lzma/args.c
index 4393a6bd..a4764032 100644
--- a/src/lzma/args.c
+++ b/src/lzma/args.c
@@ -52,8 +52,7 @@ static size_t filter_count = 0;
enum {
- OPT_COPY = INT_MIN,
- OPT_SUBBLOCK,
+ OPT_SUBBLOCK = INT_MIN,
OPT_X86,
OPT_POWERPC,
OPT_IA64,
@@ -97,7 +96,6 @@ static const struct option long_opts[] = {
{ "compress", no_argument, NULL, 'z' },
// Filters
- { "copy", no_argument, NULL, OPT_COPY },
{ "subblock", optional_argument, NULL, OPT_SUBBLOCK },
{ "x86", no_argument, NULL, OPT_X86 },
{ "bcj", no_argument, NULL, OPT_X86 },
@@ -267,10 +265,6 @@ parse_real(int argc, char **argv)
// Filter setup
- case OPT_COPY:
- add_filter(LZMA_FILTER_COPY, NULL);
- break;
-
case OPT_SUBBLOCK:
add_filter(LZMA_FILTER_SUBBLOCK, optarg);
break;
@@ -314,8 +308,6 @@ parse_real(int argc, char **argv)
static const char *types[] = {
"auto",
"native",
- "single",
- "multi",
"alone",
// "gzip",
NULL
@@ -471,18 +463,6 @@ set_compression_settings(void)
my_exit(ERROR);
}
- // Optimize the filter chain a little by removing all
- // Copy filters.
- for (size_t i = 0; opt_filters[i].id != LZMA_VLI_VALUE_UNKNOWN; ++i) {
- while (opt_filters[i].id == LZMA_FILTER_COPY) {
- size_t j = i;
- do {
- opt_filters[j] = opt_filters[j + 1];
- } while (opt_filters[++j].id
- != LZMA_VLI_VALUE_UNKNOWN);
- }
- }
-
const uint32_t memory_limit = opt_memory / (1024 * 1024) + 1;
uint32_t memory_usage = lzma_memory_usage(opt_filters, true);
diff --git a/src/lzma/args.h b/src/lzma/args.h
index 4f19a01e..c6098558 100644
--- a/src/lzma/args.h
+++ b/src/lzma/args.h
@@ -33,8 +33,6 @@ enum tool_mode {
enum header_type {
HEADER_AUTO,
HEADER_NATIVE,
- HEADER_SINGLE,
- HEADER_MULTI,
HEADER_ALONE,
// HEADER_GZIP,
};
diff --git a/src/lzma/error.c b/src/lzma/error.c
index a83de27a..e5391068 100644
--- a/src/lzma/error.c
+++ b/src/lzma/error.c
@@ -55,6 +55,12 @@ str_strm_error(lzma_ret code)
case LZMA_UNSUPPORTED_CHECK:
return _("Unsupported integrity check type");
+ case LZMA_MEMLIMIT_ERROR:
+ return _("Memory usage limit reached");
+
+ case LZMA_FORMAT_ERROR:
+ return _("File format not recognized");
+
default:
return NULL;
}
diff --git a/src/lzma/process.c b/src/lzma/process.c
index 56bcda9a..c180caf7 100644
--- a/src/lzma/process.c
+++ b/src/lzma/process.c
@@ -160,32 +160,16 @@ single_init(thread_data *t)
lzma_ret ret;
if (opt_mode == MODE_COMPRESS) {
- const lzma_vli uncompressed_size
- = t->pair->src_fd != STDIN_FILENO
- ? (lzma_vli)(t->pair->src_st.st_size)
- : LZMA_VLI_VALUE_UNKNOWN;
-
- // TODO Support Multi-Block Streams to store Extra.
if (opt_header == HEADER_ALONE) {
- lzma_options_alone alone;
- alone.uncompressed_size = uncompressed_size;
- memcpy(&alone.lzma, opt_filters[0].options,
- sizeof(alone.lzma));
- ret = lzma_alone_encoder(&t->strm, &alone);
+ ret = lzma_alone_encoder(&t->strm,
+ opt_filters[0].options);
} else {
- lzma_options_stream stream = {
- .check = opt_check,
- .has_crc32 = opt_check != LZMA_CHECK_NONE,
- .uncompressed_size = uncompressed_size,
- .alignment = 0,
- };
- memcpy(stream.filters, opt_filters,
- sizeof(stream.filters));
- ret = lzma_stream_encoder_single(&t->strm, &stream);
+ ret = lzma_stream_encoder(&t->strm,
+ opt_filters, opt_check);
}
} else {
// TODO Restrict file format if requested on the command line.
- ret = lzma_auto_decoder(&t->strm, NULL, NULL);
+ ret = lzma_auto_decoder(&t->strm);
}
if (ret != LZMA_OK) {