Print this page
Latest round of fixes per RM and AL.  Fix bugs found in man.c.

Split Close
Expand all
Collapse all
          --- old/usr/src/man/man1/man.1
          +++ new/usr/src/man/man1/man.1
   1      -.\"
   2      -.\" This file and its contents are supplied under the terms of the
   3      -.\" Common Development and Distribution License ("CDDL"), version 1.0.
   4      -.\" You may only use this file in accordance with the terms of version
   5      -.\" 1.0 of the CDDL.
   6      -.\"
   7      -.\" A full copy of the text of the CDDL should have accompanied this
   8      -.\" source.  A copy of the CDDL is also available via the Internet at
   9      -.\" http://www.illumos.org/license/CDDL.
  10      -.\"
  11      -.\"
  12      -.\" Copyright 2012 Nexenta Systems, Inc. All rights reserved.
  13      -.\" Copyright 2014 Garrett D'Amore <garrett@damore.org>
  14      -.\"
  15      -.Dd October 18, 2012
        1 +.\" Copyright 2014 Garrett D'Amore <garrett@damore.o
        2 +.\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved.
        3 +.\" Copyright (c) 1980 Regents of the University of California.
        4 +.\" The Berkeley software License Agreement specifies the terms and conditions
        5 +.\" for redistribution.
        6 +.Dd Jul 18, 2014
  16    7  .Dt MAN 1
  17    8  .Os
  18    9  .Sh NAME
  19   10  .Nm man
  20   11  .Nd find and display reference manual pages
  21   12  .Sh SYNOPSIS
  22   13  .Nm
  23      -.Op Fl alptw
  24      -.Op Fl M Ar manpath
  25      -.Op Fl s Ar mansect
  26      -.Ar page ...
       14 +.Op Fl
       15 +.Op Fl adFlrt
       16 +.Op Fl T Ar macro-package
       17 +.Op Fl M Ar path
       18 +.Op Fl s Ar section
       19 +.Ar name ...
  27   20  .Nm
  28      -.Op Fl s Ar mansect
       21 +.Op Fl M Ar path
       22 +.Op Fl s Ar section
       23 +.Fl k
       24 +.Ar keyword
       25 +.Ar ...
       26 +.Nm
       27 +.Op Fl M Ar path
       28 +.Op Fl s Ar section
  29   29  .Fl f
  30      -.Ar keyword ...
       30 +.Ar
  31   31  .Nm
  32      -.Op Fl s Ar mansect
  33      -.Fl k
  34      -.Ar keyword ...
       32 +.Op Fl M Ar path
       33 +.Fl w
  35   34  .Sh DESCRIPTION
  36   35  The
  37   36  .Nm
  38      -utility finds and displays reference manual pages.
       37 +command displays information from the reference manuals. It
       38 +displays complete manual pages that you select by
       39 +.Ar name ,
       40 +or one-line summaries selected either by
       41 +.Ar keyword
       42 +.Pq Fl k ,
       43 +or by the name of an associated file
       44 +.Pq Fl f .
       45 +If no manual page is located,
       46 +.Nm
       47 +prints an error message.
       48 +.Ss "Source Format"
       49 +Reference Manual pages are marked up with either
       50 +.Xr man 5 ,
       51 +or
       52 +.Xr mdoc 5
       53 +language tags. The
       54 +.Nm
       55 +command recognizes the type of markup and
       56 +processes the file accordingly.
       57 +.
       58 +.Ss "Location of Manual Pages"
       59 +.
       60 +The online Reference Manual page directories are conventionally located in
       61 +.Pa /usr/share/man .
       62 +Each directory corresponds to a
       63 +section of the manual. Since these directories are optionally installed, they
       64 +might not reside on your host. You might have to mount
       65 +.Pa /usr/share/man
       66 +from a host on which they do reside.
       67 +The
       68 +.Nm
       69 +command reformats a page whenever it is requested.
  39   70  .Pp
  40      -Options that
       71 +If the standard output is not a terminal, or if the
       72 +.Fl
       73 +flag is given,
  41   74  .Nm
  42      -understands:
       75 +pipes its output through
       76 +.Xr cat 1 .
       77 +Otherwise,
       78 +.Nm
       79 +pipes its output through a pager such as
       80 +.Xr more 1
       81 +to handle paging and underlining on the screen.
       82 +.Sh OPTIONS
       83 +The following options are supported:
  43   84  .Bl -tag -width indent
  44      -.It Fl M Ar manpath
  45      -Forces a specific colon separated manual path instead of the default
  46      -search path.
  47      -Overrides the
  48      -.Ev MANPATH
  49      -environment variable.
  50   85  .It Fl a
  51      -Display all manual pages instead of just the first found for each
  52      -.Ar page
  53      -argument.
  54      -.It Fl f
  55      -Emulate
  56      -.Xr whatis 1 .
  57      -.It Fl k
  58      -Emulate
  59      -.Xr apropos 1 .
       86 +Shows all manual pages matching
       87 +.Ar name
       88 +within the
       89 +.Ev MANPATH
       90 +search path. Manual pages are displayed in the order found.
       91 +.It Fl d
       92 +Debugs. Displays what a section-specifier evaluates to, method used for
       93 +searching, and paths searched by
       94 +.Nm .
       95 +.It Fl f Ar file ...
       96 +Attempts to locate manual pages related to any of the given
       97 +.Ar file
       98 +names. It strips the leading path name components from each
       99 +.Ar file ,
      100 +and then prints one-line summaries containing the resulting basename or names.
      101 +This option also uses the
      102 +.Pa whatis
      103 +database.
      104 +.It Fl F
      105 +This option is present for backwards compatibility and is documented
      106 +here for reference only.  It performs no function.
      107 +.It Fl k Ar keyword ...
      108 +Prints out one-line summaries from the
      109 +.Pa whatis
      110 +database (table of contents) that contain any of the given
      111 +.Ar keyword .
      112 +The
      113 +.Pa whatis
      114 +database is created using the
      115 +.Fl w
      116 +option.
  60  117  .It Fl l
  61      -Display the location of the manual page instead of the contents of
  62      -the manual page.
  63      -.It Fl p
  64      -Output current path used for searching.
  65      -.It Fl s Ar mansect
  66      -Restrict manual sections searched to the specified colon delimited list.
      118 +Lists all manual pages found matching
      119 +.Ar name
      120 +within the search path.
      121 +.It Fl M Ar path
      122 +Specifies an alternate search path for manual pages. The
      123 +.Ar path
      124 +is a colon-separated list of directories that contain manual page directory
      125 +subtrees. For example, if
      126 +.Ar path
      127 +is
      128 +.Pa /usr/share/man:/usr/local/man ,
      129 +.Nm
      130 +searches for
      131 +.Ar name
      132 +in the standard location, and then
      133 +.Pa /usr/local/man .
      134 +When used with the
      135 +.Fl k ,
      136 +.Fl f ,
      137 +or
      138 +.Fl w
      139 +options, the
      140 +.Fl M
      141 +option must appear first. Each directory in the
      142 +.Ar path
      143 +is assumed to contain subdirectories of the form
      144 +.Pa man* ,
      145 +one for each section. This option overrides the
      146 +.Ev MANPATH
      147 +environment variable.
      148 +.It Fl r
      149 +Reformats the manual page, checking for formatting errors, but does not
      150 +display it.
      151 +.It Fl s Ar section
      152 +Specifies sections of the manual for
      153 +.Nm
      154 +to search. The directories searched for
      155 +.Ar name
      156 +are limited to those specified by
      157 +.Ar section .
      158 +.Ar section
      159 +can be a numerical digit, perhaps followed by one or more letters
      160 +to match the desired section of the manual, for example,
      161 +.Li "3libucb".
      162 +Also,
      163 +.Ar section
      164 +can be a word, for example,
      165 +.Li local ,
      166 +.Li new ,
      167 +.Li old ,
      168 +.Li public .
      169 +.Ar section
      170 +can also be a letter. To specify multiple sections,
      171 +separate each section with a comma. This option overrides the
      172 +.Ev MANPATH
      173 +environment variable and the
      174 +.Pa man.cf
      175 +file. See
      176 +.Sx Search Path
      177 +below for an explanation of how
      178 +.Nm
      179 +conducts its search.
  67  180  .It Fl t
  68      -Send the content formatted as PostScript to the default printer.
      181 +Arranges for the specified manual pages to be sent to the default
      182 +printer as PostScript.
      183 +.It Fl T Ar macro-package
      184 +This option is present for backwards compatibility and is documented
      185 +here for reference only.  It performs no function.
  69  186  .It Fl w
  70      -Create
      187 +Updates the
  71  188  .Nm whatis
  72      -databases used by
  73      -.Xr apropos 1
  74      -and
  75      -.Xr whatis 1 .
      189 +database.
  76  190  .El
  77      -.Sh ENVIRONMENT
  78      -The following environment variables affect the execution of
  79      -.Nm :
  80      -.Bl -tag -width ".Ev MANPATH"
  81      -.It Ev LC_ALL , LC_CTYPE , LANG
  82      -Used to find locale-specific manual pages.
  83      -.It Ev MANPATH
  84      -Used to find the location of the manual files.
  85      -Corresponds to the
  86      -.Fl M
  87      -option.
  88      -.It Ev MANWIDTH
  89      -Defines the width of output. If set to
  90      -.Dq Li tty ,
  91      -and output is to a terminal, full width of terminal is used.
  92      -.It Ev PAGER
  93      -Program used to display files. If unset,
  94      -.Dq Li "less -ins"
  95      -is used.
  96      -.It Ev PATH
  97      -Used to find location of manual files if
      191 +.Sh OPERANDS
      192 +The following operand is supported:
      193 +.Bl -tag -width indent
      194 +.It Ar name
      195 +The name of a standard utility or a keyword.
      196 +.El
      197 +.Sh USAGE
      198 +The usage of
      199 +.Nm
      200 +is described below:
      201 +.
      202 +.Ss "Manual Page Sections"
      203 +.
      204 +Entries in the reference manuals are organized into
      205 +.Em sections .
      206 +A section
      207 +name consists of a major section name, typically a single digit, optionally
      208 +followed by a subsection name, typically one or more letters. An unadorned
      209 +major section name, for example,
      210 +.Qq 9 ,
      211 +does not act as an abbreviation for
      212 +the subsections of that name, such as
      213 +.Qq 9e ,
      214 +.Qq 9f ,
      215 +or
      216 +.Qq 9s .
      217 +That is, each subsection must be searched separately by
      218 +.Nm
      219 +.Fl s .
      220 +Each section contains descriptions apropos to a particular reference category,
      221 +with subsections refining these distinctions. See the
      222 +.Em intro
      223 +manual pages for an explanation of the classification used in this release.
      224 +.
      225 +.Ss "Search Path"
      226 +.
      227 +Before searching for a given
      228 +.Ar name ,
      229 +.Nm
      230 +constructs a list of candidate directories and sections.
      231 +It searches for
      232 +.Ar name
      233 +in the directories specified by the
  98  234  .Ev MANPATH
      235 +environment variable.
      236 +.Lp
      237 +In the absence of
      238 +.Ev MANPATH ,
      239 +.Nm
      240 +constructs its search path based upon the
      241 +.Ev PATH
      242 +environment variable, primarily by substituting
      243 +.Li man
      244 +for the last component of the
      245 +.Ev PATH
      246 +element. Special provisions are added
      247 +to account for unique characteristics of directories such as
      248 +.Pa /sbin ,
      249 +.Pa /usr/ucb ,
      250 +.Pa /usr/xpg4/bin ,
      251 +and others. If the file argument contains
      252 +a
      253 +.Qq /
      254 +character, the
      255 +.Em dirname
      256 +portion of the argument is used in place of
      257 +.Ev PATH
      258 +elements to construct the search path.
      259 +.Lp
      260 +Within the manual page directories,
      261 +.Nm
      262 +confines its search to the
      263 +sections specified in the following order:
      264 +.Bl -bullet
      265 +.It
      266 +.Ar sections
      267 +specified on the command line with the
      268 +.Fl s
      269 +option
      270 +.It
      271 +.Ar sections
      272 +embedded in the
      273 +.Ev MANPATH
      274 +environment variable
      275 +.It
      276 +.Ar sections
      277 +specified in the
      278 +.Pa man.cf
      279 +file for each directory specified in the
      280 +.Ev MANPATH
      281 +environment variable
      282 +.El
      283 +If none of the above exist,
      284 +.Nm
      285 +searches each directory in the manual
      286 +page path, and displays the first matching manual page found.
      287 +.Lp
      288 +The
      289 +.Pa man.cf
      290 +file has the following format:
      291 +.Lp
      292 +.Dl Pf MANSECTS= Ar section , Ns Op Ar section...
      293 +.Lp
      294 +Lines beginning with
      295 +.Sq Li #
      296 +and blank lines are considered comments, and are
      297 +ignored. Each directory specified in
      298 +.Ev MANPATH
      299 +can contain a manual page
      300 +configuration file, specifying the default search order for that directory.
      301 +.Sh "Referring to Other Manual Pages"
      302 +If the first line of the manual page is a reference to another manual
      303 +page entry fitting the pattern:
      304 +.Lp
      305 +.Dl \&.so man*/\fIsourcefile\fR
      306 +.Lp
      307 +.Nm
      308 +processes the indicated file in place of the current one. The
      309 +reference must be expressed as a path name relative to the root of the manual
      310 +page directory subtree.
      311 +.Lp
      312 +When the second or any subsequent line starts with \fB\&.so\fR, \fBman\fR
      313 +ignores it; \fBtroff\fR(1) or \fBnroff\fR(1) processes the request in the usual
      314 +manner.
      315 +.Sh ENVIRONMENT VARIABLES
      316 +See
      317 +.Xr environ 5
      318 +for descriptions of the following environment variables
      319 +that affect the execution of
      320 +.Nm man :
      321 +.Ev LANG ,
      322 +.Ev LC_ALL ,
      323 +.Ev LC_CTYPE ,
      324 +.Ev LC_MESSAGES ,
  99  325  and
 100      -.Fl M
 101      -are not specified.
      326 +.Ev NLSPATH .
      327 +.Bl -tag -width indent
      328 +.It Ev MANPATH
      329 +A colon-separated list of directories; each directory can be followed by a
      330 +comma-separated list of sections. If set, its value overrides
      331 +\fB/usr/share/man\fR as the default directory search path, and the \fBman.cf\fR
      332 +file as the default section search path. The \fB-M\fR and \fB-s\fR flags, in
      333 +turn, override these values.)
      334 +.It Ev PAGER
      335 +A program to use for interactively delivering
      336 +output to the screen. If not set,
      337 +.Sq Nm more Fl s
      338 +is used. See
      339 +.Xr more 1 .
 102  340  .El
 103  341  .Sh FILES
 104      -.Bl -tag -width indent -compact
      342 +.Bl -tag -width indent
      343 +.It Pa /usr/share/man
      344 +Root of the standard manual page directory subtree
      345 +.It Pa /usr/share/man/man?/*
      346 +Unformatted manual entries
      347 +.It Pa /usr/share/man/whatis
      348 +Table of contents and keyword database
 105  349  .It Pa man.cf
 106      -Per-manpath configuration settings.  The file is formatted as follows:
 107      -.Bd -literal -offset indent
 108      -MANSECT=\fIsection\fR[,\fIsection\fR]...
 109      -.Ed
 110      -.Pp
 111      -Each section consists of a section in the reference manual.  The file
 112      -may also contain comment blank lines or lines consisting of comments, where
 113      -the first character in the line is `#'.  Both blank lines and comment lines are
 114      -ignored.
      350 +Default search order by section
 115  351  .El
      352 +.Sh EXIT STATUS
      353 +.Ex -std man
      354 +.Sh EXAMPLES
      355 +.
      356 +.Ss Example 1: Creating a PostScript Version of a man page
      357 +.
      358 +The following example spools the
      359 +.Xr pipe 2
      360 +man page in PostScript to the default printer:
      361 +.Pp
      362 +.Dl % man -t -s 2 pipe
      363 +.Pp
      364 +Note that
      365 +.Xr mandoc 1
      366 +can be used to obtain the PostScript content directly.
      367 +.Ss Example 2: Creating a Text Version of a man page
      368 +The following example creates the
      369 +.Xr pipe 2
      370 +man page in ASCII text:
      371 +.Pp
      372 +.Dl % man pipe.2 | col -x -b > pipe.text
 116  373  .Sh CODE SET INDEPENDENCE
 117  374  Enabled.
 118  375  .Sh INTERFACE STABILITY
 119      -The
 120      -.Nm
 121      -utility is
 122      -.Nm Standard ,
 123      -as is the
 124      -.Fl k
 125      -option. The other options are
 126  376  .Nm Committed .
 127  377  .Sh SEE ALSO
 128  378  .Xr apropos 1 ,
 129      -.Xr intro 1 ,
      379 +.Xr cat 1 ,
      380 +.Xr col 1 ,
 130  381  .Xr mandoc 1 ,
      382 +.Xr more 1 ,
 131  383  .Xr whatis 1 ,
      384 +.Xr environ 5 ,
 132  385  .Xr man 5 ,
 133      -.Xr mdoc 5 ,
 134      -.Xr standards 5
      386 +.Xr mdoc 5
 135  387  .Sh NOTES
 136      -Some pages may contain information which cannot be properly displayed on
 137      -all terminals.  In such cases, some information may be lost.
      388 +The
      389 +.Fl f
      390 +and
      391 +.Fl k
      392 +options use the
      393 +.Nm whatis
      394 +database, which is
      395 +created with the
      396 +.Fl w
      397 +option.
      398 +.Sh BUGS
      399 +The manual is supposed to be reproducible either on a phototypesetter or on an
      400 +ASCII terminal. However, on a terminal some information (indicated by
      401 +font changes, for instance) is lost.
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX