From 63715ce7fcf7bb1237ac456e45c0d5ecefda8e2c Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Tue, 21 Jul 2015 03:26:21 +0000 Subject: When creation of the temporary tags file fails, call the pager without the -T option, because otherwise the pager won't even start. Fixing a bug reported by jca@. While here, shorten the code by two lines and delete one internal interface function. --- main.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index ca30cf4d..66bbfea8 100644 --- a/main.c +++ b/main.c @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.242 2015/07/19 06:05:16 schwarze Exp $ */ +/* $Id: main.c,v 1.243 2015/07/21 03:26:21 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010-2012, 2014, 2015 Ingo Schwarze @@ -993,15 +993,18 @@ spawn_pager(void) /* Read all text right away and use the tag file. */ - if ((cmdlen = strlen(argv[0])) >= 4) { + for (;;) { + if ((cmdlen = strlen(argv[0])) < 4) + break; cp = argv[0] + cmdlen - 4; - if (strcmp(cp, "less") == 0 || - strcmp(cp, "more") == 0) { - tag_init(); - argv[argc++] = mandoc_strdup("+G1G"); - argv[argc++] = mandoc_strdup("-T"); - argv[argc++] = tag_filename(); - } + if (strcmp(cp, "less") && strcmp(cp, "more")) + break; + if ((cp = tag_init()) == NULL) + break; + argv[argc++] = mandoc_strdup("+G1G"); + argv[argc++] = mandoc_strdup("-T"); + argv[argc++] = cp; + break; } argv[argc] = NULL; -- cgit v1.2.3