]> git.cameronkatri.com Git - mandoc.git/blobdiff - apropos.1
Delete a sentence pointing to "the Predefined Strings subsection
[mandoc.git] / apropos.1
index 10eb3d5eb7039873c127279883af63ae06d0f8e3..9129ae31f126b8598aece0d3db98d734bd1f9d00 100644 (file)
--- a/apropos.1
+++ b/apropos.1
@@ -1,6 +1,7 @@
-.\"    $Id: apropos.1,v 1.23 2014/03/17 09:43:56 schwarze Exp $
+.\" $Id: apropos.1,v 1.51 2020/10/01 22:50:00 schwarze Exp $
 .\"
 .\" Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
+.\" Copyright (c) 2011,2012,2014,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
 .\"
 .\" Permission to use, copy, modify, and distribute this software for any
 .\" purpose with or without fee is hereby granted, provided that the above
@@ -14,7 +15,7 @@
 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .\"
-.Dd $Mdocdate: March 17 2014 $
+.Dd $Mdocdate: October 1 2020 $
 .Dt APROPOS 1
 .Os
 .Sh NAME
 .Nd search manual page databases
 .Sh SYNOPSIS
 .Nm
+.Op Fl afk
 .Op Fl C Ar file
 .Op Fl M Ar path
 .Op Fl m Ar path
+.Op Fl O Ar outkey
 .Op Fl S Ar arch
 .Op Fl s Ar section
 .Ar expression ...
@@ -35,52 +38,91 @@ The
 and
 .Nm whatis
 utilities query manual page databases generated by
-.Xr mandocdb 8 ,
-evaluating on
+.Xr makewhatis 8 ,
+evaluating
 .Ar expression
 for each file in each database.
+By default, they display the names, section numbers, and description lines
+of all matching manuals.
 .Pp
 By default,
 .Nm
 searches for
-.Xr mandocdb 8
+.Xr makewhatis 8
 databases in the default paths stipulated by
-.Xr man 1 ,
-parses terms as case-sensitive regular expressions
-.Pq the Li \&~ operator
+.Xr man 1
+and uses case-insensitive extended regular expression matching
 over manual names and descriptions
 .Pq the Li \&Nm No and Li \&Nd No macro keys .
 Multiple terms imply pairwise
 .Fl o .
+.Pp
 .Nm whatis
-maps terms only to case-sensitive manual names.
+is a synonym for
+.Nm
+.Fl f .
 .Pp
-Its arguments are as follows:
+The options are as follows:
 .Bl -tag -width Ds
+.It Fl a
+Instead of showing only the title lines, show the complete manual pages,
+just like
+.Xr man 1
+.Fl a
+would.
+If the standard output is a terminal device and
+.Fl c
+is not specified, use
+.Xr less 1
+to paginate them.
+In
+.Fl a
+mode, the options
+.Fl IKOTW
+described in the
+.Xr mandoc 1
+manual are also available.
 .It Fl C Ar file
 Specify an alternative configuration
 .Ar file
 in
 .Xr man.conf 5
 format.
+.It Fl f
+Search for all words in
+.Ar expression
+in manual page names only.
+The search is case-insensitive and matches whole words only.
+In this mode, macro keys, comparison operators, and logical operators
+are not available.
+.It Fl k
+Support the full
+.Ar expression
+syntax.
+It is the default for
+.Nm .
 .It Fl M Ar path
 Use the colon-separated path instead of the default list of paths
 searched for
-.Xr mandocdb 8
+.Xr makewhatis 8
 databases.
 Invalid paths, or paths without manual databases, are ignored.
 .It Fl m Ar path
 Prepend the colon-separated paths to the list of paths searched
 for
-.Xr mandocdb 8
+.Xr makewhatis 8
 databases.
 Invalid paths, or paths without manual databases, are ignored.
+.It Fl O Ar outkey
+Show the values associated with the key
+.Ar outkey
+instead of the manual descriptions.
 .It Fl S Ar arch
 Restrict the search to pages for the specified
 .Xr machine 1
 architecture.
 .Ar arch
-is case insensitive.
+is case-insensitive.
 By default, pages for all architectures are shown.
 .It Fl s Ar section
 Restrict the search to the specified section of the manual.
@@ -90,6 +132,14 @@ See
 for a listing of sections.
 .El
 .Pp
+The options
+.Fl chlw
+are also supported and are documented in
+.Xr man 1 .
+The options
+.Fl fkl
+are mutually exclusive and override each other.
+.Pp
 An
 .Ar expression
 consists of search terms joined by logical operators
