From 30d7a346e68bb7f0cb916e6c1e75dd75822d88a8 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Mon, 27 Nov 2006 20:24:40 +0000 Subject: tar: fix misplaced --exclude long option definition --- archival/tar.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/archival/tar.c b/archival/tar.c index be3df687e..ca6c1696e 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -704,7 +704,6 @@ static const struct option tar_long_options[] = { # if ENABLE_FEATURE_TAR_FROM { "files-from", 1, NULL, 'T' }, { "exclude-from", 1, NULL, 'X' }, - { "exclude", 1, NULL, 0xfd }, # endif # if ENABLE_FEATURE_TAR_GZIP { "gzip", 0, NULL, 'z' }, @@ -712,8 +711,14 @@ static const struct option tar_long_options[] = { # if ENABLE_FEATURE_TAR_COMPRESS { "compress", 0, NULL, 'Z' }, # endif - { "no-same-owner", 0, NULL, 0xfe }, - { "no-same-permissions",0, NULL, 0xff }, + { "no-same-owner", 0, NULL, 0xfd }, + { "no-same-permissions",0, NULL, 0xfe }, + /* --exclude takes next bit position in option mask, */ + /* therefore we have to either put it _after_ --no-same-perm */ + /* or add OPT[BIT]_EXCLUDE before OPT[BIT]_NOPRESERVE_OWN */ +# if ENABLE_FEATURE_TAR_FROM + { "exclude", 1, NULL, 0xff }, +# endif { 0, 0, 0, 0 } }; #else @@ -741,7 +746,7 @@ int tar_main(int argc, char **argv) "tt:vv:" // count -t,-v "?:" // bail out with usage instead of error return "X::T::" // cumulative lists - "\xfd::" // cumulative lists for --exclude + "\xff::" // cumulative lists for --exclude USE_FEATURE_TAR_CREATE("c:") "t:x:" // at least one of these is reqd USE_FEATURE_TAR_CREATE("c--tx:t--cx:x--ct") // mutually exclusive SKIP_FEATURE_TAR_CREATE("t--x:x--t"); // mutually exclusive -- cgit v1.2.3