aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/apropos.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge OpenBSD revision 1.17:Ingo Schwarze2013-09-171-24/+70
| | | | | Without arguments, show the usage line and EXIT_FAILURE. Resolve some gratuitious differences (order, parantheses, white space, etc).
* Simple partial sync with OpenBSD:Ingo Schwarze2013-07-051-11/+11
| | | | | | | * Again accept suffixes on the name of the whatis utility. * The usage line for whatis must not invite expressions. * Revert the argument names in the SYNOPSIS back to the usual ones. * Revert a few gratuitious changes regarding line breaks etc.
* Allow compilation on Mac OSX.Kristaps Dzonsons2012-06-091-1/+2
|
* Merge whatis.1 into apropos.1 (and remove), add whatis bits to aproposKristaps Dzonsons2012-06-091-8/+13
| | | | (via mansearch), and merge mandocdb.h into mansearch.h (and remove).
* Flip apropos to use mansearch instead of apropos_db.Kristaps Dzonsons2012-06-081-167/+32
| | | | | | | | | This makes the utility much smaller and simpler. A lot of functionality has been omitted while the sqlite3 search routines improve (logical operations, etc.). It still needs work to make the output more conventional. Also add the manpage utility, which I use extensively as a mind-meld of apropos and man.
* Forgot chdir(2) into volume path.VERSION_1_12_1Kristaps Dzonsons2012-03-241-1/+2
|
* Small tweaks for release.Kristaps Dzonsons2012-03-241-1/+2
|
* Be insane. Make apropos(1) subsume man(1).Kristaps Dzonsons2012-03-241-19/+91
|
* Simplify by not pre-filtering the result vector for satisfied matches:Kristaps Dzonsons2012-03-241-10/+17
| | | | we can do this in the frontend.
* Revert to mandocdb.{index,db} for database files.Kristaps Dzonsons2012-03-231-4/+5
|
* When parsing catpages, read from the first section (NAME, we hope) untilKristaps Dzonsons2011-12-311-2/+2
| | | | | the next section. Also, remove the limit of 72 characters and enforce this, instead in the apropos frontend.
* implement -C (alternative config file) for apropos(1) and mandocdb(8),Ingo Schwarze2011-12-121-4/+10
| | | | | including various tweaks to the whatis(8) manual; ok kristaps@
* Apropos and man.cgi should strcasecmp their output sorting.Kristaps Dzonsons2011-12-071-2/+2
| | | | | man.cgi should sort in the first place -- it wasn't before. Revert uppercasing of man.cgi title.
* Make `-i' only apply to regular expressions. For the equality operatorKristaps Dzonsons2011-11-291-3/+3
| | | | | | (and thus the default), always use strcasestr(). Discussed on tech@ with schwarze@. While here, fix the apropos.c usage() message to be consistent with apropos(1) and clean up the EXAMPLES in apropos(1).
* Tweak whatis(1):Ingo Schwarze2011-11-281-2/+2
| | | | | | | * Bugfix: Use all arguments, not just the last one. * Use 'Nm~' instead of 'Nm,Nd~' to match OpenBSD behaviour. * For the progname, accept '^whatis', not '^whatis$' to ease testing. ok kristaps@
* Get us a whatis(1) mode for apropos(1).Kristaps Dzonsons2011-11-271-9/+13
| | | | | This is from a patch to tech@ as critiqued by schwarze@, checked in to get the ball rolling.
* Sync to OpenBSD, mostly gratuitous and whitespace differences,Ingo Schwarze2011-11-261-10/+10
| | | | | | | | | 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@
* Have apropos(1) take advantage of manpath.h instead of doing the workKristaps Dzonsons2011-11-231-134/+5
| | | | itself.
* Initial support for man.conf/makepath(1).Kristaps Dzonsons2011-11-201-9/+93
|
* Clarify some behaviour, bringing schwarze@'s patch and mine closer togetherKristaps Dzonsons2011-11-201-23/+22
| | | | | | | | | | | | | | | | (although I still don't have -M, which is a big piece). First, the default search path is the cwd. This will change to use -M once I look over that code. If MANPATH is specified, this replaces the cwd. Both of these are augmented by -m. If paths don't exist or don't have databases, they're silently ignored. This makes perfect sense: you may be given a superset of possible paths. The corner case of no paths (where, say, MANPATH consists of bogus paths or the cwd is unreadable) simply means that no paths are searched.
* Integrate a moderately-patched version of schwarze@'s support for multipleKristaps Dzonsons2011-11-201-20/+90
| | | | | | | | | | | directories containing mandocdb(8) databases. Some changes follow: (1) don't support -M yet; (2) fall back to cwd if no prior manpath has been specified; (3) resolve manpages using realpath() to prevent consecutive chdir()'s over relative paths; (4) note where further error-reporting is required; (5) fix leaking memory on exit in several cases.
* Evaluation with logical subexpressions. This allows support for arbitrary,Kristaps Dzonsons2011-11-181-38/+14
| | | | nested logical subexpressions with AND (-a) and OR (-o) support.
* Have exprcomp() accept a string instead of an array-pointer. Also, collapseKristaps Dzonsons2011-11-141-2/+29
| | | | | the arguments in apropos(1) into a single string passed to exprcomp(). Ok schwarze@.
* Rewrite the expression parser for a more concise syntax:Ingo Schwarze2011-11-131-9/+4
| | | | | | | | | | | | | apropos [search_type[,...]=]substring apropos search_type[,...][,i]~regex ... and expression evaluation must take the search type into account. This allows to: * drop the global -I option and * drop the enum match, just using a boolean int. "go ahead" kristaps@
* Less misleading file names; ok kristaps@.Ingo Schwarze2011-11-131-2/+2
|
* Make apropos's lookup use a find(1)-like expression. I'll write more onKristaps Dzonsons2011-11-091-57/+16
| | | | | | | | | | this when it completes; this is to keep it in-tree. Right now this uses prefix notation. Ignore it. I'll make this into infix notation real soon. The goal of this (exprcomp and exprexec) is to have arbitrary logical expressions.
* Change getopt() to be more like schwarze@'s suggestions.Kristaps Dzonsons2011-11-091-6/+6
|
* Split apropos.c into db.c and apropos.h with simpler code (re-written, butKristaps Dzonsons2011-11-091-537/+25
| | | | | | | | | inspired by apropos.c and mandoc-tools' mandoc-cgi.c). This uses UTF-8 right now for its re-writing, but will soon accomodate for the regular suspects (this is a rather simple matter). I also introduce man.cgi (cgi.c), which is a standalone CGI that replaces mandoc-tools' mandoc.cgi. Right now it's just a framework.
* Make apropos results-gathering able to error out and clean up beforeKristaps Dzonsons2011-10-091-15/+17
| | | | making the utility exit non-zero.
* Remove some unnecessary variables and note that mchars_alloc never returnsKristaps Dzonsons2011-10-091-26/+8
| | | | NULL.
* Use a binary tree (for now, unbalanced) for deduping the records in theKristaps Dzonsons2011-10-091-6/+32
| | | | | | results array. This is much faster than the previous method, a linear search, at a small cost. Note that array offsets are used instead of storing the res pointer because we may realloc the results vector.
* Use mandoc_realloc() in apropos, as we're linking to libmandoc.a.Kristaps Dzonsons2011-10-081-5/+2
|
* Lift hard-coded limit of results.Kristaps Dzonsons2011-10-071-6/+8
|
* Clean up file a bit: remove errx and err function pointers from theKristaps Dzonsons2011-10-071-118/+98
| | | | | | state struct (directly using fprintf and perror to do this); add some in-line documentation; remove state init and destroy directly to the main function.
* Import apropos from mandoc-tools after inlining all source filesKristaps Dzonsons2011-10-061-0/+689
(originally including extern.h, state.c, and sort.c). The apropos utility interfaces with the databases of mandocdb to provide semantic searching capabilities. It Works For Me, but will need lots of cleanup in the coming months.