summaryrefslogtreecommitdiffstats
path: root/manpath.c
Commit message (Collapse)AuthorAgeFilesLines
* Make sure that the configuration file is always read, even whenIngo Schwarze2021-11-051-48/+37
| | | | | | | | | | | running with the -M option or with a MANPATH environment variable that has neither a leading or trailing ":" nor any "::". If -M or MANPATH override the configuration file rather than adding to it, just ignore any "manpath" directives while processing the configuration file. This fixes a bug reported by Jan Stary <hans at stare dot cz> on misc@.
* Fix a regression caused by the insertion of two new tokens,Ingo Schwarze2020-08-271-9/+17
| | | | | | which unintentionally made the -O tag= argument mandatory, breaking commands like "man -akO tag Ic=ulimit". Noticed while answering questions from Ian Ropers.
* undocumented options -O outfilename and -O tagfilenameIngo Schwarze2020-07-211-6/+21
| | | | | to support regression testing without a tty; no user visible change intended
* Finally delete support for the "_whatdb" configuration directive,Ingo Schwarze2020-02-101-8/+1
| | | | | which has a misleading syntax. It was declared obsolete and superseded by the "manpath" directive five years ago.
* Some time ago, i simplified mandoc_msg() such that it can be usedIngo Schwarze2019-07-101-43/+47
| | | | | | | | | everywhere and not only in the parsers. For more uniform messages, use it at more places instead of err(3), in particular in the main program. While here, integrate a few trivial functions called at exactly one place into the main option parser, and let a few more functions use the normal convention of returning 0 for success and -1 for error.
* avoid duplicate "bad argument" error message, also shortening the codeIngo Schwarze2019-05-031-2/+1
|
* when processing unknown output options, prevent passing NULL to printf;Ingo Schwarze2019-05-031-2/+3
| | | | patch from anton@
* In -T locale (the default), -T ascii, and -T utf8 mode, provide a newIngo Schwarze2018-11-221-6/+13
| | | | | | | | | | | | | | | 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.
* Add an option -T html -O toc to add a brief table of contents nearIngo Schwarze2018-10-021-2/+5
| | | | | the top of HTML pages containing at least two non-standard sections. Suggested by Adam Kalisz and discussed with kristaps@ during EuroBSDCon 2018.
* Basic reporting of .Xrs to manual pages that don't existIngo Schwarze2017-07-011-1/+8
| | | | | | | | | | | | in the base system, inspired by mdoclint(1). We are able to do this because (1) the -mdoc parser, the -Tlint validator, and the man(1) manual page lookup code are all in the same program and (2) the mandoc.db(5) database format allows fast lookup. Feedback from, previous versions tested by, and OK jmc@. A few features will be added to this in the tree, step by step.
* Delete the arbitrary range restriction for -Owidth.Ingo Schwarze2017-06-131-1/+1
| | | | | | | We provide users with tools. We don't attempt to prevent them from using them in stupid ways: depending on the context, not every stupid-looking use is necessarily actually stupid, and not every stupidity can be automatically detected anyway, so don't even try.
* In -Ttree output mode, show the BROKEN node flag andIngo Schwarze2017-02-101-1/+4
| | | | provide a -Onoval output option to show the unvalidated tree.
* warn about invalid output optionsIngo Schwarze2017-01-271-28/+67
| | | | | and error out if they occur on the command line; missing feature found in the TODO file
* Now that our man.conf(5) format is mature and extremely simple,Ingo Schwarze2016-07-191-51/+0
| | | | | | | | delete manpath(1) support. With the mandoc-based man(1), manpath(1) is utterly useless. Just set MANPATH_DEFAULT in configure.local for sane operating system defaults, use man.conf(5) for machine- specific modifications, and use ${MANPATH}, -m, and -M for user preferences.
* Trim trailing whitespace from man.conf lines; patch from millert@.Ingo Schwarze2016-05-281-5/+4
|
* Modernization, no functional change intended:Ingo Schwarze2015-11-071-9/+15
| | | | | | Use the POSIX function getline(3) rather than the slightly dangerous BSD function fgetln(3). Remove the related compatibility code.
* Without HAVE_ERR, don't try to include <err.h>, it probably isn't there.Ingo Schwarze2015-11-071-0/+2
| | | | | In that case, the required prototypes are in "config.h". Patch from Peter Bray <pdb_ml at yahoo dot com dot au>.
* Finally use __progname, err(3) and warn(3).Ingo Schwarze2015-10-111-8/+5
| | | | | | | | | | That's more readable and less error-prone than fumbling around with argv[0], fprintf(3), strerror(3), perror(3), and exit(3). It's a bad idea to boycott good interfaces merely because standards committees ignore them. Instead, let's provide compatibility modules for archaic systems (like commercial Solaris) that still don't have them. The compat module has an UCB Copyright (c) 1993...
* Avoid warning "defined but not used" when compiling with HAVE_MANPATH.Ingo Schwarze2015-06-101-0/+4
| | | | Issue found on Debian by Markus <Waldeck at gmx dot de>.
* Do not let the -m option or MANPATH with leading, trailing, or doubleIngo Schwarze2015-05-071-5/+7
| | | | | | | | | colon override the default manpath, let them add to the default manpath. Only override the default manpath by the -M option, by MANPATH without leading, trailing, or double colon, or by "manpath" in man.conf(5). Problem reported by Jan Stary <hans at stare dot cz>. Patch OK'ed by millert@.
* Fix the HAVE_MANPATH case, got broken in rev. 1.23.Ingo Schwarze2015-04-281-1/+1
| | | | Patch from Steffen Nurpmeso <sdaoden at yandex dot com>, thanks.
* Parse the new man.conf(5) "output" directive.Ingo Schwarze2015-03-271-26/+95
| | | | The next step will be to actually use the parsed data.
* Add a new directive "manpath path"Ingo Schwarze2015-03-261-26/+42
| | | | | | to replace the legacy "_whatdb path/whatis.db". Keep _whatdb support for backward compat, for now. Discussed with many, jmc@ and ajacoutot@ agree with the general direction.
* make MANPATH_DEFAULT compile-time configurableIngo Schwarze2015-03-221-1/+0
|
* when there is no -m, no -M, no MANPATH and no /etc/man.conf,Ingo Schwarze2015-03-211-1/+5
| | | | fall back to /usr/share/man:/usr/X11R6/man:/usr/local/man
* fix build when HAVE_MANPATH is set; patch from <bapt at FreeBSD>Ingo Schwarze2014-11-271-1/+1
|
* Ignore invalid directories in man.conf(5) and MANPATH, even if theirIngo Schwarze2014-11-181-15/+30
| | | | | | parent directories exist, but complain about invalid directories given on the command line. Intended to fix an oddity reported by sthen@.
* Improve build system and autodetection.Ingo Schwarze2014-08-161-1/+1
| | | | | | | | | * Make ./configure standalone, that's what people expect. * Let people write a ./configure.local from scratch, not edit existing files. * Autodetect wchar, sqlite3, and manpath and act accordingly. * Autodetect the need for -L/usr/local/lib and -lutil. * Get rid of config.h.p{re,ost}, let ./configure only write what's needed. * Let ./configure write a Makefile.local snippet, that's quite flexible.
* Get rid of HAVE_CONFIG_H, it is always defined; idea from libnbcompat.Ingo Schwarze2014-08-101-2/+2
| | | | | | Include <sys/types.h> where needed, it does not belong in config.h. Remove <stdio.h> from config.h; if it is missing somewhere, it should be added, but i cannot find a *.c file where it is missing.
* Audit malloc(3)/calloc(3)/realloc(3) usage.Ingo Schwarze2014-04-231-2/+2
| | | | | | | * Change eight reallocs to reallocarray to be safe from overflows. * Change one malloc to reallocarray to be safe from overflows. * Change one calloc to reallocarray, no zeroing needed. * Change the order of arguments of three callocs (aesthetical).
* KNF: case (FOO): -> case FOO:, remove /* LINTED */ and /* ARGSUSED */,Ingo Schwarze2014-04-201-3/+2
| | | | | remove trailing whitespace and blanks before tabs, improve some indenting; no functional change
* The files mandoc.c and mandoc.h contained both specialised low-levelIngo Schwarze2014-03-231-1/+1
| | | | | | | functions used for multiple languages (mdoc, man, roff), for example mandoc_escape(), mandoc_getarg(), mandoc_eos(), and generic auxiliary functions. Split the auxiliaries out into their own file and header. While here, do some #include cleanup.
* My audit of mandoc revealed one missing (unsigned char) castIngo Schwarze2013-11-211-1/+1
| | | | | in an isspace() argument containing arbitrary char data. Thanks to deraadt@ for triggering the audit.
* Some places used PATH_MAX from <limits.h>, some MAXPATHLEN from <sys/param.h>.Ingo Schwarze2013-06-051-5/+1
| | | | | | Consistently use the PATH_MAX since it is specified by POSIX, while MAXPATHLEN is not. In preparation for using this at a few more places.
* Sync to OpenBSD:Ingo Schwarze2013-05-291-2/+4
| | | | | | | | * Guard <sys/param.h> inclusion by #ifdef USE_MANPATH to make it more obvious why this isn't needed on OpenBSD. Noticed by deraadt@. * Resolve gratuitious whitespace differences: Blanks before tabs and on empty lines.
* Use size_t in manpath instead of int.Kristaps Dzonsons2012-06-081-5/+5
|
* Support leading, trailing and double colons in MANPATH to prepend,Kristaps Dzonsons2011-12-241-6/+45
| | | | | | | | append or insert the man.conf(5) default path; compatible with GNU manpath(1), implementation by kristaps@, heavily tweaked by schwarze@. Updates to MANPATH documentation applied to whatis.1, apropos.1, and catman.8 also.
* Remove stray warnx() left in the manpath.c code.Kristaps Dzonsons2011-12-131-1/+0
|
* Have manpath.c properly use manpath(1), that is, using -C and -m and so on.Kristaps Dzonsons2011-12-131-41/+52
| | | | | This also cleans up the code a little bit. While here, make some functions static that are only used within manpath.c.
* implement -C (alternative config file) for apropos(1) and mandocdb(8),Ingo Schwarze2011-12-121-5/+6
| | | | | including various tweaks to the whatis(8) manual; ok kristaps@
* Sync to OpenBSD, mostly gratuitous and whitespace differences,Ingo Schwarze2011-11-261-8/+9
| | | | | | | | | but a few serious things as well: * -M overrides MANPATH * -m prepends to the path * put back database close calls that got lost in mandocdb * missing sys/types.h in manpath.c, needed for size_t ok kristaps@
* Allow man.conf file to be assignable.Kristaps Dzonsons2011-11-241-3/+3
|
* Export the manpath_manconf() function, slightly reorderng manpath.c whileKristaps Dzonsons2011-11-241-13/+20
| | | | | doing so. This will be used by a jailed man.cgi, as the cache built by manup(8) creates a man.conf for it to use.
* Support for Open/NetBSD's /etc/man.conf and others' manpath(1).Kristaps Dzonsons2011-11-231-0/+167
Most of this code (except the manpath part) written by schwarze@. This isn't hooked into anything yet.