diff options
author | 2018-11-22 11:30:15 +0000 | |
---|---|---|
committer | 2018-11-22 11:30:15 +0000 | |
commit | d17f606763ad7b8028baf86f272bf151418fab61 (patch) | |
tree | 63c980d4280bec4343997293f7328392302c8502 /usr.bin/mandoc/manpath.c | |
parent | Do not use PWD unless it actually matches the real working directory. (diff) | |
download | wireguard-openbsd-d17f606763ad7b8028baf86f272bf151418fab61.tar.xz wireguard-openbsd-d17f606763ad7b8028baf86f272bf151418fab61.zip |
In -T locale (the default), -T ascii, and -T utf8 mode, provide a new
output option -O tag[=term] to move right to the definition of "term" when
opening the manual page in a pager, effectively porting the -T html
fragment name feature - https://man.openbsd.org/ksh#ulimit - to the
terminal. Try:
$ man -O tag uvm_sysctl
$ man -O tag=ulimit ksh
$ man -O tag 3 compress
Feature development triggered by a question from kn@. Klemens also
tested, provided feedback that resulted in improvements, and provided
an OK.
Diffstat (limited to 'usr.bin/mandoc/manpath.c')
-rw-r--r-- | usr.bin/mandoc/manpath.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/usr.bin/mandoc/manpath.c b/usr.bin/mandoc/manpath.c index 56370e73bef..c01309ac6d3 100644 --- a/usr.bin/mandoc/manpath.c +++ b/usr.bin/mandoc/manpath.c @@ -1,4 +1,4 @@ -/* $OpenBSD: manpath.c,v 1.23 2018/10/02 14:56:36 schwarze Exp $ */ +/* $OpenBSD: manpath.c,v 1.24 2018/11/22 11:30:15 schwarze Exp $ */ /* * Copyright (c) 2011,2014,2015,2017,2018 Ingo Schwarze <schwarze@openbsd.org> * Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv> @@ -232,8 +232,8 @@ int manconf_output(struct manoutput *conf, const char *cp, int fromfile) { const char *const toks[] = { - "includes", "man", "paper", "style", - "indent", "width", "fragment", "mdoc", "noval", "toc" + "includes", "man", "paper", "style", "indent", "width", + "tag", "fragment", "mdoc", "noval", "toc" }; const char *errstr; @@ -257,7 +257,7 @@ manconf_output(struct manoutput *conf, const char *cp, int fromfile) warnx("-O %s=?: Missing argument value", toks[tok]); return -1; } - if ((tok == 6 || tok == 7) && *cp != '\0') { + if (tok > 6 && *cp != '\0') { warnx("-O %s: Does not take a value: %s", toks[tok], cp); return -1; } @@ -312,15 +312,22 @@ manconf_output(struct manoutput *conf, const char *cp, int fromfile) warnx("-O width=%s is %s", cp, errstr); return -1; case 6: - conf->fragment = 1; + if (conf->tag != NULL) { + oldval = mandoc_strdup(conf->tag); + break; + } + conf->tag = mandoc_strdup(cp); return 0; case 7: - conf->mdoc = 1; + conf->fragment = 1; return 0; case 8: - conf->noval = 1; + conf->mdoc = 1; return 0; case 9: + conf->noval = 1; + return 0; + case 10: conf->toc = 1; return 0; default: |