diff options
author | bug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2003-08-28 19:12:23 +0000 |
---|---|---|
committer | bug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2003-08-28 19:12:23 +0000 |
commit | df9b4668a86ff2cf9ac26872c96c069f6b1866b1 (patch) | |
tree | 8523978e8159ce2569e02557fa2b6ced3030b39b /archival/cpio.c | |
parent | 5659b05d8677855e578a6dea9e537aeae0cbe56d (diff) | |
download | busybox-w32-df9b4668a86ff2cf9ac26872c96c069f6b1866b1.tar.gz busybox-w32-df9b4668a86ff2cf9ac26872c96c069f6b1866b1.tar.bz2 busybox-w32-df9b4668a86ff2cf9ac26872c96c069f6b1866b1.zip |
Dont unlink when testing !
Always preserve creation date
Disable the -p option its for modification date
Remove some cpio header debugging noise
Syncronise file listing behaviour with upstream.
git-svn-id: svn://busybox.net/trunk/busybox@7272 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'archival/cpio.c')
-rw-r--r-- | archival/cpio.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/archival/cpio.c b/archival/cpio.c index 111807c43..beee83d31 100644 --- a/archival/cpio.c +++ b/archival/cpio.c | |||
@@ -40,8 +40,8 @@ extern int cpio_main(int argc, char **argv) | |||
40 | archive_handle = init_handle(); | 40 | archive_handle = init_handle(); |
41 | archive_handle->src_fd = fileno(stdin); | 41 | archive_handle->src_fd = fileno(stdin); |
42 | archive_handle->seek = seek_by_char; | 42 | archive_handle->seek = seek_by_char; |
43 | archive_handle->action_header = header_list; | 43 | archive_handle->flags = ARCHIVE_EXTRACT_NEWER | ARCHIVE_PRESERVE_DATE; |
44 | 44 | ||
45 | while ((opt = getopt(argc, argv, "idmuvtF:")) != -1) { | 45 | while ((opt = getopt(argc, argv, "idmuvtF:")) != -1) { |
46 | switch (opt) { | 46 | switch (opt) { |
47 | case 'i': /* extract */ | 47 | case 'i': /* extract */ |
@@ -50,17 +50,28 @@ extern int cpio_main(int argc, char **argv) | |||
50 | case 'd': /* create _leading_ directories */ | 50 | case 'd': /* create _leading_ directories */ |
51 | archive_handle->flags |= ARCHIVE_CREATE_LEADING_DIRS; | 51 | archive_handle->flags |= ARCHIVE_CREATE_LEADING_DIRS; |
52 | break; | 52 | break; |
53 | #if 0 | ||
53 | case 'm': /* preserve modification time */ | 54 | case 'm': /* preserve modification time */ |
54 | archive_handle->flags |= ARCHIVE_PRESERVE_DATE; | 55 | archive_handle->flags |= ARCHIVE_PRESERVE_DATE; |
55 | break; | 56 | break; |
57 | #endif | ||
56 | case 'v': /* verbosly list files */ | 58 | case 'v': /* verbosly list files */ |
57 | archive_handle->action_header = header_verbose_list; | 59 | if (archive_handle->action_header == header_list) { |
60 | archive_handle->action_header = header_verbose_list; | ||
61 | } else { | ||
62 | archive_handle->action_header = header_list; | ||
63 | } | ||
58 | break; | 64 | break; |
59 | case 'u': /* unconditional */ | 65 | case 'u': /* unconditional */ |
60 | archive_handle->flags |= ARCHIVE_EXTRACT_UNCONDITIONAL; | 66 | archive_handle->flags |= ARCHIVE_EXTRACT_UNCONDITIONAL; |
67 | archive_handle->flags &= ~ARCHIVE_EXTRACT_NEWER; | ||
61 | break; | 68 | break; |
62 | case 't': /* list files */ | 69 | case 't': /* list files */ |
63 | archive_handle->action_header = header_list; | 70 | if (archive_handle->action_header == header_list) { |
71 | archive_handle->action_header = header_verbose_list; | ||
72 | } else { | ||
73 | archive_handle->action_header = header_list; | ||
74 | } | ||
64 | break; | 75 | break; |
65 | case 'F': | 76 | case 'F': |
66 | archive_handle->src_fd = bb_xopen(optarg, O_RDONLY); | 77 | archive_handle->src_fd = bb_xopen(optarg, O_RDONLY); |
@@ -81,4 +92,3 @@ extern int cpio_main(int argc, char **argv) | |||
81 | 92 | ||
82 | return(EXIT_SUCCESS); | 93 | return(EXIT_SUCCESS); |
83 | } | 94 | } |
84 | |||