From dd6b21192112711f1b7e89e998891f17f9c21c8d Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 28 May 2009 09:45:50 +0200 Subject: hush: optimize type builtin a bit function old new delta builtin_type 130 125 -5 Signed-off-by: Denys Vlasenko --- shell/hush.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'shell/hush.c') diff --git a/shell/hush.c b/shell/hush.c index efa93c1a6..500091066 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -6766,32 +6766,31 @@ static int builtin_trap(char **argv) /* http://www.opengroup.org/onlinepubs/9699919799/utilities/type.html */ static int builtin_type(char **argv) { - int i, ret = EXIT_SUCCESS; + int ret = EXIT_SUCCESS; - for (i = 1; argv[i]; ++i) { - void *path; - const void *find_ret; + while (*++argv) { + char *path; const char *type; type = path = NULL; if (0) {} /* make conditional compile easier below */ - /*else if ((find_ret = find_alias(argv[i]))) + /*else if (find_alias(*argv)) type = "an alias";*/ #if ENABLE_HUSH_FUNCTIONS - else if ((find_ret = find_function(argv[i]))) + else if (find_function(*argv)) type = "a function"; #endif - else if ((find_ret = find_builtin(argv[i]))) + else if (find_builtin(*argv)) type = "a shell builtin"; - else if ((find_ret = path = find_in_path(argv[i]))) - type = find_ret; + else if ((path = find_in_path(*argv)) != NULL) + type = path; if (!type) { - bb_error_msg("type: %s: not found", argv[i]); + bb_error_msg("type: %s: not found", *argv); ret = EXIT_FAILURE; } else - printf("%s is %s\n", argv[i], type); + printf("%s is %s\n", *argv, type); if (path) free(path); -- cgit v1.2.3