# Description # # This patch adds `-a' and a long option equivalent `--lzma' # to GNU tar 1.18. # # Changes # # 2007-08-10 - Updated the patch to work with GNU tar 1.18. # # 2007-08-10 - Use `-a' instead of of `-Y'. BusyBox already uses `-a' # and that conflicts less with other tar implementations # than `-Y'. # # 2006-08-16 - Updated magic byte detection for the new .lzma format. # # 2005-12-23 - Updated to use the new lzma command line tool which # replaced the ugly lzmash wrapper script. # # 2005-05-06 - Initial version using lzmash wrapper script # # Copyright information # # GNU tar is copyright by Free Software Foundation, Inc. # This patch was written by Lasse Collin . # # GNU tar is distributed under the GNU GPL. However, the author of # this patch puts the changes made by him into the public domain. diff -ru tar-1.18.orig/src/buffer.c tar-1.18/src/buffer.c --- tar-1.18.orig/src/buffer.c 2007-06-27 16:30:31.000000000 +0300 +++ tar-1.18/src/buffer.c 2007-08-10 23:03:33.430394635 +0300 @@ -205,7 +205,8 @@ ct_none, ct_compress, ct_gzip, - ct_bzip2 + ct_bzip2, + ct_lzma }; struct zip_magic @@ -222,6 +223,7 @@ { ct_compress, 2, "\037\235", "compress", "-Z" }, { ct_gzip, 2, "\037\213", "gzip", "-z" }, { ct_bzip2, 3, "BZh", "bzip2", "-j" }, + { ct_lzma, 6, "\xFFLZMA", "lzma", "-a" }, }; #define NMAGIC (sizeof(magic)/sizeof(magic[0])) diff -ru tar-1.18.orig/src/tar.c tar-1.18/src/tar.c --- tar-1.18.orig/src/tar.c 2007-06-27 16:30:32.000000000 +0300 +++ tar-1.18/src/tar.c 2007-08-10 23:03:33.430394635 +0300 @@ -574,6 +574,8 @@ N_("control pax keywords"), GRID+8 }, {"label", 'V', N_("TEXT"), 0, N_("create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"), GRID+8 }, + {"lzma", 'a', 0, 0, + N_("filter the archive through lzma"), GRID+8 }, {"bzip2", 'j', 0, 0, N_("filter the archive through bzip2"), GRID+8 }, {"gzip", 'z', 0, 0, @@ -1184,6 +1186,10 @@ args->input_files = true; break; + case 'a': + set_use_compress_program_option ("lzma"); + break; + case 'A': set_subcommand_option (CAT_SUBCOMMAND); break;