aboutsummaryrefslogtreecommitdiff
path: root/archival
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-06-26 01:55:45 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2009-06-26 01:55:45 +0200
commitd30b89c7eee19f395af0335b66822989c770437e (patch)
tree0695091ac035d39d6ba57e316474126fe8872347 /archival
parent2f86ca135069e457bb16ab9e062a10e0775717a6 (diff)
downloadbusybox-w32-d30b89c7eee19f395af0335b66822989c770437e.tar.gz
busybox-w32-d30b89c7eee19f395af0335b66822989c770437e.tar.bz2
busybox-w32-d30b89c7eee19f395af0335b66822989c770437e.zip
updates for supporting Linux kernel build and initrd utilities
cpio: --verbose, --quiet, --to-stdout test: make 64-bit math enable-able for hush too dnsdomainname: alias to hostname -d hostname: support --fqdn, --domain, --file Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival')
-rw-r--r--archival/cpio.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/archival/cpio.c b/archival/cpio.c
index a6484e5c0..5b4135f66 100644
--- a/archival/cpio.c
+++ b/archival/cpio.c
@@ -88,9 +88,17 @@ enum {
88 CPIO_OPT_PRESERVE_MTIME = (1 << 6), 88 CPIO_OPT_PRESERVE_MTIME = (1 << 6),
89 CPIO_OPT_DEREF = (1 << 7), 89 CPIO_OPT_DEREF = (1 << 7),
90 CPIO_OPT_FILE = (1 << 8), 90 CPIO_OPT_FILE = (1 << 8),
91 CPIO_OPT_CREATE = (1 << 9) * ENABLE_FEATURE_CPIO_O, 91 OPTBIT_FILE = 8,
92 CPIO_OPT_FORMAT = (1 << 10) * ENABLE_FEATURE_CPIO_O, 92 IF_FEATURE_CPIO_O(OPTBIT_CREATE ,)
93 CPIO_OPT_PASSTHROUGH = (1 << 11) * ENABLE_FEATURE_CPIO_P, 93 IF_FEATURE_CPIO_O(OPTBIT_FORMAT ,)
94 IF_FEATURE_CPIO_P(OPTBIT_PASSTHROUGH,)
95 IF_LONG_OPTS( OPTBIT_QUIET ,)
96 IF_LONG_OPTS( OPTBIT_2STDOUT ,)
97 CPIO_OPT_CREATE = IF_FEATURE_CPIO_O((1 << OPTBIT_CREATE )) + 0,
98 CPIO_OPT_FORMAT = IF_FEATURE_CPIO_O((1 << OPTBIT_FORMAT )) + 0,
99 CPIO_OPT_PASSTHROUGH = IF_FEATURE_CPIO_P((1 << OPTBIT_PASSTHROUGH)) + 0,
100 CPIO_OPT_QUIET = IF_LONG_OPTS( (1 << OPTBIT_QUIET )) + 0,
101 CPIO_OPT_2STDOUT = IF_LONG_OPTS( (1 << OPTBIT_2STDOUT )) + 0,
94}; 102};
95 103
96#define OPTION_STR "it0uvdmLF:" 104#define OPTION_STR "it0uvdmLF:"
@@ -284,6 +292,9 @@ int cpio_main(int argc UNUSED_PARAM, char **argv)
284 "pass-through\0" No_argument "p" 292 "pass-through\0" No_argument "p"
285#endif 293#endif
286#endif 294#endif
295 "verbose\0" No_argument "v"
296 "quiet\0" No_argument "\xff"
297 "to-stdout\0" No_argument "\xfe"
287 ; 298 ;
288#endif 299#endif
289 300
@@ -372,6 +383,8 @@ int cpio_main(int argc UNUSED_PARAM, char **argv)
372 } 383 }
373 if (opt & CPIO_OPT_EXTRACT) { 384 if (opt & CPIO_OPT_EXTRACT) {
374 archive_handle->action_data = data_extract_all; 385 archive_handle->action_data = data_extract_all;
386 if (opt & CPIO_OPT_2STDOUT)
387 archive_handle->action_data = data_extract_to_stdout;
375 } 388 }
376 if (opt & CPIO_OPT_UNCONDITIONAL) { 389 if (opt & CPIO_OPT_UNCONDITIONAL) {
377 archive_handle->ah_flags |= ARCHIVE_EXTRACT_UNCONDITIONAL; 390 archive_handle->ah_flags |= ARCHIVE_EXTRACT_UNCONDITIONAL;
@@ -406,7 +419,9 @@ int cpio_main(int argc UNUSED_PARAM, char **argv)
406 while (get_header_cpio(archive_handle) == EXIT_SUCCESS) 419 while (get_header_cpio(archive_handle) == EXIT_SUCCESS)
407 continue; 420 continue;
408 421
409 if (archive_handle->ah_priv[2] != (void*) ~(ptrdiff_t)0) 422 if (archive_handle->ah_priv[2] != (void*) ~(ptrdiff_t)0
423 && !(opt & CPIO_OPT_QUIET)
424 )
410 printf("%lu blocks\n", (unsigned long)(ptrdiff_t)(archive_handle->ah_priv[2])); 425 printf("%lu blocks\n", (unsigned long)(ptrdiff_t)(archive_handle->ah_priv[2]));
411 426
412 return EXIT_SUCCESS; 427 return EXIT_SUCCESS;