version 1.307, 2018/08/09 17:30:36 |
version 1.310, 2018/11/22 12:01:46 |
Line 405 main(int argc, char *argv[]) |
|
Line 405 main(int argc, char *argv[]) |
|
res[sz].names = NULL; |
res[sz].names = NULL; |
res[sz].output = NULL; |
res[sz].output = NULL; |
res[sz].ipath = SIZE_MAX; |
res[sz].ipath = SIZE_MAX; |
res[sz].bits = 0; |
|
res[sz].sec = 10; |
res[sz].sec = 10; |
res[sz].form = FORM_SRC; |
res[sz].form = FORM_SRC; |
sz++; |
sz++; |
Line 486 main(int argc, char *argv[]) |
|
Line 485 main(int argc, char *argv[]) |
|
curp.mp = mparse_alloc(options, curp.mmin, mmsg, |
curp.mp = mparse_alloc(options, curp.mmin, mmsg, |
curp.os_e, curp.os_s); |
curp.os_e, curp.os_s); |
|
|
/* |
|
* Conditionally start up the lookaside buffer before parsing. |
|
*/ |
|
if (OUTT_MAN == curp.outtype) |
|
mparse_keep(curp.mp); |
|
|
|
if (argc < 1) { |
if (argc < 1) { |
if (use_pager) |
if (use_pager) |
tag_files = tag_init(); |
tag_files = tag_init(); |
Line 524 main(int argc, char *argv[]) |
|
Line 517 main(int argc, char *argv[]) |
|
fd = mparse_open(curp.mp, resp != NULL ? resp->file : *argv); |
fd = mparse_open(curp.mp, resp != NULL ? resp->file : *argv); |
if (fd != -1) { |
if (fd != -1) { |
if (use_pager) { |
if (use_pager) { |
tag_files = tag_init(); |
|
use_pager = 0; |
use_pager = 0; |
|
tag_files = tag_init(); |
|
if (conf.output.tag != NULL && |
|
tag_files->tagname == NULL) |
|
tag_files->tagname = |
|
*conf.output.tag != '\0' ? |
|
conf.output.tag : *argv; |
} |
} |
|
|
if (resp == NULL) |
if (resp == NULL) |
|
|
page->names = NULL; |
page->names = NULL; |
page->output = NULL; |
page->output = NULL; |
page->ipath = ipath; |
page->ipath = ipath; |
page->bits = NAME_FILE & NAME_MASK; |
|
page->sec = (*sec >= '1' && *sec <= '9') ? *sec - '1' + 1 : 10; |
page->sec = (*sec >= '1' && *sec <= '9') ? *sec - '1' + 1 : 10; |
page->form = form; |
page->form = form; |
return 1; |
return 1; |
Line 878 parse(struct curparse *curp, int fd, const char *file) |
|
Line 875 parse(struct curparse *curp, int fd, const char *file) |
|
tree_man(curp->outdata, man); |
tree_man(curp->outdata, man); |
break; |
break; |
case OUTT_MAN: |
case OUTT_MAN: |
man_man(curp->outdata, man); |
mparse_copy(curp->mp); |
break; |
break; |
case OUTT_PDF: |
case OUTT_PDF: |
case OUTT_ASCII: |
case OUTT_ASCII: |
Line 1186 spawn_pager(struct tag_files *tag_files) |
|
Line 1183 spawn_pager(struct tag_files *tag_files) |
|
const char *pager; |
const char *pager; |
char *cp; |
char *cp; |
size_t cmdlen; |
size_t cmdlen; |
int argc; |
int argc, use_ofn; |
pid_t pager_pid; |
pid_t pager_pid; |
|
|
pager = getenv("MANPAGER"); |
pager = getenv("MANPAGER"); |
Line 1202 spawn_pager(struct tag_files *tag_files) |
|
Line 1199 spawn_pager(struct tag_files *tag_files) |
|
*/ |
*/ |
|
|
argc = 0; |
argc = 0; |
while (argc + 4 < MAX_PAGER_ARGS) { |
while (argc + 5 < MAX_PAGER_ARGS) { |
argv[argc++] = cp; |
argv[argc++] = cp; |
cp = strchr(cp, ' '); |
cp = strchr(cp, ' '); |
if (cp == NULL) |
if (cp == NULL) |
Line 1216 spawn_pager(struct tag_files *tag_files) |
|
Line 1213 spawn_pager(struct tag_files *tag_files) |
|
|
|
/* For less(1), use the tag file. */ |
/* For less(1), use the tag file. */ |
|
|
|
use_ofn = 1; |
if ((cmdlen = strlen(argv[0])) >= 4) { |
if ((cmdlen = strlen(argv[0])) >= 4) { |
cp = argv[0] + cmdlen - 4; |
cp = argv[0] + cmdlen - 4; |
if (strcmp(cp, "less") == 0) { |
if (strcmp(cp, "less") == 0) { |
argv[argc++] = mandoc_strdup("-T"); |
argv[argc++] = mandoc_strdup("-T"); |
argv[argc++] = tag_files->tfn; |
argv[argc++] = tag_files->tfn; |
|
if (tag_files->tagname != NULL) { |
|
argv[argc++] = mandoc_strdup("-t"); |
|
argv[argc++] = tag_files->tagname; |
|
use_ofn = 0; |
|
} |
} |
} |
} |
} |
argv[argc++] = tag_files->ofn; |
if (use_ofn) |
|
argv[argc++] = tag_files->ofn; |
argv[argc] = NULL; |
argv[argc] = NULL; |
|
|
switch (pager_pid = fork()) { |
switch (pager_pid = fork()) { |