=================================================================== RCS file: /cvs/mandoc/roff.7,v retrieving revision 1.65 retrieving revision 1.74 diff -u -p -r1.65 -r1.74 --- mandoc/roff.7 2015/01/21 20:33:25 1.65 +++ mandoc/roff.7 2015/08/29 22:40:05 1.74 @@ -1,7 +1,7 @@ -.\" $Id: roff.7,v 1.65 2015/01/21 20:33:25 schwarze Exp $ +.\" $Id: roff.7,v 1.74 2015/08/29 22:40:05 schwarze Exp $ .\" .\" Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons -.\" Copyright (c) 2010, 2011, 2013, 2014 Ingo Schwarze +.\" Copyright (c) 2010, 2011, 2013-2015 Ingo Schwarze .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -15,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: January 21 2015 $ +.Dd $Mdocdate: August 29 2015 $ .Dt ROFF 7 .Os .Sh NAME @@ -665,6 +665,8 @@ produces .D1 \efI\e^XtFree\e^\efP. .Pp in the input stream, and thus in the output: \fI\^XtFree\^\fP. +Each occurrence of \e\e$* is replaced with all the arguments, +joined together with single blank characters. .Pp Since macros and user-defined strings share a common string table, defining a macro @@ -1057,8 +1059,6 @@ If the first character of COND is .Pq string defined , .Sq e .Pq even page , -.Sq r -.Pq register accessed , .Sq t .Pq troff mode , or @@ -1066,6 +1066,11 @@ or .Pq vroff mode , COND evaluates to false. .It +If the first character of COND is +.Sq r , +it evalutes to true if the rest of COND is the name of an existing +number register; otherwise, it evaluates to false. +.It If COND starts with a parenthesis or with an optionally signed integer number, it is evaluated according to the rules of .Sx Numerical expressions @@ -1196,13 +1201,18 @@ This is a Heirloom extension and currently unsupported Set an input line trap. Its syntax is as follows: .Pp -.D1 Pf . Cm it Ar number macro +.D1 Pf . Cm it Ar expression macro .Pp The named .Ar macro -will be invoked after processing the specified -.Ar number -of input text lines. +will be invoked after processing the number of input text lines +specified by the numerical +.Ar expression . +While evaluating the +.Ar expression , +the unit suffixes described below +.Sx Scaling Widths +are ignored. .Ss \&itc Set an input line trap, not counting lines ending with \ec. Currently unsupported. @@ -1439,7 +1449,7 @@ Retrieve the bounding box of a PostScript file. Currently unsupported. .Ss \&pshape Set a special shape for the current paragraph. -This is a Heirloom extension and currently ignored. +This is a Heirloom extension and currently unsupported. .Ss \&pso Include output of a shell command. Ignored because insecure. @@ -1572,7 +1582,7 @@ See .Ss \&ta Set tab stops. Takes an arbitrary number of arguments. -Currently ignored. +Currently unsupported. .Ss \&tc Change tab repetion character. Currently unsupported. @@ -1582,7 +1592,7 @@ See .Sx \&TS . .Ss \&ti Temporary indent. -Currently ignored. +Currently unsupported. .Ss \&tkf Enable track kerning for a font. Currently ignored. @@ -1715,6 +1725,14 @@ prefixed by an optional sign .Sq + or .Sq - . +Each number may be followed by one optional scaling unit described below +.Sx Scaling Widths . +The following equations hold: +.Bd -literal -offset indent +1i = 6v = 6P = 10m = 10n = 72p = 1000M = 240u = 240 +254c = 100i = 24000u = 24000 +1f = 65536u = 65536 +.Ed .Pp The following binary operators are implemented. Unless otherwise stated, they behave as in the C language: @@ -1821,9 +1839,15 @@ For short names, there are variants .No \e* Ns Ar c and .No \e*( Ns Ar cc . +.Ss \e, +Left italic correction (groff extension); ignored by +.Xr mandoc 1 . .Ss \e- Special character .Dq mathematical minus sign . +.Ss \e/ +Right italic correction (groff extension); ignored by +.Xr mandoc 1 . .Ss \e[ Ns Ar name ] .Sx Special Characters with names of arbitrary length, see @@ -1948,7 +1972,7 @@ For short names, there are variants and .No \en( Ns Ar cc . .Ss \eo\(aq Ns Ar string Ns \(aq -Overstrike, that is, write all the characters contained in the +Overstrike, writing all the characters contained in the .Ar string to the same output position. In terminal and HTML output modes, @@ -2015,55 +2039,68 @@ Print with zero width and height; ignored by .Xr mandoc 1 . .Ss \ez -Output the next character without advancing the cursor position; -approximated in -.Xr mandoc 1 -by simply skipping the next character. +Output the next character without advancing the cursor position. .Sh COMPATIBILITY -This section documents compatibility between mandoc and other +The +.Xr mandoc 1 +implementation of the .Nm -implementations, at this time limited to GNU troff -.Pq Qq groff . -The term -.Qq historic groff -refers to groff version 1.15. +language is intentionally incomplete. +Unimplemented features include: .Pp .Bl -dash -compact .It +For security reasons, +.Xr mandoc 1 +never reads or writes external files except via +.Sx \&so +requests with safe relative paths. +.It +There is no automatic hyphenation, no adjustment to the right margin, +and no centering; the output is always set flush-left. +.It +Support for setting tabulator positions +and tabulator and leader characters is missing, +and support for manually changing indentation is limited. +.It The .Sq u scaling unit is the default terminal unit. -In traditional troff systems, this unit would change depending on the +In traditional troff systems, this unit changes depending on the output media. .It -In mandoc, the -.Sx \&EQ , -.Sx \&TE , -.Sx \&TS , -and -.Sx \&T& , -macros are considered regular macros. -In all other -.Nm -implementations, these are special macros that must be specified without -spacing between the control character (which must be a period) and the -macro name. +Width measurements are implemented in a crude way +and often yield wrong results. +Explicit movement requests and escapes are ignored. .It -The -.Cm nS -register is only compatible with OpenBSD's groff-1.15. +There is no concept of output pages, no support for floats, +graphics drawing, and picture inclusion; +terminal output is always continuous. .It -Historic groff did not accept white-space before a custom -.Ar end -macro for the -.Sx \&ig -request. +Requests regarding color, font families, and glyph manipulation +are ignored. +Font support is very limited. +Kerning is not implemented, and no ligatures are produced. .It The -.Sx \&if -and family would print funny white-spaces with historic groff when -using the next-line syntax. +.Qq \(aq +macro control character does not suppress output line breaks. +.It +Diversions are not implemented, +and support for traps is very incomplete. +.It +While recursion is supported, +.Sx \&while +loops are not. .El +.Pp +The special semantics of the +.Cm nS +number register is an idiosyncracy of +.Ox +manuals and not supported by other +.Xr mdoc 7 +implementations. .Sh SEE ALSO .Xr mandoc 1 , .Xr eqn 7 ,