On Friday 23 October 2009 22:15, Bernhard Reutner-Fischer wrote: > GNU tar-1.22 handles 'o' as no-same-owner only on extract, > on create, 'o' would be --old-archive. > > Signed-off-by: Bernhard Reutner-Fischer <[email protected]> > --- > archival/tar.c | 23 +++++++++++++---------- > 1 files changed, 13 insertions(+), 10 deletions(-) > > diff --git a/archival/tar.c b/archival/tar.c > index bd8e5dc..05f841b 100644 > --- a/archival/tar.c > +++ b/archival/tar.c > @@ -744,9 +744,10 @@ enum { > OPT_BASEDIR = 1 << 2, // C > OPT_TARNAME = 1 << 3, // f > OPT_2STDOUT = 1 << 4, // O > - OPT_P = 1 << 5, // p > - OPT_VERBOSE = 1 << 6, // v > - OPT_KEEP_OLD = 1 << 7, // k > + OPT_NOPRESERVE_OWNER = 1 << 5, // no-same-owner > + OPT_P = 1 << 6, // p > + OPT_VERBOSE = 1 << 7, // v > + OPT_KEEP_OLD = 1 << 8, // k > OPT_CREATE = IF_FEATURE_TAR_CREATE( (1 << OPTBIT_CREATE )) > + 0, // c > OPT_DEREFERENCE = IF_FEATURE_TAR_CREATE( (1 << OPTBIT_DEREFERENCE )) > + 0, // h > OPT_BZIP2 = IF_FEATURE_SEAMLESS_BZ2( (1 << OPTBIT_BZIP2 )) > + 0, // j > @@ -756,7 +757,7 @@ enum { > OPT_GZIP = IF_FEATURE_SEAMLESS_GZ( (1 << OPTBIT_GZIP )) > + 0, // z > OPT_COMPRESS = IF_FEATURE_SEAMLESS_Z( (1 << OPTBIT_COMPRESS )) > + 0, // Z > OPT_NUMERIC_OWNER = 1 << OPTBIT_NUMERIC_OWNER, > - OPT_NOPRESERVE_OWNER = 1 << OPTBIT_NOPRESERVE_OWNER , // no-same-owner > + > OPT_NOPRESERVE_PERM = 1 << OPTBIT_NOPRESERVE_PERM, // > no-same-permissions > }; > #if ENABLE_FEATURE_TAR_LONG_OPTIONS > @@ -766,6 +767,10 @@ static const char tar_longopts[] ALIGN1 = > "directory\0" Required_argument "C" > "file\0" Required_argument "f" > "to-stdout\0" No_argument "O" > + /* do not restore owner */ > + /* GNU tar handles 'o' as no-same-owner only on extract, > + on create, 'o' is --old-archive. */ > + "no-same-owner\0" No_argument "o" > "same-permissions\0" No_argument "p" > "verbose\0" No_argument "v" > "keep-old\0" No_argument "k" > @@ -791,15 +796,13 @@ static const char tar_longopts[] ALIGN1 = > # endif > /* use numeric uid/gid from tar header, not textual */ > "numeric-owner\0" No_argument "\xfc" > - /* do not restore owner */ > - "no-same-owner\0" No_argument "\xfd" > /* do not restore mode */ > - "no-same-permissions\0" No_argument "\xfe" > + "no-same-permissions\0" No_argument "\xfd" > /* --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_OWNER */ > + /* or add OPT[BIT]_EXCLUDE before OPT[BIT]_NOPRESERVE_PERM */ > # if ENABLE_FEATURE_TAR_FROM > - "exclude\0" Required_argument "\xff" > + "exclude\0" Required_argument "\xfe" > # endif > ; > #endif > @@ -842,7 +845,7 @@ int tar_main(int argc UNUSED_PARAM, char **argv) > applet_long_options = tar_longopts; > #endif > opt = getopt32(argv, > - "txC:f:Opvk" > + "txC:f:Oopvk" > IF_FEATURE_TAR_CREATE( "ch" ) > IF_FEATURE_SEAMLESS_BZ2( "j" ) > IF_FEATURE_SEAMLESS_LZMA("a" )
Applied with small corrections. Thanks! -- vda _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
