hush: tweak command -vV printing code, no logic changes
authorDenys Vlasenko <vda.linux@googlemail.com>
Fri, 12 Jan 2018 15:17:59 +0000 (16:17 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 12 Jan 2018 15:17:59 +0000 (16:17 +0100)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
shell/hush.c

index 196bdbe97e0046f00fb287c0253f543b4d535813..fc8940d3d1083d78fd4d6c4b04446ad3b4be65aa 100644 (file)
@@ -7336,6 +7336,7 @@ static void dump_cmd_in_x_mode(char **argv)
 static void if_command_vV_print_and_exit(char opt_vV, char *cmd, const char *explanation)
 {
        char *to_free;
+
        if (!opt_vV)
                return;
 
@@ -7343,14 +7344,15 @@ static void if_command_vV_print_and_exit(char opt_vV, char *cmd, const char *exp
        if (!explanation) {
                char *path = getenv("PATH");
                explanation = to_free = find_executable(cmd, &path); /* path == NULL is ok */
+               if (!explanation)
+                       _exit(1); /* PROG was not found */
                if (opt_vV != 'V')
                        cmd = to_free; /* -v PROG prints "/path/to/PROG" */
        }
-       if (explanation)
-               printf((opt_vV == 'V') ? "%s is %s\n" : "%s\n", cmd, explanation);
+       printf((opt_vV == 'V') ? "%s is %s\n" : "%s\n", cmd, explanation);
        free(to_free);
        fflush_all();
-       _exit(explanation == NULL); /* exit 1 if PROG was not found */
+       _exit(0);
 }
 #else
 # define if_command_vV_print_and_exit(a,b,c) ((void)0)