Code

"git" returns 1; "git help" and "git help -a" return 0
authorScott R Parish <srp@srparish.net>
Sat, 27 Oct 2007 08:36:49 +0000 (01:36 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 30 Oct 2007 03:51:36 +0000 (20:51 -0700)
Signed-off-by: Scott R Parish <srp@srparish.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin.h
git.c
help.c

index 65cc0fb34a952356e0c5fce3e2e4bea2f1804b02..9a6213af126212dc131133cc2e9bf8b8d7a34557 100644 (file)
--- a/builtin.h
+++ b/builtin.h
@@ -6,6 +6,7 @@
 extern const char git_version_string[];
 extern const char git_usage_string[];
 
+extern void list_common_cmds_help(void);
 extern void help_unknown_cmd(const char *cmd);
 extern int write_tree(unsigned char *sha1, int missing_ok, const char *prefix);
 extern void prune_packed_objects(int);
diff --git a/git.c b/git.c
index 23a430c3690ed1f921ec22196edf1f0062bc6dcd..efed91c4f47bea97db52e931ad6652e2eaac152e 100644 (file)
--- a/git.c
+++ b/git.c
@@ -450,9 +450,10 @@ int main(int argc, const char **argv)
                if (!prefixcmp(argv[0], "--"))
                        argv[0] += 2;
        } else {
-               /* Default command: "help" */
-               argv[0] = "help";
-               argc = 1;
+               /* The user didn't specify a command; give them help */
+               printf("usage: %s\n\n", git_usage_string);
+               list_common_cmds_help();
+               exit(1);
        }
        cmd = argv[0];
 
diff --git a/help.c b/help.c
index e5662d9014e758fee00b890e06ffc66cd4aa0291..daefa75ea0c2d900beb1ccadc22deb399bd8a809 100644 (file)
--- a/help.c
+++ b/help.c
@@ -147,7 +147,7 @@ static void list_commands(const char *exec_path, const char *pattern)
        putchar('\n');
 }
 
-static void list_common_cmds_help(void)
+void list_common_cmds_help(void)
 {
        int i, longest = 0;
 
@@ -203,14 +203,14 @@ int cmd_help(int argc, const char **argv, const char *prefix)
        if (!help_cmd) {
                printf("usage: %s\n\n", git_usage_string);
                list_common_cmds_help();
-               exit(1);
+               exit(0);
        }
 
        else if (!strcmp(help_cmd, "--all") || !strcmp(help_cmd, "-a")) {
                printf("usage: %s\n\n", git_usage_string);
                if(exec_path)
                        list_commands(exec_path, "git-*");
-               exit(1);
+               exit(0);
        }
 
        else