diff options
author | "Vladimir N. Oleynik" <dzo@simtreas.ru> | 2005-10-12 08:17:29 +0000 |
---|---|---|
committer | "Vladimir N. Oleynik" <dzo@simtreas.ru> | 2005-10-12 08:17:29 +0000 |
commit | f5888696967416075ba52434ed6059e3a7f4957b (patch) | |
tree | 00140a4d803dd893fb87305e8aa25ee40d0d0d44 /archival/tar.c | |
parent | 161aae727399e97c1c532fb6877de0d34d821bb5 (diff) | |
download | busybox-w32-f5888696967416075ba52434ed6059e3a7f4957b.tar.gz busybox-w32-f5888696967416075ba52434ed6059e3a7f4957b.tar.bz2 busybox-w32-f5888696967416075ba52434ed6059e3a7f4957b.zip |
new featured bb_opt_complementally, correct argc checking
Diffstat (limited to 'archival/tar.c')
-rw-r--r-- | archival/tar.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/archival/tar.c b/archival/tar.c index d98426748..32e9cbaa6 100644 --- a/archival/tar.c +++ b/archival/tar.c | |||
@@ -603,7 +603,7 @@ static char get_header_tar_Z(archive_handle_t *archive_handle) | |||
603 | # define TAR_OPT_STR_CREATE "ch" | 603 | # define TAR_OPT_STR_CREATE "ch" |
604 | # define TAR_OPT_FLAG_CREATE 2 | 604 | # define TAR_OPT_FLAG_CREATE 2 |
605 | #else | 605 | #else |
606 | //# define CTX_CREATE 0 | 606 | # define CTX_CREATE 0 |
607 | # define TAR_OPT_STR_CREATE "" | 607 | # define TAR_OPT_STR_CREATE "" |
608 | # define TAR_OPT_FLAG_CREATE 0 | 608 | # define TAR_OPT_FLAG_CREATE 0 |
609 | #endif | 609 | #endif |
@@ -690,10 +690,6 @@ 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 | if (argc < 2) { | ||
694 | bb_show_usage(); | ||
695 | } | ||
696 | |||
697 | /* Prepend '-' to the first argument if required */ | 693 | /* Prepend '-' to the first argument if required */ |
698 | if (argv[1][0] != '-') | 694 | if (argv[1][0] != '-') |
699 | argv[1] = bb_xasprintf("-%s", argv[1]); | 695 | argv[1] = bb_xasprintf("-%s", argv[1]); |
@@ -702,11 +698,14 @@ int tar_main(int argc, char **argv) | |||
702 | tar_handle = init_handle(); | 698 | tar_handle = init_handle(); |
703 | tar_handle->flags = ARCHIVE_CREATE_LEADING_DIRS | ARCHIVE_PRESERVE_DATE | ARCHIVE_EXTRACT_UNCONDITIONAL; | 699 | tar_handle->flags = ARCHIVE_CREATE_LEADING_DIRS | ARCHIVE_PRESERVE_DATE | ARCHIVE_EXTRACT_UNCONDITIONAL; |
704 | 700 | ||
705 | bb_opt_complementally = "?c~tx:t~cx:x~ct:X*:T*"; | 701 | #ifdef CONFIG_FEATURE_TAR_CREATE |
702 | bb_opt_complementally = "?:c?c:t?t:x?x:c~tx:t~cx:x~ct:X*:T*"; | ||
703 | #else | ||
704 | bb_opt_complementally = "?:t?t:x?x:t~x:x~t:X*:T*"; | ||
705 | #endif | ||
706 | #ifdef CONFIG_FEATURE_TAR_LONG_OPTIONS | 706 | #ifdef CONFIG_FEATURE_TAR_LONG_OPTIONS |
707 | bb_applet_long_options = tar_long_options; | 707 | bb_applet_long_options = tar_long_options; |
708 | #endif | 708 | #endif |
709 | |||
710 | opt = bb_getopt_ulflags(argc, argv, tar_options, | 709 | opt = bb_getopt_ulflags(argc, argv, tar_options, |
711 | &base_dir, /* Change to dir <optarg> */ | 710 | &base_dir, /* Change to dir <optarg> */ |
712 | &tar_filename /* archive filename */ | 711 | &tar_filename /* archive filename */ |
@@ -716,14 +715,7 @@ int tar_main(int argc, char **argv) | |||
716 | #endif | 715 | #endif |
717 | ); | 716 | ); |
718 | 717 | ||
719 | #ifdef CONFIG_FEATURE_TAR_CREATE | ||
720 | ctx_flag = opt & (CTX_CREATE | CTX_TEST | CTX_EXTRACT); | 718 | ctx_flag = opt & (CTX_CREATE | CTX_TEST | CTX_EXTRACT); |
721 | #else | ||
722 | ctx_flag = opt & (CTX_TEST | CTX_EXTRACT); | ||
723 | #endif | ||
724 | if (ctx_flag == 0) { | ||
725 | bb_show_usage(); | ||
726 | } | ||
727 | if(ctx_flag & CTX_TEST) { | 719 | if(ctx_flag & CTX_TEST) { |
728 | if ((tar_handle->action_header == header_list) || | 720 | if ((tar_handle->action_header == header_list) || |
729 | (tar_handle->action_header == header_verbose_list)) { | 721 | (tar_handle->action_header == header_verbose_list)) { |