aboutsummaryrefslogtreecommitdiff
path: root/coreutils/test.c
diff options
context:
space:
mode:
authorvda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-12-21 13:23:14 +0000
committervda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-12-21 13:23:14 +0000
commite99be6e4a58561eb7521c57148ec65ba0d87dd7b (patch)
tree3ab3dd4df901851ff7f4345708592118766ba4aa /coreutils/test.c
parentec7c757361d94d39f4c947ba1ec3cf6f928fca64 (diff)
downloadbusybox-w32-e99be6e4a58561eb7521c57148ec65ba0d87dd7b.tar.gz
busybox-w32-e99be6e4a58561eb7521c57148ec65ba0d87dd7b.tar.bz2
busybox-w32-e99be6e4a58561eb7521c57148ec65ba0d87dd7b.zip
introduce LONE_CHAR (optimized strcmp with one-char string)
git-svn-id: svn://busybox.net/trunk/busybox@17027 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'coreutils/test.c')
-rw-r--r--coreutils/test.c10
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
579int test_main(int argc, char **argv) 581int test_main(int argc, char **argv)
580{ 582{
581 exit(bb_test(argc, argv)); 583 return bb_test(argc, argv);
582} 584}
583 585