X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=git.c;h=89feb0b6dc9c34902aa7c3c4ac526c646c0e0d84;hb=6e13921b4f7adcc7316a76c0c4955b85b1589a65;hp=5582c515ac04609a338de1d2d5e510e7e7c4914d;hpb=faf1dc7223be9ffddf775916913bb8e22762cdfb;p=git.git diff --git a/git.c b/git.c index 5582c515a..89feb0b6d 100644 --- a/git.c +++ b/git.c @@ -330,6 +330,7 @@ static void handle_internal_command(int argc, const char **argv) { "prune-packed", cmd_prune_packed, RUN_SETUP }, { "push", cmd_push, RUN_SETUP }, { "read-tree", cmd_read_tree, RUN_SETUP }, + { "receive-pack", cmd_receive_pack }, { "reflog", cmd_reflog, RUN_SETUP }, { "remote", cmd_remote, RUN_SETUP }, { "repo-config", cmd_config }, @@ -366,7 +367,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'; } @@ -388,10 +389,9 @@ static void handle_internal_command(int argc, const char **argv) static void execv_dashed_external(const char **argv) { - struct strbuf cmd; + struct strbuf cmd = STRBUF_INIT; const char *tmp; - strbuf_init(&cmd, 0); strbuf_addf(&cmd, "git-%s", argv[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",