grep: remove redundant "fixed" field re-assignment to 0
[gitweb.git] / git.c
diff --git a/git.c b/git.c
index 58ef570294da1ffc8fed38609d140833426dd14f..5be27b07e5146e89ce6497566ec602a3f58bc313 100644 (file)
--- a/git.c
+++ b/git.c
@@ -1,4 +1,5 @@
 #include "builtin.h"
+#include "config.h"
 #include "exec_cmd.h"
 #include "help.h"
 #include "run-command.h"
@@ -17,6 +18,8 @@ const char git_more_info_string[] =
 
 static int use_pager = -1;
 
+static void list_builtins(void);
+
 static void commit_pager_choice(void) {
        switch (use_pager) {
        case 0:
@@ -188,6 +191,9 @@ static int handle_options(const char ***argv, int *argc, int *envchanged)
                        }
                        (*argv)++;
                        (*argc)--;
+               } else if (!strcmp(cmd, "--list-builtins")) {
+                       list_builtins();
+                       exit(0);
                } else {
                        fprintf(stderr, "Unknown option: %s\n", cmd);
                        usage(git_usage_string);
@@ -482,6 +488,13 @@ int is_builtin(const char *s)
        return !!get_builtin(s);
 }
 
+static void list_builtins(void)
+{
+       int i;
+       for (i = 0; i < ARRAY_SIZE(commands); i++)
+               printf("%s\n", commands[i].cmd);
+}
+
 #ifdef STRIP_EXTENSION
 static void strip_extension(const char **argv)
 {