summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use the traditional name "whatis.db" for the mandocdb(8) databases.Ingo Schwarze2011-12-255-12/+12
| | | | Requested by deraadt@, ok kristaps@.
* For binary compatability of the databases across architectures,Ingo Schwarze2011-12-253-33/+28
| | | | | | | use pointers to arrays, not pointers to structs. It is now possible to create databases on sparc64 and use them on i386 and vice versa. Kristaps@ can't think of anything else that might be required, either. Put this in now such that we can move on.
* Implement test mode (makewhatis -t), required for pkg_create(8).Ingo Schwarze2011-12-252-216/+348
| | | | | | | | | | | | Always do all consistency checks; when any one fails, decide whether to print a message, or skip the file, or both, or none. While here, do some cleanup as well: * Bail out on conflicting options. * Do not crash with -a if there are plain files in the root dir. * Collect some related variables into structs. Feedback and OK kristaps@.
* Support leading, trailing and double colons in MANPATH to prepend,Kristaps Dzonsons2011-12-244-9/+81
| | | | | | | | 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.
* Do not cast void pointers to pointers requiring alignment.Ingo Schwarze2011-12-202-9/+18
| | | | | | | | | This makes mandocdb(8)/apropos(1) work on strict alignment architectures. Basic way to fix this confirmed by deraadt@ and kettenis@, thanks. ok kristaps@ This now works on both sparc64 and i386, but note that the binary database format is still machine-dependent.
* Give catman(8) the -C flag (like apropos and friends) and merge in someKristaps Dzonsons2011-12-182-4/+24
| | | | documentation from apropos(1) to be consistent.
* Make compat files actually use compat.h. Ooops.Kristaps Dzonsons2011-12-184-0/+16
|
* Two lint fixes.Kristaps Dzonsons2011-12-162-3/+3
|
* Fix assertion found when plugging legacy man.cgi query string into myKristaps Dzonsons2011-12-161-1/+3
| | | | man.cgi.
* Edge in a little style. Why not.Kristaps Dzonsons2011-12-161-1/+3
|
* When routing to a "result" page in the cgi, remember our input parametersKristaps Dzonsons2011-12-161-37/+71
| | | | | and repeat them in the search bar. This is handy. While here, make the QUERY_STRING parser a bit simpler.
* Have results table inherit the small font.Kristaps Dzonsons2011-12-161-0/+1
|
* Make sure that "any" is UINT64_MAX, not just INT_MAX, else "any" won'tKristaps Dzonsons2011-12-161-1/+1
| | | | cover all types. Found after some database trawling.
* Make the stored "cat"/"mdoc"/"man" strings just be c/d/a single-characterKristaps Dzonsons2011-12-166-38/+50
| | | | | bytes. This cuts down a little in index size and allows for cleaner extraction of information.
* Make paths in the mandocdb(8) index relative to the databases' pathKristaps Dzonsons2011-12-164-69/+67
| | | | | | | prefix. This means that an index in, say, /usr/share/man will point to man1/foo.1 instead of /usr/share/man/man1/foo.1. Not only does this save a lot of space, it also allows manual trees to be moved around without any side effects to the mandocdb(8) databases.
* Don't make man.cgi default font-size dictate manual style.Kristaps Dzonsons2011-12-151-3/+3
|
* Further tweaks for output consistency.Kristaps Dzonsons2011-12-153-5/+13
|
* Update man.cgi.7 with new CSS files.Kristaps Dzonsons2011-12-151-8/+12
|
* Some presentation polish in man.cgi:Kristaps Dzonsons2011-12-155-180/+146
| | | | | | | | | | | | - include search bar above result page (I relent: it's annoying to follow three links then press back three times to get a search page); - make man.cgi.css into man-cgi.css so Apache isn't confused by two handlers (css, cgi); - finally consolidate example.style.css to be under the div.mandoc css selector; - put catman pages under div.catman; - put search bar under div#mancgi; - reflect this properly in the bundled CSS files.
* Note that archives are being hosted at gmane.Kristaps Dzonsons2011-12-141-0/+6
|
* Unbreak man.cgi's css directories when CSS_DIR isn't specified.Kristaps Dzonsons2011-12-142-1/+3
|
* 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-132-43/+52
| | | | | This also cleans up the code a little bit. While here, make some functions static that are only used within manpath.c.
* Compatibility support fgetln() on Linux. This uses the BSD-licensedKristaps Dzonsons2011-12-135-3/+129
| | | | | | | | | | implementation from NetBSD tnftpd, Christos Zoulas (copyright message retained in the compat_fgetln.c file). Patch verified by schwarze@. He notes that you'll need -pthread for -static binaries (due to libdb), so I've noted that -static should really only be used for BSD UNIX. While here, add some forgotten goop to the Makefile, building and cleaning extra manpages.
* implement -C (alternative config file) for apropos(1) and mandocdb(8),Ingo Schwarze2011-12-129-38/+132
| | | | | including various tweaks to the whatis(8) manual; ok kristaps@
* Explain where .so paths are rooted, and why, and discourage its use;Ingo Schwarze2011-12-111-0/+16
| | | | feedback and ok jmc@, suggested by and ok kristaps@.
* Ugh, environmental variables are Ev, not Er. Fix typos.Kristaps Dzonsons2011-12-111-2/+2
|
* Note CSS_DIR in man.cgi.7.Kristaps Dzonsons2011-12-111-0/+2
|
* When 303'ing a search directly to a page, remember to specify its manroot.Kristaps Dzonsons2011-12-111-56/+53
| | | | | | Also allow for a CSS_DIR to specify alternate CSS locations. Finally, some clutter as I assume that "css" and "progname" are already HTML-safe.
* Begin working on release notes. Also whitespace-fix man.cgi.7.Kristaps Dzonsons2011-12-102-7/+35
|
* Update man.cgi.7 to note compatibility and running with multiple roots.Kristaps Dzonsons2011-12-101-15/+63
|
* Slip in a fix to allow for empty cache directories.Kristaps Dzonsons2011-12-101-1/+1
|
* Finishing touches on multi-manroot man.cgi. If more than one root isKristaps Dzonsons2011-12-101-4/+23
| | | | | specified, write them out using a SELECT box. Else write nothing (the manroot will still be checked if it's specified).
* Switch on "manpath=" handling, which I call the "manroot" (as "manpath" isKristaps Dzonsons2011-12-101-28/+45
| | | | | | | | reserved for paths within a manroot). This functionality is bare-bones: right now, the default manroot is the first one scanned from the cache directory. At some point this will be sexy and smooth, but it's easy to upgrade functionality by modifying pathgen() and so forth. If a manroot isn't parsed from the "manpath=", results are always empty.
* Encode "manroot" into file URL and parse it properly. Right now thisKristaps Dzonsons2011-12-101-13/+26
| | | | just uses the first manroot by default.
* Avoid leaking index records:Ingo Schwarze2011-12-101-20/+24
| | | | | Before allocating a record for a file, first make sure we actually want to use the file.
* Big upgrade and polish for cgi.c.Kristaps Dzonsons2011-12-101-162/+283
| | | | | | | | | | | | | | | | | | | - Deprecate kvals (key/value pairs for QUERY_STRING values). Since there's only one place that uses this, kval_parse (now http_parse()) dumps directly into struct query, which is more high-level. - Put query values directly into struct req. - The biggest difference is dynamic support for multiple "manroots". A "manroot" is a path with an "etc/catman.conf" file. When the cgi starts, it (prefix) recurses through its CACHE_DIR searching for "etc" directories. When one's found, it sees if a catman.conf file exists. This is marked as a manroot and appended to a list. The name of a manroot is the path without slashes (e.g., OpenBSD/4.9 -> "OpenBSD 4.9"). Right now "manroot" isn't enabled. The first manroot is chosen as the real one. I'll add the interface to it in the next checkins, but it'll be quite simple.
* Plug a memory leak in single_search().Kristaps Dzonsons2011-12-101-1/+2
|
* Fix selection of arch-specific manuals:Ingo Schwarze2011-12-101-2/+6
| | | | | | (1) Correctly compare cat vs. man paths. (2) Compare arch (and section) names case-insensitively. Problem noticed by kristaps@.
* Adding some missing "install" bits to Makefile.Kristaps Dzonsons2011-12-101-8/+20
|
* FreeBSD's man.cgi uses a "default" value for no arch.Kristaps Dzonsons2011-12-101-3/+10
|
* Add some periods (just to see if mlmmj is working again...).Kristaps Dzonsons2011-12-101-2/+2
|
* Forgot to make whatis the default during abstraction. Do it again.Kristaps Dzonsons2011-12-091-2/+4
|
* Abstract query extraction code. Perform some readability fixes while here.Kristaps Dzonsons2011-12-091-137/+153
|
* When specifying an architecture to whatis(1)/apropos(1)/man.cgi(7), do aKristaps Dzonsons2011-12-091-2/+4
| | | | | | comparison only if the manual specifies an architecture, otherwise let it through. Looked over by schwarze@. This brings us much more in line with OpenBSD's behaviour.
* Tweak pformatted():Ingo Schwarze2011-12-091-12/+13
| | | | | | | * If the first section is empty, use the file name as .Nd. * No need to check (len > 0) after successful fgetln(3). * Improve some comments and strip trailing whitespace. ok kristaps@
* Considerably tidy mandocdb(8) catman descriptions by skipping to the firstKristaps Dzonsons2011-12-091-2/+2
| | | | hyphen-space combo, not the last hyphen as done previously.
* Strip backspace encoding from preformatted manuals. This cleans up a lotKristaps Dzonsons2011-12-091-0/+12
| | | | of catpage entries in the mandoc databases.
* If no man.cgi `whatis' results are found, offer a quick link to the aproposKristaps Dzonsons2011-12-081-3/+41
| | | | query mode.
* Fix stupid typo: strlcpy() instead of strlcat().Kristaps Dzonsons2011-12-081-1/+1
|