a28d31aaa9a716fac3f1c59aa7a8f4af26601b21
1 #! /bin/sh /usr/share/dpatch/dpatch-run
2 ## bts594549-pager-segfault.dpatch by Jonas Fonseca <fonseca@diku.dk>
3 ##
4 ## DP: Fix segfault when starting tig in pager mode.
5 ## DP:
6 ## DP: (Upstream commit 5355b6ed446a22714d944c316f3c037348f67d76)
8 @DPATCH@
10 diff a/tig.c b/tig.c
11 --- a/tig.c
12 +++ b/tig.c
13 @@ -2308,7 +2308,7 @@
14 VIEW_(BLAME, "blame", &blame_ops, TRUE, ref_commit),
15 VIEW_(BRANCH, "branch", &branch_ops, TRUE, ref_head),
16 VIEW_(HELP, "help", &help_ops, FALSE, ""),
17 - VIEW_(PAGER, "pager", &pager_ops, FALSE, "stdin"),
18 + VIEW_(PAGER, "pager", &pager_ops, FALSE, ""),
19 VIEW_(STATUS, "status", &status_ops, TRUE, ""),
20 VIEW_(STAGE, "stage", &stage_ops, TRUE, ""),
21 };
22 @@ -3700,6 +3700,13 @@
23 break;
25 case REQ_VIEW_PAGER:
26 + if (view == NULL) {
27 + if (!io_open(&VIEW(REQ_VIEW_PAGER)->io, ""))
28 + die("Failed to open stdin");
29 + open_view(view, request, OPEN_PREPARED);
30 + break;
31 + }
32 +
33 if (!VIEW(REQ_VIEW_PAGER)->pipe && !VIEW(REQ_VIEW_PAGER)->lines) {
34 report("No pager content, press %s to run command from prompt",
35 get_key(view->keymap, REQ_PROMPT));
36 @@ -7729,10 +7736,8 @@
37 const char **filter_argv = NULL;
38 int i;
40 - if (!isatty(STDIN_FILENO)) {
41 - io_open(&VIEW(REQ_VIEW_PAGER)->io, "");
42 + if (!isatty(STDIN_FILENO))
43 return REQ_VIEW_PAGER;
44 - }
46 if (argc <= 1)
47 return REQ_VIEW_MAIN;