diff options
author | "Vladimir N. Oleynik" <dzo@simtreas.ru> | 2005-10-14 09:56:52 +0000 |
---|---|---|
committer | "Vladimir N. Oleynik" <dzo@simtreas.ru> | 2005-10-14 09:56:52 +0000 |
commit | f704b27b5bb8bd5acaed9464714db34ccef06cc8 (patch) | |
tree | 06f15d778a64ba361219d8227f87422173bf0da8 /archival | |
parent | 8c7a7e6e63c01d2d575bbaa43e1768ad2b97179b (diff) | |
download | busybox-w32-f704b27b5bb8bd5acaed9464714db34ccef06cc8.tar.gz busybox-w32-f704b27b5bb8bd5acaed9464714db34ccef06cc8.tar.bz2 busybox-w32-f704b27b5bb8bd5acaed9464714db34ccef06cc8.zip |
- new bb_opt_complementally syntax, use [-:?] only - 'free' chars
- new bb_getopt_ulflags features: check max and min args, convert first argv to options special for ar and tar applets
- use bb_default_error_retval for env applet
Diffstat (limited to 'archival')
-rw-r--r-- | archival/ar.c | 9 | ||||
-rw-r--r-- | archival/dpkg_deb.c | 2 | ||||
-rw-r--r-- | archival/tar.c | 10 |
3 files changed, 6 insertions, 15 deletions
diff --git a/archival/ar.c b/archival/ar.c index de5bc9b84..983b5ae2c 100644 --- a/archival/ar.c +++ b/archival/ar.c | |||
@@ -68,16 +68,9 @@ extern int ar_main(int argc, char **argv) | |||
68 | archive_handle = init_handle(); | 68 | archive_handle = init_handle(); |
69 | 69 | ||
70 | /* Prepend '-' to the first argument if required */ | 70 | /* Prepend '-' to the first argument if required */ |
71 | if (argv[1][0] != '-') | 71 | bb_opt_complementally = "--:p:t:x:-1:?:p--tx:t--px:x--pt"; |
72 | argv[1] = bb_xasprintf("-%s", argv[1]); | ||
73 | |||
74 | bb_opt_complementally = "?p~tx:t~px:x~pt"; | ||
75 | opt = bb_getopt_ulflags(argc, argv, "ptxovcr"); | 72 | opt = bb_getopt_ulflags(argc, argv, "ptxovcr"); |
76 | 73 | ||
77 | if ((opt == 0) || (optind == argc)) { | ||
78 | bb_show_usage(); | ||
79 | } | ||
80 | |||
81 | if (opt & AR_CTX_PRINT) { | 74 | if (opt & AR_CTX_PRINT) { |
82 | archive_handle->action_data = data_extract_to_stdout; | 75 | archive_handle->action_data = data_extract_to_stdout; |
83 | } | 76 | } |
diff --git a/archival/dpkg_deb.c b/archival/dpkg_deb.c index f38fb6195..29e9719cb 100644 --- a/archival/dpkg_deb.c +++ b/archival/dpkg_deb.c | |||
@@ -55,7 +55,7 @@ extern int dpkg_deb_main(int argc, char **argv) | |||
55 | control_tar_llist = llist_add_to(control_tar_llist, "control.tar.bz2"); | 55 | control_tar_llist = llist_add_to(control_tar_llist, "control.tar.bz2"); |
56 | #endif | 56 | #endif |
57 | 57 | ||
58 | bb_opt_complementally = "?c~efXx:e~cfXx:f~ceXx:X~cefx:x~cefX"; | 58 | bb_opt_complementally = "?c--efXx:e--cfXx:f--ceXx:X--cefx:x--cefX"; |
59 | opt = bb_getopt_ulflags(argc, argv, "cefXx"); | 59 | opt = bb_getopt_ulflags(argc, argv, "cefXx"); |
60 | 60 | ||
61 | if (opt & DPKG_DEB_OPT_CONTENTS) { | 61 | if (opt & DPKG_DEB_OPT_CONTENTS) { |
diff --git a/archival/tar.c b/archival/tar.c index 32e9cbaa6..7cfb495e5 100644 --- a/archival/tar.c +++ b/archival/tar.c | |||
@@ -690,18 +690,16 @@ int tar_main(int argc, char **argv) | |||
690 | unsigned long opt; | 690 | unsigned long opt; |
691 | unsigned long ctx_flag = 0; | 691 | unsigned long ctx_flag = 0; |
692 | 692 | ||
693 | /* Prepend '-' to the first argument if required */ | 693 | |
694 | if (argv[1][0] != '-') | ||
695 | argv[1] = bb_xasprintf("-%s", argv[1]); | ||
696 | |||
697 | /* Initialise default values */ | 694 | /* Initialise default values */ |
698 | tar_handle = init_handle(); | 695 | tar_handle = init_handle(); |
699 | tar_handle->flags = ARCHIVE_CREATE_LEADING_DIRS | ARCHIVE_PRESERVE_DATE | ARCHIVE_EXTRACT_UNCONDITIONAL; | 696 | tar_handle->flags = ARCHIVE_CREATE_LEADING_DIRS | ARCHIVE_PRESERVE_DATE | ARCHIVE_EXTRACT_UNCONDITIONAL; |
700 | 697 | ||
698 | /* Prepend '-' to the first argument if required */ | ||
701 | #ifdef CONFIG_FEATURE_TAR_CREATE | 699 | #ifdef CONFIG_FEATURE_TAR_CREATE |
702 | bb_opt_complementally = "?:c?c:t?t:x?x:c~tx:t~cx:x~ct:X*:T*"; | 700 | bb_opt_complementally = "--:-1:X::T::c:t:x:?:c--tx:t--cx:x--ct"; |
703 | #else | 701 | #else |
704 | bb_opt_complementally = "?:t?t:x?x:t~x:x~t:X*:T*"; | 702 | bb_opt_complementally = "--:-1:X::T::t:x:?:t--x:x--t"; |
705 | #endif | 703 | #endif |
706 | #ifdef CONFIG_FEATURE_TAR_LONG_OPTIONS | 704 | #ifdef CONFIG_FEATURE_TAR_LONG_OPTIONS |
707 | bb_applet_long_options = tar_long_options; | 705 | bb_applet_long_options = tar_long_options; |