=================================================================== RCS file: /cvs/mandoc/mandoc.1,v retrieving revision 1.9 retrieving revision 1.24 diff -u -p -r1.9 -r1.24 --- mandoc/mandoc.1 2009/03/23 16:02:56 1.9 +++ mandoc/mandoc.1 2009/07/06 09:34:29 1.24 @@ -1,23 +1,21 @@ -.\" $Id: mandoc.1,v 1.9 2009/03/23 16:02:56 kristaps Exp $ +.\" $Id: mandoc.1,v 1.24 2009/07/06 09:34:29 kristaps Exp $ .\" -.\" Copyright (c) 2009 Kristaps Dzonsons +.\" Copyright (c) 2009 Kristaps Dzonsons .\" .\" Permission to use, copy, modify, and distribute this software for any -.\" purpose with or without fee is hereby granted, provided that the -.\" above copyright notice and this permission notice appear in all -.\" copies. +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. .\" -.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -.\" WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE -.\" AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL -.\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -.\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -.\" TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -.\" PERFORMANCE OF THIS SOFTWARE. +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" 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 23 2009 $ -.Dt mandoc 1 +.Dd $Mdocdate: July 6 2009 $ +.Dt MANDOC 1 .Os .\" SECTION .Sh NAME @@ -39,20 +37,20 @@ The utility formats .Ux manual pages for display. The arguments are as follows: -.Bl -tag -width XXXXXXXXXXXX +.Bl -tag -width Ds .\" ITEM .It Fl f Ns Ar option... Override default compiler behaviour. See .Sx Compiler Options for details. .\" ITEM -.It Fl m +.It Fl m Ns Ar format Input format. See .Sx Input Formats for available formats. Defaults to -.Fl m Ns Ar mdoc . +.Fl m Ns Ar andoc . .\" ITEM -.It Fl T +.It Fl T Ns Ar output Output format. See .Sx Output Formats for available formats. Defaults to @@ -62,15 +60,11 @@ for available formats. Defaults to Print version and exit. .\" ITEM .It Fl W Ns Ar err... -Print warning messages. May be set to +Configure warning messages. Use .Fl W Ns Ar all -for all warnings, -.Ar compat -for groff/troff-compatibility warnings, or -.Ar syntax -for syntax warnings. If +to print warnings, .Fl W Ns Ar error -is specified, warnings are considered errors and cause utility +for warnings to be considered errors and cause utility termination. Multiple .Fl W arguments may be comma-separated, such as @@ -89,8 +83,10 @@ By default, .Nm reads .Xr mdoc 7 +or +.Xr man 7 text from stdin, implying -.Fl m Ns Ar mdoc , +.Fl m Ns Ar andoc , and prints 78-column backspace-encoded output to stdout as if .Fl T Ns Ar ascii were provided. @@ -98,21 +94,19 @@ were provided. .Pp .Ex -std mandoc .\" SUB-SECTION -.Ss Reserved Words (mdoc only) -The reserved words described in -.Xr mdoc 7 -are handled according to the following rules: -.Bl -enum -offset XXX -.It -Opening delimiters +.Ss Punctuation and Spacing +If punctuation is set apart from words, such as in the phrase +.Dq to be \&, or not to be , +it's processed by +.Nm +according to the following rules: opening punctuation .Po .Sq \&( , .Sq \&[ , and .Sq \&{ -.Pc are not followed by whitespace. -.It -Closing delimiters +.Pc +is not followed by a space; closing punctuation .Po .Sq \&. , .Sq \&, , @@ -124,23 +118,21 @@ Closing delimiters .Sq \&] and .Sq \&} -.Pc are not preceeded by whitespace. -.El -.\" PARAGRAPH +.Pc +is not preceded by whitespace. .Pp -Note that reserved words only register as such as if they appear as -standalone tokens, either in parsed lines or streams of text. Thus, the -following fragment: -.Bd -literal -offset XXXX -this self is not that of the waking , empirically real man -.Ed -.\" PARAGRAPH +If the input is +.Xr mdoc 7 , +these rules are also applied to macro arguments when appropriate. .Pp -\&...correctly adjusts the comma spacing to -.Dq this self is not that of the waking , empirically real man . -However, if the comma were part of -.Dq ,empirically , -it would not. +White-space, in non-literal (normal) mode, is stripped from input and +replaced on output by a single space. Thus, if you wish to preserve +multiple spaces, they must be space-escaped +.Sq \e\ +or used in a literal display mode, e.g., +.Sq \&.Bd \-literal +in +.Xr mdoc 7 . .\" SUB-SECTION .Ss Input Formats The @@ -150,9 +142,9 @@ utility accepts and .Xr man 7 input with -.Fl m Ns Ar mdoc +.Fl m Ns Ar doc and -.Fl m Ns Ar man , +.Fl m Ns Ar an , respectively. The .Xr mdoc 7 format is @@ -161,10 +153,39 @@ recommended; .Xr man 7 should only be used for legacy manuals. .Pp -Note that the -.Fl m Ns Ar man -option is experimental and only works with -.Fl T Ns Ar tree . +A third option, +.Fl m Ns Ar andoc , +which is also the default, determines encoding on-the-fly: if the first +non-comment macro is +.Sq \&.Dd +or +.Sq \&.Dt , +the +.Xr mdoc 7 +parser is used; otherwise, the +.Xr man 7 +parser is used. +.Pp +If multiple +files are specified with +.Fl m Ns Ar andoc , +each has its file-type determined this way. If multiple files are +specified and +.Fl m Ns Ar doc +or +.Fl m Ns Ar an +is specified, then this format is used exclusively. +.\" .Pp +.\" The following escape sequences are recognised, although the per-format +.\" compiler may not allow certain sequences. +.\" .Bl -tag -width Ds -offset XXXX +.\" .It \efX +.\" sets the font mode to X (B, I, R or P, where P resets the font) +.\" .It \eX, \e(XX, \e[XN] +.\" queries the special-character table for a corresponding symbol +.\" .It \e*X, \e*(XX, \e*[XN] +.\" deprecated special-character format +.\" .El .\" SUB-SECTION .Ss Output Formats The @@ -172,29 +193,40 @@ The utility accepts the following .Fl T arguments: -.Bl -tag -width XXXXXXXXXXXX -offset XXXX -.It Ar ascii +.Bl -tag -width Ds +.It Fl T Ns Ar ascii Produce 7-bit ASCII output, backspace-encoded for bold and underline styles. This is the default. -.It Ar tree +.It Fl T Ns Ar tree Produce an indented parse tree. -.It Ar lint +.It Fl T Ns Ar lint Parse only: produce no output. .El +.Pp +If multiple input files are specified, these will be processed by the +corresponding filter in-order. .\" SUB-SECTION .Ss Compiler Options Default compiler behaviour may be overriden with the .Fl f flag. -.Bl -tag -width XXXXXXXXXXXX -offset XXXX +.Bl -tag -width Ds .It Fl f Ns Ar ign-scope When rewinding the scope of a block macro, forces the compiler to ignore scope violations. This can seriously mangle the resulting tree. .Pq mdoc only -.It Fl f Ns Ar ign-escape -Ignore invalid escape sequences. -.It Fl f Ns Ar ign-macro -Ignore unknown macros at the start of input lines. +.It Fl f Ns Ar no-ign-escape +Don't ignore invalid escape sequences. +.It Fl f Ns Ar no-ign-macro +Do not ignore unknown macros at the start of input lines. +.It Fl f Ns Ar no-ign-chars +Do not ignore disallowed characters. +.It Fl f Ns Ar strict +Implies +.Fl f Ns Ar no-ign-escape , +.Fl f Ns Ar no-ign-macro +and +.Fl f Ns Ar no-ign-chars . .El .\" PARAGRAPH .Pp @@ -203,59 +235,56 @@ As with the flag, multiple .Fl f options may be grouped and delimited with a comma. Using -.Fl f Ns Ar ign-scope,ign-escape , -for example, will try to ignore scope and character-escape errors. +.Fl f Ns Ar ign-scope,no-ign-escape , +for example, will try to ignore scope and not ignore character-escape +errors. .\" SECTION .Sh EXAMPLES -To page this manual page on the terminal: +To page manuals to the terminal: .\" PARAGRAPH .Pp -.D1 % mandoc \-Wall,error mandoc.1 2>&1 | less +.D1 % mandoc \-Wall,error \-fstrict mandoc.1 2>&1 | less +.D1 % mandoc mandoc.1 mdoc.3 mdoc.7 | less .\" SECTION +.Sh COMPATIBILITY +This section summarises +.Nm +compatibility with +.Xr groff 1 . +.Pp +.Bl -bullet -compact +.It +A list or display following +.Sq \&.Ss +does not assert a prior vertical break, just as it doesn't with +.Sq \&.Sh . +.It +The \-literal and \-unfilled +.Sq \&.Bd +displays types are synonyms, as are \-filled and \-ragged. +.It +Words aren't hyphenated. +.It +In normal mode (not a literal block), blocks of spaces aren't preserved, +so double spaces following sentence closure are reduced to a single space +.Pq Dq French spacing . +.El +.\" SECTION .Sh SEE ALSO +.Xr mandoc_char 7 , .Xr mdoc 7 , .Xr man 7 -.\" +.\" SECTION .Sh AUTHORS The .Nm utility was written by -.An Kristaps Dzonsons Aq kristaps@openbsd.org . +.An Kristaps Dzonsons Aq kristaps@kth.se . .\" SECTION .Sh CAVEATS The .Nm -utility in -.Fl T Ns Ar ascii -mode doesn't yet know how to display the following: +utility doesn't yet know how to display \-hang lists. .Pp -.Bl -bullet -compact -.It -The \-hang -.Sq \&Bl -list is not yet supported. -.El -.Pp Other macros still aren't supported by virtue of nobody complaining -about their absence. Please report any omissions: this is a work in -progress. -.Pp -The following list documents differences between traditional -.Xr nroff 1 -output and -.Nm : -.Pp -.Bl -bullet -compact -.It -A list of display following -.Sq \&Ss -does not assert a prior vertical break, just as it doesn't with -.Sq \&Sh . -.It -Special characters don't follow the current font style. -.\" LIST-ITEM -.It -The \-literal and \-unfilled -.Sq \&Bd -displays types are synonyms, as are \-filled and \-ragged. -.El +about their absence.