Code

Fix tig show by replacing %(commit) with %(revargs) on first display
[tig.git] / tig.c
diff --git a/tig.c b/tig.c
index b6df54c82060163ce895102c69180a1294b48e78..7bc5daaaeeb440018bcb7642e42af11c66ea63ad 100644 (file)
--- a/tig.c
+++ b/tig.c
@@ -2407,11 +2407,12 @@ draw_chars(struct view *view, enum line_type type, const char *string,
                }
 
                waddnstr(view->win, string, len);
-       }
-       if (trimmed && use_tilde) {
-               set_view_attr(view, LINE_DELIMITER);
-               waddch(view->win, '~');
-               col++;
+
+               if (trimmed && use_tilde) {
+                       set_view_attr(view, LINE_DELIMITER);
+                       waddch(view->win, '~');
+                       col++;
+               }
        }
 
        return col;
@@ -3223,7 +3224,7 @@ format_arg(const char *name)
 }
 
 static bool
-format_argv(const char ***dst_argv, const char *src_argv[], bool replace)
+format_argv(const char ***dst_argv, const char *src_argv[], bool replace, bool first)
 {
        char buf[SIZEOF_STR];
        int argc;
@@ -3244,7 +3245,8 @@ format_argv(const char ***dst_argv, const char *src_argv[], bool replace)
                                break;
                        continue;
 
-               } else if (!strcmp(arg, "%(revargs)")) {
+               } else if (!strcmp(arg, "%(revargs)") ||
+                          (first && !strcmp(arg, "%(commit)"))) {
                        if (!argv_append_array(dst_argv, opt_rev_args))
                                break;
                        continue;
@@ -3330,7 +3332,7 @@ static bool
 prepare_io(struct view *view, const char *dir, const char *argv[], bool replace)
 {
        view->dir = dir;
-       return format_argv(&view->argv, argv, replace);
+       return format_argv(&view->argv, argv, replace, !view->parent);
 }
 
 static bool
@@ -3667,7 +3669,7 @@ open_run_request(enum request request)
                return;
        }
 
-       if (format_argv(&argv, req->argv, TRUE))
+       if (format_argv(&argv, req->argv, TRUE, FALSE))
                open_external_viewer(argv, NULL);
        if (argv)
                argv_free(argv);
@@ -7109,7 +7111,7 @@ init_display(void)
        keypad(status_win, TRUE);
        wbkgdset(status_win, get_line_attr(LINE_STATUS));
 
-       TABSIZE = opt_tab_size;
+       set_tabsize(opt_tab_size);
 
        term = getenv("XTERM_VERSION") ? NULL : getenv("COLORTERM");
        if (term && !strcmp(term, "gnome-terminal")) {