test: shrink a bit
authorDenis Vlasenko <vda.linux@googlemail.com>
Thu, 21 Jun 2007 13:35:52 +0000 (13:35 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Thu, 21 Jun 2007 13:35:52 +0000 (13:35 -0000)
function                                             old     new   delta
test_main                                              5     434    +429
bb_test                                              473       -    -473
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/0 up/down: 429/-473)          Total: -44 bytes
   text    data     bss     dec     hex filename
 735073    3028   14408  752509   b7b7d busybox_old
 735029    3028   14408  752465   b7b51 busybox_unstripped

coreutils/test.c
include/libbb.h
shell/ash.c

index 3796e2cd2b7f55039b7f877ec83eac0d4b8aa05b..5ca46725b2e3cb17325682093436fc498610ed1e 100644 (file)
@@ -155,7 +155,7 @@ typedef int arith_t;
 #endif
 
 /* Cannot eliminate these static data (do the G trick)
- * because of bb_test usage from other applets */
+ * because of test_main usage from other applets */
 static char **t_wp;
 static struct t_op const *t_wp_op;
 static gid_t *group_array;
@@ -179,7 +179,7 @@ static int test_eaccess(char *path, int mode);
 static int is_a_group_member(gid_t gid);
 static void initialize_group_array(void);
 
-int bb_test(int argc, char **argv)
+int test_main(int argc, char **argv)
 {
        int res;
        char *arg0;
@@ -188,21 +188,19 @@ int bb_test(int argc, char **argv)
        arg0 = strrchr(argv[0], '/');
        if (!arg0++) arg0 = argv[0];
        if (arg0[0] == '[') {
+               --argc;
                if (!arg0[1]) { /* "[" ? */
-                       --argc;
                        if (NOT_LONE_CHAR(argv[argc], ']')) {
                                bb_error_msg("missing ]");
                                return 2;
                        }
-                       argv[argc] = NULL;
-               } else if (LONE_CHAR(arg0+1, '[') == 0) { /* "[[" ? */
-                       --argc;
+               } else { /* assuming "[[" */
                        if (strcmp(argv[argc], "]]") != 0) {
                                bb_error_msg("missing ]]");
                                return 2;
                        }
-                       argv[argc] = NULL;
                }
+               argv[argc] = NULL;
        }
 
        res = setjmp(leaving);
@@ -571,7 +569,7 @@ static void initialize_group_array(void)
        if (ngroups > 0) {
                /* FIXME: ash tries so hard to not die on OOM,
                 * and we spoil it with just one xrealloc here */
-               /* We realloc, because bb_test can be entered repeatedly by shell.
+               /* We realloc, because test_main can be entered repeatedly by shell.
                 * Testcase (ash): 'while true; do test -x some_file; done'
                 * and watch top. (some_file must have owner != you) */
                group_array = xrealloc(group_array, ngroups * sizeof(gid_t));
@@ -601,12 +599,3 @@ static int is_a_group_member(gid_t gid)
 
        return 0;
 }
-
-
-/* applet entry point */
-
-int test_main(int argc, char **argv);
-int test_main(int argc, char **argv)
-{
-       return bb_test(argc, argv);
-}
index 9ca5653488cd3f28ea154f227a31f8071b774cdf..b7b0657b6341a006df06d1be8f0242feeb9d7af9 100644 (file)
@@ -653,7 +653,7 @@ extern void bb_vinfo_msg(const char *s, va_list p);
 /* applets which are useful from another applets */
 int bb_cat(char** argv);
 int bb_echo(char** argv);
-int bb_test(int argc, char** argv);
+int test_main(int argc, char** argv);
 int kill_main(int argc, char **argv);
 #if ENABLE_ROUTE
 void bb_displayroutes(int noresolve, int netstatfmt);
index 35eec42a7efb4d526e99dce60123ce8e9122394f..b54f6660903ee0db3f7d120ceaa1e2ca466d3422 100644 (file)
@@ -10985,7 +10985,7 @@ echocmd(int argc, char **argv)
 static int
 testcmd(int argc, char **argv)
 {
-       return bb_test(argc, argv);
+       return test_main(argc, argv);
 }
 #endif