]> git.ipfire.org Git - thirdparty/git.git/blobdiff - git.c
git wrapper: DWIM mistyped commands
[thirdparty/git.git] / git.c
diff --git a/git.c b/git.c
index 1bfd271a711dc8b416fee8e4a8f0bfab3c52df3c..54c5bfa69b0696a376828e36c30b957506fce408 100644 (file)
--- a/git.c
+++ b/git.c
@@ -418,7 +418,6 @@ int main(int argc, const char **argv)
 {
        const char *cmd = argv[0] && *argv[0] ? argv[0] : "git-help";
        char *slash = (char *)cmd + strlen(cmd);
-       const char *cmd_path = NULL;
        int done_alias = 0;
 
        /*
@@ -431,7 +430,7 @@ int main(int argc, const char **argv)
        while (cmd <= slash && !is_dir_sep(*slash));
        if (cmd <= slash) {
                *slash++ = 0;
-               cmd_path = cmd;
+               git_set_argv0_path(cmd);
                cmd = slash;
        }
 
@@ -475,7 +474,7 @@ int main(int argc, const char **argv)
         * environment, and the $(gitexecdir) from the Makefile at build
         * time.
         */
-       setup_path(cmd_path);
+       setup_path();
 
        while (1) {
                /* See if it's an internal command */
@@ -500,7 +499,9 @@ int main(int argc, const char **argv)
                                cmd, argv[0]);
                        exit(1);
                }
-               help_unknown_cmd(cmd);
+               argv[0] = help_unknown_cmd(cmd);
+               handle_internal_command(argc, argv);
+               execv_dashed_external(argv);
        }
 
        fprintf(stderr, "Failed to run command '%s': %s\n",