Code

argv: remove now unused FORMAT_DASH
[tig.git] / tig.c
diff --git a/tig.c b/tig.c
index 826c3f9be45a5d907f0d5e26a7fd89c94c89de6a..cd3428cc38c29f783bdbc12800f3dd5ad26d86bf 100644 (file)
--- a/tig.c
+++ b/tig.c
@@ -142,7 +142,6 @@ static int load_refs(void);
 
 enum format_flags {
        FORMAT_ALL,             /* Perform replacement in all arguments. */
-       FORMAT_DASH,            /* Perform replacement up until "--". */
        FORMAT_NONE             /* No replacement should be performed. */
 };
 
@@ -1730,6 +1729,7 @@ static void
 add_builtin_run_requests(void)
 {
        const char *cherry_pick[] = { "git", "cherry-pick", "%(commit)", NULL };
+       const char *checkout[] = { "git", "checkout", "%(branch)", NULL };
        const char *commit[] = { "git", "commit", NULL };
        const char *gc[] = { "git", "gc", NULL };
        struct {
@@ -1740,6 +1740,7 @@ add_builtin_run_requests(void)
        } reqs[] = {
                { KEYMAP_MAIN,    'C', ARRAY_SIZE(cherry_pick) - 1, cherry_pick },
                { KEYMAP_STATUS,  'C', ARRAY_SIZE(commit) - 1, commit },
+               { KEYMAP_BRANCH,  'C', ARRAY_SIZE(checkout) - 1, checkout },
                { KEYMAP_GENERIC, 'G', ARRAY_SIZE(gc) - 1, gc },
        };
        int i;
@@ -2157,6 +2158,7 @@ static unsigned int current_view;
 static char ref_blob[SIZEOF_REF]       = "";
 static char ref_commit[SIZEOF_REF]     = "HEAD";
 static char ref_head[SIZEOF_REF]       = "HEAD";
+static char ref_branch[SIZEOF_REF]     = "";
 
 struct view {
        const char *name;       /* View name */
@@ -3112,6 +3114,7 @@ format_arg(const char *name)
                FORMAT_VAR("%(head)",           ref_head,       ""),
                FORMAT_VAR("%(commit)",         ref_commit,     ""),
                FORMAT_VAR("%(blob)",           ref_blob,       ""),
+               FORMAT_VAR("%(branch)",         ref_branch,     ""),
        };
        int i;
 
@@ -3142,8 +3145,6 @@ format_argv(const char *dst_argv[], const char *src_argv[], enum format_flags fl
                        const char *value;
 
                        if (!next || noreplace) {
-                               if (flags == FORMAT_DASH && !strcmp(arg, "--"))
-                                       noreplace = TRUE;
                                len = strlen(arg);
                                value = "";
 
@@ -3218,12 +3219,11 @@ setup_update(struct view *view, const char *vid)
 }
 
 static bool
-prepare_update(struct view *view, const char *argv[], const char *dir,
-              enum format_flags flags)
+prepare_update(struct view *view, const char *argv[], const char *dir)
 {
        if (view->pipe)
                end_update(view, TRUE);
-       return io_format(&view->io, dir, IO_RD, argv, flags);
+       return io_format(&view->io, dir, IO_RD, argv, FORMAT_NONE);
 }
 
 static bool
@@ -5187,7 +5187,7 @@ blame_request(struct view *view, enum request request, struct line *line)
                                diff_index_argv[7] = "/dev/null";
                        }
 
-                       if (!prepare_update(diff, diff_index_argv, NULL, FORMAT_DASH)) {
+                       if (!prepare_update(diff, diff_index_argv, NULL)) {
                                report("Failed to allocate diff command");
                                break;
                        }
@@ -5325,7 +5325,7 @@ branch_request(struct view *view, enum request request, struct line *line)
                        };
                        struct view *main_view = VIEW(REQ_VIEW_MAIN);
 
-                       if (!prepare_update(main_view, all_branches_argv, NULL, FORMAT_NONE)) {
+                       if (!prepare_update(main_view, all_branches_argv, NULL)) {
                                report("Failed to load view of all branches");
                                return REQ_NONE;
                        }
@@ -5440,6 +5440,7 @@ branch_select(struct view *view, struct line *line)
        string_copy_rev(view->ref, branch->ref->id);
        string_copy_rev(ref_commit, branch->ref->id);
        string_copy_rev(ref_head, branch->ref->id);
+       string_copy_rev(ref_branch, branch->ref->name);
 }
 
 static struct view_ops branch_ops = {
@@ -5809,7 +5810,7 @@ status_enter(struct view *view, struct line *line)
                                        "--", "/dev/null", newpath, NULL
                        };
 
-                       if (!prepare_update(stage, no_head_diff_argv, opt_cdup, FORMAT_DASH))
+                       if (!prepare_update(stage, no_head_diff_argv, opt_cdup))
                                return status_load_error(view, stage, newpath);
                } else {
                        const char *index_show_argv[] = {
@@ -5818,7 +5819,7 @@ status_enter(struct view *view, struct line *line)
                                        oldpath, newpath, NULL
                        };
 
-                       if (!prepare_update(stage, index_show_argv, opt_cdup, FORMAT_DASH))
+                       if (!prepare_update(stage, index_show_argv, opt_cdup))
                                return status_load_error(view, stage, newpath);
                }
 
@@ -5835,7 +5836,7 @@ status_enter(struct view *view, struct line *line)
                                "-C", "-M", "--", oldpath, newpath, NULL
                };
 
-               if (!prepare_update(stage, files_show_argv, opt_cdup, FORMAT_DASH))
+               if (!prepare_update(stage, files_show_argv, opt_cdup))
                        return status_load_error(view, stage, newpath);
                if (status)
                        info = "Unstaged changes to %s";
@@ -7733,7 +7734,7 @@ parse_options(int argc, const char *argv[])
                        die("command too long");
        }
 
-       if (!prepare_update(VIEW(request), custom_argv, NULL, FORMAT_NONE))
+       if (!prepare_update(VIEW(request), custom_argv, NULL))
                die("Failed to format arguments");
 
        return request;
@@ -7828,7 +7829,7 @@ main(int argc, const char *argv[])
 
                                if (!argv_from_string(argv, &argc, cmd)) {
                                        report("Too many arguments");
-                               } else if (!prepare_update(next, argv, NULL, FORMAT_DASH)) {
+                               } else if (!prepare_update(next, argv, NULL)) {
                                        report("Failed to format command");
                                } else {
                                        open_view(view, REQ_VIEW_PAGER, OPEN_PREPARED);