diff options
author | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2000-09-23 22:36:24 +0000 |
---|---|---|
committer | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2000-09-23 22:36:24 +0000 |
commit | 40bc456f2702f40e6839c568164ebcac74512498 (patch) | |
tree | 5f6b62f627ebb6971d30363bbfb926fc9e0beb8d /tar.c | |
parent | 0cca51cea99bf65081956e8b1e27bdc5b9d57b0c (diff) | |
download | busybox-w32-40bc456f2702f40e6839c568164ebcac74512498.tar.gz busybox-w32-40bc456f2702f40e6839c568164ebcac74512498.tar.bz2 busybox-w32-40bc456f2702f40e6839c568164ebcac74512498.zip |
Fix an obscure option parsing bug.
git-svn-id: svn://busybox.net/trunk/busybox@1106 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'tar.c')
-rw-r--r-- | tar.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -149,6 +149,7 @@ extern int tar_main(int argc, char **argv) | |||
149 | int createFlag = FALSE; | 149 | int createFlag = FALSE; |
150 | int verboseFlag = FALSE; | 150 | int verboseFlag = FALSE; |
151 | int tostdoutFlag = FALSE; | 151 | int tostdoutFlag = FALSE; |
152 | int firstOpt = TRUE; | ||
152 | int stopIt; | 153 | int stopIt; |
153 | 154 | ||
154 | 155 | ||
@@ -156,7 +157,9 @@ extern int tar_main(int argc, char **argv) | |||
156 | usage(tar_usage); | 157 | usage(tar_usage); |
157 | 158 | ||
158 | /* do normal option parsing */ | 159 | /* do normal option parsing */ |
159 | while (--argc > 0 && strspn(*(++argv), "-cxt") >0 ) { | 160 | while (--argc > 0 && ((*argv && **(++argv) == '-') || |
161 | (firstOpt==TRUE && strspn(*argv, "-cxt") ))) { | ||
162 | firstOpt=FALSE; | ||
160 | stopIt=FALSE; | 163 | stopIt=FALSE; |
161 | while (stopIt==FALSE && *argv && **argv) { | 164 | while (stopIt==FALSE && *argv && **argv) { |
162 | switch (**argv) { | 165 | switch (**argv) { |