hush: optimize type builtin a bit

function                                             old     new   delta
builtin_type                                         130     125      -5

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2009-05-28 09:45:50 +02:00
parent b9f2bb36ea
commit dd6b211921

View File

@ -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);