Code

tig-0.16.2
[tig.git] / tig.c
diff --git a/tig.c b/tig.c
index 2a31ddd03b89507c1ecde2cfc788f1110a54eb15..37a779cadea5d7abc85a55d8d40de453e1db9683 100644 (file)
--- a/tig.c
+++ b/tig.c
@@ -3224,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;
@@ -3245,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;
@@ -3331,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->prev);
 }
 
 static bool
@@ -3668,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);
@@ -7110,7 +7111,11 @@ init_display(void)
        keypad(status_win, TRUE);
        wbkgdset(status_win, get_line_attr(LINE_STATUS));
 
+#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20080119)
+       set_tabsize(opt_tab_size);
+#else
        TABSIZE = opt_tab_size;
+#endif
 
        term = getenv("XTERM_VERSION") ? NULL : getenv("COLORTERM");
        if (term && !strcmp(term, "gnome-terminal")) {