expose a helper function peel_to_type().
[gitweb.git] / git.c
diff --git a/git.c b/git.c
index a5adc3487d4ca62a9ff93679ce8711a578a5c3eb..0cb86884d738a8314f164c82e4cc619a9998f3db 100644 (file)
--- a/git.c
+++ b/git.c
@@ -93,6 +93,8 @@ static char *alias_string;
 static int git_alias_config(const char *var, const char *value)
 {
        if (!prefixcmp(var, "alias.") && !strcmp(var + 6, alias_command)) {
+               if (!value)
+                       return config_error_nonbool(var);
                alias_string = xstrdup(value);
        }
        return 0;
@@ -169,7 +171,7 @@ static int handle_alias(int *argcp, const char ***argv)
 
                                strbuf_init(&buf, PATH_MAX);
                                strbuf_addstr(&buf, alias_string);
-                               sq_quote_argv(&buf, (*argv) + 1, *argcp - 1, PATH_MAX);
+                               sq_quote_argv(&buf, (*argv) + 1, PATH_MAX);
                                free(alias_string);
                                alias_string = buf.buf;
                        }
@@ -198,7 +200,7 @@ static int handle_alias(int *argcp, const char ***argv)
                if (!strcmp(alias_command, new_argv[0]))
                        die("recursive alias: %s", alias_command);
 
-               trace_argv_printf(new_argv, count,
+               trace_argv_printf(new_argv,
                                  "trace: alias expansion: %s =>",
                                  alias_command);
 
@@ -252,11 +254,11 @@ static int run_command(struct cmd_struct *p, int argc, const char **argv)
        if (p->option & NEED_WORK_TREE)
                setup_work_tree();
 
-       trace_argv_printf(argv, argc, "trace: built-in: git");
+       trace_argv_printf(argv, "trace: built-in: git");
 
        status = p->fn(argc, argv, prefix);
        if (status)
-               return status;
+               return status & 0xff;
 
        /* Somebody closed stdout? */
        if (fstat(fileno(stdout), &st))
@@ -293,6 +295,7 @@ static void handle_internal_command(int argc, const char **argv)
                { "check-attr", cmd_check_attr, RUN_SETUP | NEED_WORK_TREE },
                { "cherry", cmd_cherry, RUN_SETUP },
                { "cherry-pick", cmd_cherry_pick, RUN_SETUP | NEED_WORK_TREE },
+               { "clean", cmd_clean, RUN_SETUP | NEED_WORK_TREE },
                { "commit", cmd_commit, RUN_SETUP | NEED_WORK_TREE },
                { "commit-tree", cmd_commit_tree, RUN_SETUP },
                { "config", cmd_config },
@@ -302,6 +305,7 @@ static void handle_internal_command(int argc, const char **argv)
                { "diff-files", cmd_diff_files },
                { "diff-index", cmd_diff_index, RUN_SETUP },
                { "diff-tree", cmd_diff_tree, RUN_SETUP },
+               { "fast-export", cmd_fast_export, RUN_SETUP },
                { "fetch", cmd_fetch, RUN_SETUP },
                { "fetch-pack", cmd_fetch_pack, RUN_SETUP },
                { "fetch--tool", cmd_fetch__tool, RUN_SETUP },
@@ -322,6 +326,7 @@ static void handle_internal_command(int argc, const char **argv)
                { "log", cmd_log, RUN_SETUP | USE_PAGER },
                { "ls-files", cmd_ls_files, RUN_SETUP },
                { "ls-tree", cmd_ls_tree, RUN_SETUP },
+               { "ls-remote", cmd_ls_remote },
                { "mailinfo", cmd_mailinfo },
                { "mailsplit", cmd_mailsplit },
                { "merge-base", cmd_merge_base, RUN_SETUP },
@@ -330,6 +335,7 @@ static void handle_internal_command(int argc, const char **argv)
                { "mv", cmd_mv, RUN_SETUP | NEED_WORK_TREE },
                { "name-rev", cmd_name_rev, RUN_SETUP },
                { "pack-objects", cmd_pack_objects, RUN_SETUP },
+               { "peek-remote", cmd_ls_remote },
                { "pickaxe", cmd_blame, RUN_SETUP },
                { "prune", cmd_prune, RUN_SETUP },
                { "prune-packed", cmd_prune_packed, RUN_SETUP },
@@ -343,6 +349,7 @@ static void handle_internal_command(int argc, const char **argv)
                { "rev-parse", cmd_rev_parse },
                { "revert", cmd_revert, RUN_SETUP | NEED_WORK_TREE },
                { "rm", cmd_rm, RUN_SETUP },
+               { "send-pack", cmd_send_pack, RUN_SETUP },
                { "shortlog", cmd_shortlog, RUN_SETUP | USE_PAGER },
                { "show-branch", cmd_show_branch, RUN_SETUP },
                { "show", cmd_show, RUN_SETUP | USE_PAGER },