summaryrefslogtreecommitdiffstats
path: root/mdoc.7
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2009-07-18 18:49:19 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2009-07-18 18:49:19 +0000
commit40deddbd62531337fca0783d1d15302aa2bec2e9 (patch)
tree9ee1515ac97b73fcb2f692488f49794836638a29 /mdoc.7
parent7da0435dec6f5766bc9583cb3d138cc06b2ca912 (diff)
downloadmandoc-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.736
1 files changed, 32 insertions, 4 deletions
diff --git a/mdoc.7 b/mdoc.7
index 9298c221..49e1268e 100644
--- a/mdoc.7
+++ b/mdoc.7
@@ -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.