summaryrefslogtreecommitdiffstats
path: root/mandocdb.c
Commit message (Collapse)AuthorAgeFilesLines
...
* implement -C (alternative config file) for apropos(1) and mandocdb(8),Ingo Schwarze2011-12-121-5/+11
| | | | | including various tweaks to the whatis(8) manual; ok kristaps@
* 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.
* 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@.
* 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.
* Clean up grok of preformatted manual description.Kristaps Dzonsons2011-12-081-28/+35
| | | | | | (1) put fclose() at the end, as line isn't valid afterward (see fgetln()) (2) clean up loops to be more readable to my old eyes (3) mandate trailing newline, nul-terminate, and use strrchr
* index_prune always counted the free slots,Ingo Schwarze2011-12-081-9/+9
| | | | but didn't tell anybody about them, so they weren't reused
* If arguments are passed to mandocdb(8) in "default" mode, then useKristaps Dzonsons2011-12-081-4/+11
| | | | | realpath() to convert them into absolute paths before putting the traversed subdirectory filenames into the index.
* Implement search support for 24 additional macros, extract more informationIngo Schwarze2011-12-071-299/+252
| | | | | | from Fn, and lift section restrictions from An Cd Er Ev Fn Fo In Pa St Va Vt by removing 4 handler functions and 50 lines of code. ok kristaps@
* Fix parsing of file names given on the command line; i broke itIngo Schwarze2011-12-041-4/+3
| | | | when adding support for formatted manual pages.
* Back out lorder, which doesn't seem necessary (?). I think this means allKristaps Dzonsons2011-12-031-1/+0
| | | | fields are endian-neutral, although the recno(3) key is unknown.
* Make sure the btree(3) goop is also BE. This covers both the DB metadataKristaps Dzonsons2011-12-031-0/+1
| | | | and prior commits handle the contained binary fields.
* This is a little gross: Linux and Apple need lots some cajoling to workKristaps Dzonsons2011-12-021-1/+5
| | | | | | | | with byte-swapping. Tested on Mac. Any Linux machines somebody can test on? Anybody? While here, note the correct byte-size in mandocdb(8) and also note field widths and endianness. The btree is now endian-neutral.
* Use OpenBSD's endian functions. Make btree type also be endian-neutral.Kristaps Dzonsons2011-12-011-5/+3
|
* In apropos_db.c, move all btree reading (and safety checks) into theKristaps Dzonsons2011-12-011-4/+4
| | | | | | | | btree_read() function. Also, add a forgotten free() for the type of grokked record. Then in both mandocdb.c and apropos_db.c, make the "rec" field of the btree by in network-order.
* Fix mandocdb(8) to pass over the type when pruning the database. ThisKristaps Dzonsons2011-12-011-25/+53
| | | | | | fixed `-d' perpetually adding the same files. While here, clean up the code and document it. Remove -vv (complain if you want it back in). Document the error messages in a DIAGNOSTICS section of mandocdb(8).
* chdir(2) to the right man page tree before parsing manuals;Ingo Schwarze2011-11-291-1/+17
| | | | ok kristaps@
* Reimplement the global command line options -a and -vIngo Schwarze2011-11-271-26/+20
| | | | | | as static global variables, reducing the maze of arguments passed around among various static functions. Suggested by kristaps@.
* Save the manual type (mdoc, man, or cat) in the index fileIngo Schwarze2011-11-271-0/+1
| | | | | | | | of the mandoc databases, as suggested by kristaps@. Given the well-structured code, this is surprisingly simple. This changes the mandoc.index database format. Run "sudo mandocdb" to regenerate your databases.
* Rudimentary handling of formatted manuals ("cat pages").Ingo Schwarze2011-11-271-30/+205
| | | | | Coded on the train back from p2k11 in Budapest. Kristaps has seen the patch and agreed with the direction.
* Sync to OpenBSD, mostly gratuitous and whitespace differences,Ingo Schwarze2011-11-261-4/+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@
* Store page titles in the correct case, and by default, onlyIngo Schwarze2011-11-261-37/+189
| | | | | | put stuff into the database that man(1) will be able to retrieve. However, support an option to use all directories and files. feedback and ok kristaps@
* I say that mandocdb(8) uses "man(1)'s method", but it doesn't. It just usesKristaps Dzonsons2011-11-241-1/+1
| | | | | the configuration file and ignores MANPATH. Everybody else uses MANPATH (being apropos and man), so why shouldn't we?
* Have mandocdb(8) take advantage of manpath.h.Kristaps Dzonsons2011-11-231-5/+25
| | | | | This brings it in line with makewhatis(8), which, like apropos(1), will use man.conf (or manpath(1)) if no manpath entries are provided.
* Merge schwarze@'s work for 64-bit types. This is based on a tweaked patchKristaps Dzonsons2011-11-201-13/+13
| | | | | | | submitted to tech@ on 16/11/2011, 01:39. It has been updated to account for the logical-operator functions and to avoid keeping a live pointer into the DBT value, which is not guaranteed to be consistent across calls into the bdb library.
* Inventing new keywords for mostly the same thing when a well-establishedIngo Schwarze2011-11-131-35/+18
| | | | | | | | | | set of keywords already exists is a bad idea, so reuse the mdoc(7) macro names as apropos(1) search types. This is a gain in brevity as well. Some time ago, kristaps@ agreed in principle. The search type bit field constants are used by both mandocdb(8) and apropos(1) and should better stay in sync, so give them their own header file.
* Fix two crashes that occur when walking very large (i.e. real-world) trees:Ingo Schwarze2011-11-131-4/+4
| | | | | | 1) Avoid excessive, needless recursion, lest you overflow the stack; 2) Close all dir file descriptors, lest you run out of descriptors. ok kristaps@
* fix an obvious typo: sz was used uninitializedIngo Schwarze2011-09-171-1/+1
| | | | found while merging to OpenBSD
* Big step forward in bringing mandocdb in line with most makewhatis-typeKristaps Dzonsons2011-07-151-54/+184
| | | | systems.
* First step of making mandocdb a true makewhatis/mandb replacement:Kristaps Dzonsons2011-07-151-95/+115
| | | | | | | accept a set of directories on the command line ("manpaths") that are recursed for files. The databases are created in each manpath root. This temporarily removes OP_UPDATE and OP_DELETE functionality, which will be added back in.
* Move parts of mandocdb that "do stuff" to the databases into their ownKristaps Dzonsons2011-07-151-125/+173
| | | | | functions. This will make it easier to call repeatedly (for different directoreis) as must be done with the new interfaces being developed.
* move mandocdb(1) to mandocdb(8)Ingo Schwarze2011-07-141-1/+1
| | | | "please make this change" kristaps@
* Rename makewhatis [back] into mandocdb. This is to maintain consistencyKristaps Dzonsons2011-07-141-0/+1105
with OpenBSD, which is sandboxing the code for merge. It makes sense because it doesn't really make a `makewhatis' file in the traditional sense, so it may be confusing.