diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-07-18 18:49:19 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-07-18 18:49:19 +0000 |
commit | 40deddbd62531337fca0783d1d15302aa2bec2e9 (patch) | |
tree | 9ee1515ac97b73fcb2f692488f49794836638a29 /mdoc.7 | |
parent | 7da0435dec6f5766bc9583cb3d138cc06b2ca912 (diff) | |
download | mandoc-40deddbd62531337fca0783d1d15302aa2bec2e9.tar.gz |
Considerably revamped argument-parsing for correct quoted-literal handling.
Deprecated ARGS_QUOTED (all arguments are quotable).
Documented quotation and whitespace rules in mdoc.7.
Diffstat (limited to 'mdoc.7')
-rw-r--r-- | mdoc.7 | 36 |
1 files changed, 32 insertions, 4 deletions
@@ -131,6 +131,11 @@ also be text-decorated using the .Sq \ef escape followed by an indicator: B (bold), I, (italic), or P and R (Roman, or reset). This form is not recommended. +.Pp +Lastly, a standalone double-quote may be produced in a macro line by +using two consecutive double-quotes within a quoted literal. See +.Sx Quotation +for details. .\" SUB-SECTION---------------------- .Ss Whitespace In non-literal free-form lines, consecutive blocks of whitespace are @@ -144,9 +149,7 @@ These are not. .\" PARAGRAPH------------ .Pp In macro lines, whitespace delimits arguments and is discarded. If -arguments are quoted, whitespace is conditionally retained within the -quotes. -.\" TODO: which do and which don't? +arguments are quoted, whitespace within the quotes is retained. .\" PARAGRAPH------------ .Pp Blank lines are only permitted within literal contexts, as are lines @@ -159,7 +162,32 @@ or when in a literal context. Macro arguments may be quoted with a double-quote to group space-delimited terms or to retain blocks of whitespace. A quoted argument begins with a double-quote preceded by whitespace. The next -double-quote terminates the term, regardless of surrounding whitespace. +double-quote that is +.Em +preceded by a double-quote terminates the term, regardless of +surrounding whitespace. Thus, the following construction produces +.Sq "a""b" , +since, as mentioned in +.Sx Special Characters , +two consecutive double-quotes in a quoted literal produce a standalone +double-quote: +.Bd -literal -offset indent +\&.Em "a""""b" +.Ed +.\" PARAGRAPH------------ +.Pp +This produces tokens +.Sq a" , +.Sq b c , +.Sq de , +and +.Sq fg" . +Note that any quoted term, be it argument or macro, is indiscriminately +considered literal text. Thus, the following produces +.Sq \&Em a : +.Bd -literal -offset indent +\&.Em "Em a" +.Ed .\" PARAGRAPH------------ .Pp In free-form mode, quotes are regarded as opaque text. |