aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/cpio
diff options
context:
space:
mode:
authorTim Kientzle <kientzle@FreeBSD.org>2008-07-29 15:23:31 +0000
committerTim Kientzle <kientzle@FreeBSD.org>2008-07-29 15:23:31 +0000
commitb423c28f74199bc4b05e2c17184e3a59ccf4b987 (patch)
treed858bd5301159e45b4a0ed11363e3ed580df0596 /usr.bin/cpio
parenta6fca50fd7696b58e2e4f77f01187dc99dc509f1 (diff)
downloadsrc-b423c28f74199bc4b05e2c17184e3a59ccf4b987.tar.gz
src-b423c28f74199bc4b05e2c17184e3a59ccf4b987.zip
Add --no-preserve-owner, which seems to be required by some ports.
Thanks to: Erwin Lansing
Notes
Notes: svn path=/head/; revision=180962
Diffstat (limited to 'usr.bin/cpio')
-rw-r--r--usr.bin/cpio/cmdline.c1
-rw-r--r--usr.bin/cpio/cpio.c3
-rw-r--r--usr.bin/cpio/cpio.h1
3 files changed, 5 insertions, 0 deletions
diff --git a/usr.bin/cpio/cmdline.c b/usr.bin/cpio/cmdline.c
index 29183f1ca1ff..a9774e9269f7 100644
--- a/usr.bin/cpio/cmdline.c
+++ b/usr.bin/cpio/cmdline.c
@@ -91,6 +91,7 @@ static const struct option cpio_longopts[] = {
{ "link", no_argument, NULL, 'l' },
{ "list", no_argument, NULL, 't' },
{ "make-directories", no_argument, NULL, 'd' },
+ { "no-preserve-owner", no_argument, NULL, OPTION_NO_PRESERVE_OWNER },
{ "null", no_argument, NULL, '0' },
{ "owner", required_argument, NULL, 'R' },
{ "pass-through", no_argument, NULL, 'p' },
diff --git a/usr.bin/cpio/cpio.c b/usr.bin/cpio/cpio.c
index 77c09ccfca3f..991e8717bf87 100644
--- a/usr.bin/cpio/cpio.c
+++ b/usr.bin/cpio/cpio.c
@@ -175,6 +175,9 @@ main(int argc, char *argv[])
case 'm': /* POSIX 1997 */
cpio->extract_flags |= ARCHIVE_EXTRACT_TIME;
break;
+ case OPTION_NO_PRESERVE_OWNER: /* GNU cpio */
+ cpio->extract_flags &= ~ARCHIVE_EXTRACT_OWNER;
+ break;
case 'O': /* GNU cpio */
cpio->filename = optarg;
break;
diff --git a/usr.bin/cpio/cpio.h b/usr.bin/cpio/cpio.h
index 78086331bb0d..4dce00fe57a5 100644
--- a/usr.bin/cpio/cpio.h
+++ b/usr.bin/cpio/cpio.h
@@ -94,6 +94,7 @@ int owner_parse(const char *, int *, int *);
/* Fake short equivalents for long options that otherwise lack them. */
enum {
OPTION_INSECURE = 1,
+ OPTION_NO_PRESERVE_OWNER,
OPTION_QUIET,
OPTION_VERSION
};