From bd28f6bf7f53ede8df39112d40cb52f2a3d00177 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Sat, 19 Jul 2008 08:15:13 +0000 Subject: test: fix parser to prefer binop over unop, as coreutils does. remove bogus workaround in main(). rename atrocious variables/functions. much expand testsuite. libbb: fix --help to not affect "test --help" function old new delta run_applet_no_and_exit 421 440 +19 nexpr 817 825 +8 static.no_op - 6 +6 test_main 397 257 -140 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 2/1 up/down: 104/-211) Total: -107 bytes --- libbb/appletlib.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'libbb') diff --git a/libbb/appletlib.c b/libbb/appletlib.c index eb98f1cd2..8c35450f8 100644 --- a/libbb/appletlib.c +++ b/libbb/appletlib.c @@ -196,8 +196,12 @@ void lbb_prepare(const char *applet #if ENABLE_FEATURE_INDIVIDUAL /* Redundant for busybox (run_applet_and_exit covers that case) * but needed for "individual applet" mode */ - if (argv[1] && strcmp(argv[1], "--help") == 0) - bb_show_usage(); + if (argv[1] && !argv[2] && strcmp(argv[1], "--help") == 0) { + /* Special case. POSIX says "test --help" + * should be no different from e.g. "test --foo". */ + if (!ENABLE_TEST || strcmp(applet_name, "test") != 0) + bb_show_usage(); + } #endif } @@ -715,8 +719,13 @@ void FAST_FUNC run_applet_no_and_exit(int applet_no, char **argv) xfunc_error_retval = EXIT_FAILURE; applet_name = APPLET_NAME(applet_no); - if (argc == 2 && !strcmp(argv[1], "--help")) - bb_show_usage(); + if (argc == 2 && strcmp(argv[1], "--help") == 0) { + /* Special case. POSIX says "test --help" + * should be no different from e.g. "test --foo". */ +//TODO: just compare applet_no with APPLET_NO_test + if (!ENABLE_TEST || strcmp(applet_name, "test") != 0) + bb_show_usage(); + } if (ENABLE_FEATURE_SUID) check_suid(applet_no); exit(applet_main[applet_no](argc, argv)); -- cgit v1.2.3-55-g6feb