From bffe1074aab0bd180b6b522f07f951f73ef59191 Mon Sep 17 00:00:00 2001 From: Antonio Diaz Diaz Date: Tue, 2 Mar 2010 18:41:41 +0200 Subject: [PATCH] Add Lzip support * configure.ac: Add TAR_COMPR_PROGRAM(lzip) * doc/tar.texi: Reflect lzip support. * src/buffer.c (compress_type) : New constant. (magic): Add magic for lzip. * src/suffix.c (compression_suffixes): Add lz. * src/tar.c: New option --lzip. --- configure.ac | 1 + doc/tar.texi | 23 ++++++++++++++++++----- src/buffer.c | 2 ++ src/suffix.c | 1 + src/tar.c | 10 ++++++++++ 5 files changed, 32 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index 2276b33..7cd8ab2 100644 --- a/configure.ac +++ b/configure.ac @@ -128,6 +128,7 @@ fi TAR_COMPR_PROGRAM(compress) TAR_COMPR_PROGRAM(gzip) TAR_COMPR_PROGRAM(bzip2) +TAR_COMPR_PROGRAM(lzip) TAR_COMPR_PROGRAM(lzma) TAR_COMPR_PROGRAM(lzop) TAR_COMPR_PROGRAM(xz) diff --git a/doc/tar.texi b/doc/tar.texi index abc81df..ed8e526 100644 --- a/doc/tar.texi +++ b/doc/tar.texi @@ -2820,6 +2820,12 @@ backup, using @var{snapshot-file} to determine which files to backup. With other operations, informs @command{tar} that the archive is in incremental format. @xref{Incremental Dumps}. +@opsummary{lzip} +@item --lzip + +This option tells @command{tar} to read or write archives through +@command{lzip}. @xref{gzip}. + @opsummary{lzma} @item --lzma @@ -8628,21 +8634,23 @@ switch to @samp{posix}. @cindex gzip @cindex bzip2 +@cindex lzip @cindex lzma @cindex lzop @cindex compress @GNUTAR{} is able to create and read compressed archives. It supports -@command{gzip}, @command{bzip2}, @command{lzma} and @command{lzop} compression -programs. For backward compatibility, it also supports -@command{compress} command, although we strongly recommend against -using it, because it is by far less effective than other compression -programs@footnote{It also had patent problems in the past.}. +@command{gzip}, @command{bzip2}, @command{lzip}, @command{lzma} and +@command{lzop} compression programs. For backward compatibility, it +also supports @command{compress} command, although we strongly recommend +against using it, because it is by far less effective than other +compression programs@footnote{It also had patent problems in the past.}. Creating a compressed archive is simple: you just specify a @dfn{compression option} along with the usual archive creation commands. The compression option is @option{-z} (@option{--gzip}) to create a @command{gzip} compressed archive, @option{-j} (@option{--bzip2}) to create a @command{bzip2} compressed archive, +@option{--lzip} to create an @asis{lzip} compressed archive, @option{-J} (@option{--xz}) to create an @asis{XZ} archive, @option{--lzma} to create an @asis{LZMA} compressed archive, @option{--lzop} to create an @asis{LSOP} archive, and @@ -8739,6 +8747,7 @@ suffix. The following suffixes are recognized: @item @samp{.tz2} @tab @command{bzip2} @item @samp{.tbz2} @tab @command{bzip2} @item @samp{.tbz} @tab @command{bzip2} +@item @samp{.lz} @tab @command{lzip} @item @samp{.lzma} @tab @command{lzma} @item @samp{.tlz} @tab @command{lzma} @item @samp{.lzo} @tab @command{lzop} @@ -8796,6 +8805,10 @@ Filter the archive through @code{xz}. Otherwise like @itemx --bzip2 Filter the archive through @code{bzip2}. Otherwise like @option{--gzip}. +@opindex lzip +@item --lzip +Filter the archive through @command{lzip}. Otherwise like @option{--gzip}. + @opindex lzma @item --lzma Filter the archive through @command{lzma}. Otherwise like @option{--gzip}. diff --git a/src/buffer.c b/src/buffer.c index 6131038..8147def 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -201,6 +201,7 @@ enum compress_type { ct_compress, ct_gzip, ct_bzip2, + ct_lzip, ct_lzma, ct_lzop, ct_xz @@ -221,6 +222,7 @@ static struct zip_magic const magic[] = { { ct_compress, 2, "\037\235", COMPRESS_PROGRAM, "-Z" }, { ct_gzip, 2, "\037\213", GZIP_PROGRAM, "-z" }, { ct_bzip2, 3, "BZh", BZIP2_PROGRAM, "-j" }, + { ct_lzip, 4, "LZIP", LZIP_PROGRAM, "--lzip" }, { ct_lzma, 6, "\xFFLZMA", LZMA_PROGRAM, "--lzma" }, { ct_lzop, 4, "\211LZO", LZOP_PROGRAM, "--lzop" }, { ct_xz, 6, "\0xFD7zXZ", XZ_PROGRAM, "-J" }, diff --git a/src/suffix.c b/src/suffix.c index cd9c01a..23868c9 100644 --- a/src/suffix.c +++ b/src/suffix.c @@ -38,6 +38,7 @@ static struct compression_suffix compression_suffixes[] = { { S(tbz, BZIP2) }, { S(tbz2, BZIP2) }, { S(tz2, BZIP2) }, + { S(lz, LZIP) }, { S(lzma, LZMA) }, { S(tlz, LZMA) }, { S(lzo, LZOP) }, diff --git a/src/tar.c b/src/tar.c index 1708715..da12419 100644 --- a/src/tar.c +++ b/src/tar.c @@ -281,6 +281,7 @@ enum INDEX_FILE_OPTION, KEEP_NEWER_FILES_OPTION, LEVEL_OPTION, + LZIP_OPTION, LZMA_OPTION, LZOP_OPTION, MODE_OPTION, @@ -624,6 +625,7 @@ static struct argp_option options[] = { {"ungzip", 0, 0, OPTION_ALIAS, NULL, GRID+1 }, {"compress", 'Z', 0, 0, NULL, GRID+1 }, {"uncompress", 0, 0, OPTION_ALIAS, NULL, GRID+1 }, + {"lzip", LZIP_OPTION, 0, 0, NULL, GRID+1 }, {"lzma", LZMA_OPTION, 0, 0, NULL, GRID+1 }, {"lzop", LZOP_OPTION, 0, 0, NULL, GRID+1 }, {"xz", 'J', 0, 0, NULL, GRID+1 }, @@ -1271,6 +1273,10 @@ tar_help_filter (int key, const char *text, void *input) s = xasprintf (_("filter the archive through %s"), COMPRESS_PROGRAM); break; + case LZIP_OPTION: + s = xasprintf (_("filter the archive through %s"), LZIP_PROGRAM); + break; + case LZMA_OPTION: s = xasprintf (_("filter the archive through %s"), LZMA_PROGRAM); break; @@ -1506,6 +1512,10 @@ parse_opt (int key, char *arg, struct argp_state *state) } break; + case LZIP_OPTION: + set_use_compress_program_option (LZIP_PROGRAM); + break; + case LZMA_OPTION: set_use_compress_program_option (LZMA_PROGRAM); break; -- 2.45.2