aboutsummaryrefslogtreecommitdiff
path: root/archival/cpio.c
diff options
context:
space:
mode:
authorbug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277>2003-08-28 19:12:23 +0000
committerbug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277>2003-08-28 19:12:23 +0000
commitdf9b4668a86ff2cf9ac26872c96c069f6b1866b1 (patch)
tree8523978e8159ce2569e02557fa2b6ced3030b39b /archival/cpio.c
parent5659b05d8677855e578a6dea9e537aeae0cbe56d (diff)
downloadbusybox-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.c20
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