@@ -114,35 +164,41 @@ True if both
 and
 .Ar expr2
 are true (logical
-.Qq and ) .
+.Sq and ) .
 .It Ar expr1 Oo Fl o Oc Ar expr2
 True if
 .Ar expr1
 and/or
 .Ar expr2
 evaluate to true (logical
-.Qq or ) .
+.Sq or ) .
 .It Ar term
 True if
 .Ar term
 is satisfied.
 This has syntax
-.Li [key[,key]*(=~)]?val ,
-where operand
-.Cm key
+.Sm off
+.Oo
+.Op Ar key Op , Ar key ...
+.Pq Cm = | \(ti
+.Oc
+.Ar val ,
+.Sm on
+where
+.Ar key
 is an
 .Xr mdoc 7
 macro to query and
-.Cm val
+.Ar val
 is its value.
 See
 .Sx Macro Keys
 for a list of available keys.
 Operator
-.Li \&=
+.Cm =
 evaluates a substring, while
-.Li \&~
-evaluates a regular expression.
+.Cm \(ti
+evaluates a case-sensitive extended regular expression.
 .It Fl i Ar term
 If
 .Ar term
@@ -151,39 +207,38 @@ is evaluated case-insensitively.
 Has no effect on substring terms.
 .El
 .Pp
-.Nm whatis
-considers an
-.Ar expression
-to consist of an opaque keyword.
+Results are sorted first according to the section number in ascending
+numerical order, then by the page name in ascending
+.Xr ascii 7
+alphabetical order, case-insensitive.
 .Pp
-Results are sorted by manual title, with output formatted as
+Each output line is formatted as
 .Pp
-.D1 title(sec) \- description
+.D1 name[, name...](sec) \- description
 .Pp
 Where
-.Qq title
-is the manual's title (note multiple manual names may exist for one
-title),
-.Qq sec
+.Dq name
+is the manual's name,
+.Dq sec
 is the manual section, and
-.Qq description
+.Dq description
 is the manual's short description.
 If an architecture is specified for the manual, it is displayed as
 .Pp
-.D1 title(cat/arch) \- description
+.D1 name(sec/arch) \- description
 .Pp
 Resulting manuals may be accessed as
 .Pp
-.Dl $ man \-s sec title
+.Dl $ man \-s sec name
 .Pp
 If an architecture is specified in the output, use
 .Pp
-.Dl $ man \-s sec \-S arch title
+.Dl $ man \-s sec \-S arch name
 .Ss Macro Keys
 Queries evaluate over a subset of
 .Xr mdoc 7
 macros indexed by
-.Xr mandocdb 8 .
+.Xr makewhatis 8 .
 In addition to the macro keys listed below, the special key
 .Cm any
 may be used to match any available macro key.
@@ -192,6 +247,8 @@ Names and description:
 .Bl -column "xLix" description -offset indent -compact
 .It Li \&Nm Ta manual name
 .It Li \&Nd Ta one-line manual description
+.It Li arch Ta machine architecture (case-insensitive)
+.It Li sec  Ta manual section number
 .El
 .Pp
 Sections and cross references:
@@ -254,31 +311,71 @@ Text production:
 .It Li \&Ox Ta Ox No version reference
 .It Li \&Dx Ta Dx No version reference
 .El
+.Pp
+In general, macro keys are supposed to yield complete results without
+expecting the user to consider actual macro usage.
+For example, results include:
+.Pp
+.Bl -tag -width 3n -offset 3n -compact
+.It Li \&Fa
+function arguments appearing on
+.Ic \&Fn
+lines
+.It Li \&Fn
+function names marked up with
+.Ic \&Fo
+macros
+.It Li \&In
+include file names marked up with
+.Ic \&Fd
+macros
+.It Li \&Vt
+types appearing as function return types and
+.It \&
+types appearing in function arguments in the SYNOPSIS
+.El
 .Sh ENVIRONMENT
-.Bl -tag -width MANPATH
+.Bl -tag -width MANPAGER
+.It Ev MANPAGER
+Any non-empty value of the environment variable
+.Ev MANPAGER
+is used instead of the standard pagination program,
+.Xr less 1 ;
+see
+.Xr man 1
+for details.
+Only used if
+.Fl a
+or
+.Fl l
+is specified.
 .It Ev MANPATH
-The standard search path used by
+A colon-separated list of directories to search for manual pages; see
 .Xr man 1
-may be changed by specifying a path in the
-.Ev MANPATH
-environment variable.
-Invalid paths, or paths without manual databases, are ignored.
+for details.
 Overridden by
-.Fl M .
-If
-.Ev MANPATH
-begins with a colon, it is appended to the default list;
-if it ends with a colon, it is prepended to the default list;
-or if it contains two adjacent colons,
-the standard search path is inserted between the colons.
-If none of these conditions are met, it overrides the
-standard search path.
+.Fl M ,
+ignored if
+.Fl l
+is specified.
+.It Ev PAGER
+Specifies the pagination program to use when
+.Ev MANPAGER
+is not defined.
+If neither PAGER nor MANPAGER is defined,
+.Xr less 1
+is used.
+Only used if
+.Fl a
+or
+.Fl l
+is specified.
 .El
 .Sh FILES
 .Bl -tag -width "/etc/man.conf" -compact
 .It Pa mandoc.db
 name of the
-.Xr mandocdb 8
+.Xr makewhatis 8
 keyword database
 .It Pa /etc/man.conf
 default
@@ -292,7 +389,7 @@ Search for
 .Qq .cf
 as a substring of manual names and descriptions:
 .Pp
-.Dl $ apropos .cf
+.Dl $ apropos =.cf
 .Pp
 Include matches for
 .Qq .cnf
@@ -300,13 +397,17 @@ and
 .Qq .conf
 as well:
 .Pp
-.Dl $ apropos .cf .cnf .conf
+.Dl $ apropos =.cf =.cnf =.conf
 .Pp
-Search in names and descriptions using a regular expression:
+Search in names and descriptions using a case-sensitive regular expression:
 .Pp
-.Dl $ apropos '~set.?[ug]id'
+.Dl $ apropos \(aq\(tiset.?[ug]id\(aq
 .Pp
-Search for manuals in the library category mentioning both the
+Search for all manual pages in a given section:
+.Pp
+.Dl $ apropos \-s 9 \&.
+.Pp
+Search for manuals in the library section mentioning both the
 .Qq optind
 and the
 .Qq optarg
@@ -315,22 +416,57 @@ variables:
 .Dl $ apropos \-s 3 Va=optind \-a Va=optarg
 .Pp
 Do exactly the same as calling
-.Xr whatis 1
+.Nm whatis
 with the argument
 .Qq ssh :
 .Pp
-.Dl $ apropos \-\- \-i 'Nm~[[:<:]]ssh[[:>:]]'
+.Dl $ apropos \-\- \-i \(aqNm\(ti[[:<:]]ssh[[:>:]]\(aq
+.Pp
+The following two invocations are equivalent:
+.Pp
+.D1 Li $ apropos -S Ar arch Li -s Ar section expression
+.Bd -ragged -offset indent
+.Li $ apropos \e( Ar expression Li \e)
+.Li -a arch\(ti^( Ns Ar arch Ns Li |any)$
+.Li -a sec\(ti^ Ns Ar section Ns Li $
+.Ed
 .Sh SEE ALSO
 .Xr man 1 ,
 .Xr re_format 7 ,
-.Xr mandocdb 8
+.Xr makewhatis 8
+.Sh STANDARDS
+The
+.Nm
+utility is compliant with the
+.St -p1003.1-2008
+specification of
+.Xr man 1
+.Fl k .
+.Pp
+All options, the
+.Nm whatis
+command, support for logical operators, macro keys,
+substring matching, sorting of results, the environment variables
+.Ev MANPAGER
+and
+.Ev MANPATH ,
+the database format, and the configuration file
+are extensions to that specification.
 .Sh HISTORY
-An
+Part of the functionality of
+.Nm whatis
+was already provided by the former
+.Nm manwhere
+utility in
+.Bx 1 .
+The
 .Nm
-utility first appeared in
+and
+.Nm whatis
+utilities first appeared in
 .Bx 2 .
-It was rewritten from scratch for
-.Ox 5.1 .
+They were rewritten from scratch for
+.Ox 5.6 .
 .Pp
 The
 .Fl M
@@ -349,13 +485,29 @@ and
 and
 .Fl s
 in
-.Ox 4.5 .
+.Ox 4.5
+for
+.Nm
+and in
+.Ox 5.6
+for
+.Nm whatis .
+The options
+.Fl acfhIKklOTWw
+appeared in
+.Ox 5.7 .
 .Sh AUTHORS
 .An -nosplit
 .An Bill Joy
-wrote the original
+wrote
+.Nm manwhere
+in 1977 and the original
 .Bx
 .Nm
+and
+.Nm whatis
 in February 1979.
 The current version was written by
-.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv .
+.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv
+and
+.An Ingo Schwarze Aq Mt schwarze@openbsd.org .