=================================================================== RCS file: /cvs/mandoc/mandoc.1,v retrieving revision 1.3 retrieving revision 1.12 diff -u -p -r1.3 -r1.12 --- mandoc/mandoc.1 2009/03/20 15:14:01 1.3 +++ mandoc/mandoc.1 2009/04/02 16:42:35 1.12 @@ -1,4 +1,4 @@ -.\" $Id: mandoc.1,v 1.3 2009/03/20 15:14:01 kristaps Exp $ +.\" $Id: mandoc.1,v 1.12 2009/04/02 16:42:35 kristaps Exp $ .\" .\" Copyright (c) 2009 Kristaps Dzonsons .\" @@ -16,18 +16,19 @@ .\" TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR .\" PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: March 20 2009 $ +.Dd $Mdocdate: April 2 2009 $ .Dt mandoc 1 .Os .\" SECTION .Sh NAME .Nm mandoc -.Nd format and display BSD manuals +.Nd format and display UNIX manuals .\" SECTION .Sh SYNOPSIS .Nm mandoc .Op Fl V .Op Fl f Ns Ar option... +.Op Fl m Ns Ar format .Op Fl W Ns Ar err... .Op Fl T Ns Ar output .Op Ar infile... @@ -35,9 +36,9 @@ .Sh DESCRIPTION The .Nm -utility formats a BSD -.Dq mdoc -manual page for display. The arguments are as follows: +utility formats +.Ux +manual pages for display. The arguments are as follows: .Bl -tag -width XXXXXXXXXXXX .\" ITEM .It Fl f Ns Ar option... @@ -45,6 +46,12 @@ Override default compiler behaviour. See .Sx Compiler Options for details. .\" ITEM +.It Fl m +Input format. See +.Sx Input Formats +for available formats. Defaults to +.Fl m Ns Ar andoc . +.\" ITEM .It Fl T Output format. See .Sx Output Formats @@ -80,14 +87,103 @@ will halt with the first failed parse. .Pp By default, .Nm -reads from stdin and prints 78-column backspace-encoded output to stdout -as if +reads +.Xr mdoc 7 +or +.Xr man 7 +text from stdin, implying +.Fl m Ns Ar andoc , +and prints 78-column backspace-encoded output to stdout as if .Fl T Ns Ar ascii were provided. .\" PARAGRAPH .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 +.Po +.Sq \&( , +.Sq \&[ , +and +.Sq \&{ +.Pc are not followed by whitespace. +.It +Closing delimiters +.Po +.Sq \&. , +.Sq \&, , +.Sq \&; , +.Sq \&: , +.Sq \&? , +.Sq \&! , +.Sq \&) , +.Sq \&] +and +.Sq \&} +.Pc are not preceeded by whitespace. +.El +.\" PARAGRAPH +.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 +.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. +.\" SUB-SECTION +.Ss Input Formats +The +.Nm +utility accepts +.Xr mdoc 7 +and +.Xr man 7 +input with +.Fl m Ns Ar doc +and +.Fl m Ns Ar an , +respectively. The +.Xr mdoc 7 +format is +.Em strongly +recommended; +.Xr man 7 +should only be used for legacy manuals. +.Pp +A third option, +.Fl m Ns Ar andoc , +which is also the default, determines encoding on-the-fly. If multiple +files are passed in, each has its file-type determined this way. If +multiple files are passed 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 .Nm @@ -108,14 +204,21 @@ Parse only: produce no output. Default compiler behaviour may be overriden with the .Fl f flag. -.Bl -tag -width XXXXXXXXXXXX -offset XXXX +.Bl -tag -width XXXXXXXXXXXXXX -offset XXXX .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. +Ignore unknown macros at the start of input lines (default for +.Xr man 7 +parsing). +.It Fl f Ns Ar no-ign-macro +Do not ignore unknown macros at the start of input lines (default for +.Xr mdoc 7 +parsing). .El .\" PARAGRAPH .Pp @@ -134,7 +237,8 @@ To page this manual page on the terminal: .D1 % mandoc \-Wall,error mandoc.1 2>&1 | less .\" SECTION .Sh SEE ALSO -.Xr mdoc 7 +.Xr mdoc 7 , +.Xr man 7 .\" .Sh AUTHORS The @@ -145,27 +249,37 @@ utility was written by .Sh CAVEATS The .Nm -utility doesn't yet know how to display the following: +utility in +.Fl T Ns Ar ascii +mode doesn't yet know how to display the following: .Pp .Bl -bullet -compact .It The \-hang -.Sq \&Bl +.Sq \&.Bl list is not yet supported. -.It -The \-literal and \-unfilled -.Sq \&Bd -displays types are synonyms, as are \-filled and \-ragged. -.It -The -.Sq \&Xo/Xc -pair isn't supported. -.It -The -.Sq \&Sm -macro has no effect, yet. .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