diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2007-06-15 10:36:49 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2007-06-15 10:36:49 +0000 |
commit | be9924394547da16396952dfd8bbfa7da96e644d (patch) | |
tree | f7eebd0347cb9e05206e72e41d5c21359bc3673e | |
parent | 867266059b98ba56e2bfac45bf51e0f99b5d886d (diff) | |
download | busybox-w32-be9924394547da16396952dfd8bbfa7da96e644d.tar.gz busybox-w32-be9924394547da16396952dfd8bbfa7da96e644d.tar.bz2 busybox-w32-be9924394547da16396952dfd8bbfa7da96e644d.zip |
- fix test -f ./exists
Note that test -f ./exists -a "-u" = "-u" doesn't work and did not work even before r18282, so this is a breakage not caused by me..
-rw-r--r-- | coreutils/test.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/coreutils/test.c b/coreutils/test.c index bbbfce58e..3796e2cd2 100644 --- a/coreutils/test.c +++ b/coreutils/test.c | |||
@@ -183,6 +183,7 @@ int bb_test(int argc, char **argv) | |||
183 | { | 183 | { |
184 | int res; | 184 | int res; |
185 | char *arg0; | 185 | char *arg0; |
186 | bool _off; | ||
186 | 187 | ||
187 | arg0 = strrchr(argv[0], '/'); | 188 | arg0 = strrchr(argv[0], '/'); |
188 | if (!arg0++) arg0 = argv[0]; | 189 | if (!arg0++) arg0 = argv[0]; |
@@ -224,15 +225,19 @@ int bb_test(int argc, char **argv) | |||
224 | if (argc == 2) | 225 | if (argc == 2) |
225 | return *argv[1] == '\0'; | 226 | return *argv[1] == '\0'; |
226 | //assert(argc); | 227 | //assert(argc); |
228 | /* remember if we saw argc==4 which wants *no* '!' test */ | ||
229 | _off = argc - 4; | ||
230 | if (_off ? | ||
231 | (LONE_CHAR(argv[1], '!')) | ||
232 | : (argv[1][0] != '!' || argv[1][1] != '\0')) | ||
227 | { | 233 | { |
228 | bool _off; | ||
229 | if (argc == 3) | 234 | if (argc == 3) |
230 | return *argv[2] != '\0'; | 235 | return *argv[2] != '\0'; |
231 | _off = argc - 4; | 236 | |
232 | t_lex(argv[2 + _off]); | 237 | t_lex(argv[2 + _off]); |
233 | if (t_wp_op && t_wp_op->op_type == BINOP) { | 238 | if (t_wp_op && t_wp_op->op_type == BINOP) { |
234 | t_wp = &argv[1 + _off]; | 239 | t_wp = &argv[1 + _off]; |
235 | return binop() == (LONE_CHAR(argv[1], '!')); | 240 | return binop() == _off; |
236 | } | 241 | } |
237 | } | 242 | } |
238 | t_wp = &argv[1]; | 243 | t_wp = &argv[1]; |