diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-12-21 13:23:14 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-12-21 13:23:14 +0000 |
commit | bf66fbc8e2380717c1fab860cfc60c78582839dd (patch) | |
tree | 3ab3dd4df901851ff7f4345708592118766ba4aa /coreutils/test.c | |
parent | 6910741067913d131d931b1e6424d3b8ed43e64f (diff) | |
download | busybox-w32-bf66fbc8e2380717c1fab860cfc60c78582839dd.tar.gz busybox-w32-bf66fbc8e2380717c1fab860cfc60c78582839dd.tar.bz2 busybox-w32-bf66fbc8e2380717c1fab860cfc60c78582839dd.zip |
introduce LONE_CHAR (optimized strcmp with one-char string)
Diffstat (limited to 'coreutils/test.c')
-rw-r--r-- | coreutils/test.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/coreutils/test.c b/coreutils/test.c index ebb4f9086..d3d760467 100644 --- a/coreutils/test.c +++ b/coreutils/test.c | |||
@@ -175,14 +175,16 @@ int bb_test(int argc, char **argv) | |||
175 | { | 175 | { |
176 | int res; | 176 | int res; |
177 | 177 | ||
178 | if (strcmp(argv[0], "[") == 0) { | 178 | if (LONE_CHAR(argv[0], '[')) { |
179 | if (strcmp(argv[--argc], "]")) { | 179 | --argc; |
180 | if (NOT_LONE_CHAR(argv[argc], ']')) { | ||
180 | bb_error_msg("missing ]"); | 181 | bb_error_msg("missing ]"); |
181 | return 2; | 182 | return 2; |
182 | } | 183 | } |
183 | argv[argc] = NULL; | 184 | argv[argc] = NULL; |
184 | } else if (strcmp(argv[0], "[[") == 0) { | 185 | } else if (strcmp(argv[0], "[[") == 0) { |
185 | if (strcmp(argv[--argc], "]]")) { | 186 | --argc; |
187 | if (strcmp(argv[argc], "]]")) { | ||
186 | bb_error_msg("missing ]]"); | 188 | bb_error_msg("missing ]]"); |
187 | return 2; | 189 | return 2; |
188 | } | 190 | } |
@@ -578,6 +580,6 @@ static int is_a_group_member(gid_t gid) | |||
578 | 580 | ||
579 | int test_main(int argc, char **argv) | 581 | int test_main(int argc, char **argv) |
580 | { | 582 | { |
581 | exit(bb_test(argc, argv)); | 583 | return bb_test(argc, argv); |
582 | } | 584 | } |
583 | 585 | ||