summaryrefslogtreecommitdiff
path: root/archival
diff options
context:
space:
mode:
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
commitf704b27b5bb8bd5acaed9464714db34ccef06cc8 (patch)
tree06f15d778a64ba361219d8227f87422173bf0da8 /archival
parent8c7a7e6e63c01d2d575bbaa43e1768ad2b97179b (diff)
downloadbusybox-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.c9
-rw-r--r--archival/dpkg_deb.c2
-rw-r--r--archival/tar.c10
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;