Home | History | Annotate | Download | only in makemandb
History log of /src/usr.sbin/makemandb/apropos.1
RevisionDateAuthorComments
 1.23  17-May-2022  uwe apropos(1): Use the official spelling for "SQLite".

While here, use .Bx to refer to 3BSD.
 1.22  17-May-2022  uwe apropos(1): Tweak the description of -1, ... -9, and -s

-s is not for compatibility only, because section names can be
anything. E.g. we have 3lua and 9lua in base. We have rudiments of
3f (for FORTRAN libs). Some packages in pkgsrc also use suffixed 1
and 3 sections.
 1.21  17-May-2022  uwe apropos(1): use proper -width for the list of options too
 1.20  17-May-2022  uwe apropos(1): use proper -width
 1.19  17-May-2022  gutteridge apropos.1: document the PAGER environment variable
 1.18  17-Jun-2016  abhinav branches: 1.18.18;
Fix grammar/spelling at few places.
 1.17  16-Jun-2016  abhinav Add man.conf(5) and man(1) in the SEE ALSO section.
 1.16  22-May-2016  abhinav Add options to whatis and apropos to accept custom man.conf.

makemandb(8), man(1) already use -C as an option to take man.conf path,
so use the same option for whatis(1) and apropos(1) for consitency.
apropos was using -C/-c to disable/enable context of the search
matches, change that to -M/-m respectively.
 1.15  04-Nov-2014  snj Thankfully, apropos returns all results by default these days. Remove
outdated sentence referring to the original (well, old new) limit of 10.
 1.14  29-Nov-2013  wiz branches: 1.14.4;
Wording improvements from Abhinav Upadhyay <er.abhinav.upadhyay@gmail.com>
 1.13  02-Apr-2013  wiz Bump date.
 1.12  02-Apr-2013  christos instead of having a format and no format flag, and exposing various formatters,
provide a format enum and expose html formatting too.
 1.11  29-Mar-2013  wiz Use Ev for environment variables. Improve -n description.
 1.10  29-Mar-2013  christos - Fix legacy mode to use like instead of match. This loses ranking.
- default to unlimited lines
- fix formatting of legacy mode
 1.9  29-Mar-2013  christos Don't enumerate all the digit sections
Explain limitations in legacy mode
 1.8  29-Mar-2013  christos - If the stdout is not a tty, prevent formatting unless forced with -i
- Don't ever page unless asked for with -p
- Introduce "legacy mode" (-l)
1. searches only name and name_desc, prints name(section) - name_description
2. turns off escape formatting (can be forced on with -i)
3. turns off context printing (can be forced on with -c)
- Parse the environment $APROPOS variable as an argument vector.

With these changes one can simply 'export APROPOS=-l' and get the old apropos
behavior.
 1.7  10-Feb-2013  christos add -r flag to elide tty formatting
 1.6  06-Oct-2012  wiz Make mandb path configurable. makemandb (and related tools) use
the path from the _mandb variable from man.conf now.

Set _mandb in man.conf to same value as was used before.

From Abhinav Upadhyay <er.abhinav.upadhyay@gmail.com>.
 1.5  22-Apr-2012  wiz branches: 1.5.2;
Add HISTORY section. From Abhinav Upadhyay in private mail.
 1.4  20-Feb-2012  joerg branches: 1.4.2;
Add reference to whatis(1). From Abhinav Upadhyay.
 1.3  15-Feb-2012  joerg Add support for apropos -s like in the old apropos. Fix capitalisation.
Add note about optional quotation. From Abhinav Upadhyay.
 1.2  10-Feb-2012  njoly branches: 1.2.2;
Fix makemandb section.
 1.1  07-Feb-2012  joerg Import the new apropos/whatis.

This code has been developed by Abhinav Upadhyay as part of Google's Summer
of Code 2011. It uses libmandoc to parse man pages and builds a Full
Text Index in a SQLite database. The combination of indexing the full
manual page, filtering out stop words and ranking individual matches
based on the section gives a much improved user experience.

