]> asedeno.scripts.mit.edu Git - git.git/blobdiff - git.c
Merge branch 'ho/dirstat-by-file'
[git.git] / git.c
diff --git a/git.c b/git.c
index 5582c515ac04609a338de1d2d5e510e7e7c4914d..00f5dd1d4994ff44c5d718ee8f9ea9d21777245f 100644 (file)
--- a/git.c
+++ b/git.c
@@ -366,7 +366,7 @@ static void handle_internal_command(int argc, const char **argv)
        if (sizeof(ext) > 1) {
                i = strlen(argv[0]) - strlen(ext);
                if (i > 0 && !strcmp(argv[0] + i, ext)) {
-                       char *argv0 = strdup(argv[0]);
+                       char *argv0 = xstrdup(argv[0]);
                        argv[0] = cmd = argv0;
                        argv0[i] = '\0';
                }
@@ -501,7 +501,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",