Skip to content

Commit

Permalink
Merge pull request libarchive#1342 from hjmallon/pr.fix_high_zstd
Browse files Browse the repository at this point in the history
Fixes for using zstd binary
  • Loading branch information
mmatuska committed Mar 28, 2020
2 parents 0872412 + f648049 commit 208c1ba
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion libarchive/archive_write_add_filter_zstd.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ struct private_data {
#endif
};

#define CLEVEL_STD_MAX 19 /* without using --ultra */

static int archive_compressor_zstd_options(struct archive_write_filter *,
const char *, const char *);
static int archive_compressor_zstd_open(struct archive_write_filter *);
Expand Down Expand Up @@ -297,7 +299,12 @@ archive_compressor_zstd_open(struct archive_write_filter *f)
int r;

archive_string_init(&as);
archive_string_sprintf(&as, "zstd -%d", data->compression_level);
/* --no-check matches library default */
archive_string_sprintf(&as, "zstd -%d --no-check", data->compression_level);

if (data->compression_level > CLEVEL_STD_MAX) {
archive_strcat(&as, " --ultra");
}

f->write = archive_compressor_zstd_write;
r = __archive_write_program_open(f, data->pdata, as.s);
Expand Down

0 comments on commit 208c1ba

Please sign in to comment.