The old makewhatis and friends are kept under MKMAKEMANDB=no for now.
 1.2.2.3  20-Nov-2012  riz Pull up following revision(s) (requested by tron in ticket #676):
usr.sbin/makemandb/apropos.c: revision 1.7
usr.sbin/makemandb/makemandb.8: revision 1.3
usr.sbin/makemandb/makemandb.8: revision 1.4
usr.sbin/makemandb/makemandb.8: revision 1.5
etc/rc.d/makemandb: revision 1.4
etc/weekly: revision 1.29
usr.sbin/makemandb/makemandb.c: revision 1.10
usr.sbin/makemandb/makemandb.c: revision 1.11
usr.sbin/makemandb/makemandb.c: revision 1.12
usr.sbin/makemandb/makemandb.c: revision 1.13
usr.sbin/makemandb/makemandb.c: revision 1.14
usr.sbin/makemandb/apropos.1: revision 1.5
etc/daily: revision 1.87
Add HISTORY section. From Abhinav Upadhyay in private mail.
Sync with reality, From Abhinav Upadhyay in private mail.
Fix typo in a message.
Bug fix for PR 46733:
> makemandb always reports the same number for "Total Number of new or
> updated pages enountered" and "Total number of (hard or symbolic)
> links found".
Patch from Abhinav Upadhyay.
Sort options in SYNOPSIS.
Sync usage with manpage.
Add -Q flag:
Print only fatal error messages (i.e., when the database is left in
an inconsistent state and needs manual intervention).
From Abhinav Upadhyay <er.abhinav.upadhyay@gmail.com>.
Use new makemandb -Q flag to be really quiet.
Fix usage, from Abhinav Upadhyay <er.abhinav.upadhyay@gmail.com>.
Use emalloc in one more place, like the rest of the code does.
From Abhinav Upadhyay <er.abhinav.upadhyay@gmail.com>.
 1.2.2.2  20-Feb-2012  sborrill Pull up the following revisions(s) (requested by joerg in ticket #15):
usr.sbin/makemandb/apropos.1: revision 1.4
usr.sbin/makemandb/makemandb.8: revision 1.2
usr.sbin/makemandb/whatis.c: revision 1.3

Add reference to whatis(1).
SQLite doesn't use the FTS index for equal ops, so force it to do a FTS
search first. Drops run time by a factor of 6 for "whatis man".
 1.2.2.1  18-Feb-2012  riz Pull up following revision(s) (requested by joerg in ticket #4):
usr.sbin/makemandb/apropos.c: revision 1.5
external/bsd/mdocml/dist/read.c: revision 1.6
external/bsd/mdocml/dist/mandoc.h: revision 1.2
usr.sbin/makemandb/makemandb.c: revision 1.3
usr.sbin/makemandb/makemandb.c: revision 1.4
usr.sbin/makemandb/makemandb.c: revision 1.5
usr.sbin/makemandb/Makefile: revision 1.2
etc/man.conf: revision 1.30
usr.sbin/makemandb/apropos.1: revision 1.3
external/bsd/mdocml/Makefile.inc: revision 1.15
Be a bit more friendly to man pages using the roff .so command by
changing the current directory to the parent of the man -p entry, e.g.
/usr/share/man for /usr/share/man1.
Also handle hyphen replacement if it was used as plain input and no
backslash sequence was used at all in the line.
Add support for apropos -s like in the old apropos. Fix capitalisation.
Add note about optional quotation. From Abhinav Upadhyay.
Merge mandoc.h r1.99 and read.c 1.28 from upstream:
Add mparse_readmem, which allows application to run the parser directly
from memory, e.g. after de-compressing a document.
Add support for compressed man pages in all the usual formats.
Use mmap when dealing with plain files.
Add entries for bzip2 and xz.
 1.4.2.5  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.2.4  30-Oct-2012  yamt sync with head
 1.4.2.3  23-May-2012  yamt sync with head.
 1.4.2.2  17-Apr-2012  yamt sync with head
 1.4.2.1  20-Feb-2012  yamt file apropos.1 was added on branch yamt-pagecache on 2012-04-17 00:09:49 +0000
 1.5.2.4  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.2.3  23-Jun-2013  tls resync from head
 1.5.2.2  25-Feb-2013  tls resync with head
 1.5.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.14.4.1  07-Nov-2014  martin Pull up following revision(s) (requested by snj in ticket #185):
usr.sbin/makemandb/apropos.1: revision 1.15
Thankfully, apropos returns all results by default these days. Remove
outdated sentence referring to the original (well, old new) limit of 10.
 1.18.18.1  03-Jun-2022  martin Pull up following revision(s) (requested by gutteridge in ticket #1461):

usr.sbin/makemandb/apropos.1: revision 1.19
usr.sbin/makemandb/apropos.c: revision 1.25
usr.sbin/makemandb/apropos.c: revision 1.26
usr.sbin/makemandb/apropos.1: revision 1.20
usr.sbin/makemandb/apropos.1: revision 1.21
usr.sbin/makemandb/apropos.1: revision 1.22
usr.sbin/makemandb/apropos.1: revision 1.23
usr.sbin/makemandb/apropos-utils.c: revision 1.46
usr.sbin/makemandb/apropos-utils.c: revision 1.47
usr.sbin/makemandb/apropos-utils.c: revision 1.49

PR/54343: Prevent NULL pointers in callback strings; use "*?*" for now to
identify them.

PR bin/54343: We want the callback_args.machine to be NULL if it is not
present in the DB.

The previous commit fixed the problem of allowing apropos to not crash and
produce output even if the database is missing values for certain mandatory
fields, such as name, section etc. Normally we don't expect those values
to be missing in the database but in case of parsing errors it can happen.

However, the machine architecture is an optional field since not all man pages
are hardware specific so that should be allowed to be set to NULL if not
present in the database.

apropos.c: fix pager functionality

Issue reported by Rocky Hotas on NetBSD-Users, patch input from RVP on
same, adjustments by me.

apropos.1: document the PAGER environment variable

apropos(1): use proper -width

apropos(1): use proper -width for the list of options too

apropos(1): Tweak the description of -1, ... -9, and -s

-s is not for compatibility only, because section names can be
anything. E.g. we have 3lua and 9lua in base. We have rudiments of
3f (for FORTRAN libs). Some packages in pkgsrc also use suffixed 1
and 3 sections.

apropos(1): Use the official spelling for "SQLite".
While here, use .Bx to refer to 3BSD.

apropos(1): improve error handling in edge cases
Patch from RVP on NetBSD-Users, with an additional comment tweak by me.

Summary from RVP:
1. Ignore SIGPIPE so that we're not killed in the middle of some
DB operation by a botched $PAGER:
$ env PAGER=3D/non-existent apropos -p ...
2. Return proper exit status in case of write errors:
$ apropos ... >/dev/full || echo fail

RSS XML Feed