From 725e38dea0823960cd95c9477c6434e08d2e787f Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Fri, 12 Jun 2009 12:40:44 +0000 Subject: Made per-macro "now callable" COMPATIBILITY claims into a single "most macros callable". Added COMPATIBILITY note on escaped special-character sequences. Vertical bar now correctly delimits (like in new groff). --- mdoc.7 | 65 +++++++++++++++++++++++++++++++--------------------------- mdoc_strings.c | 2 ++ 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/mdoc.7 b/mdoc.7 index 5c0c5915..69cb6071 100644 --- a/mdoc.7 +++ b/mdoc.7 @@ -31,7 +31,12 @@ language is used to format manuals. In this reference document, we describe the syntax, ontology and structure of the .Nm -language. +language. Our reference implementation is +.Xr mandoc 1 . +The +.Sx COMPATIBILITY +section describes compatibility with +.Xr groff 1 . .\" PARAGRAPH .Pp An @@ -96,6 +101,8 @@ Within a macro line, the following characters are reserved: .Pq question .It \&! .Pq exclamation +.It \&| +.Pq vertical bar .El .\" PARAGRAPH .Pp @@ -470,27 +477,34 @@ and macros are obsolete. .\" SECTION .Sh COMPATIBILITY -The mdoc language was traditionally a -.Qq roff -macro package; most existing manuals were written with mdoc syntax -dictated by system-dependent roff installations. This section documents -compatibility with these systems. +This section documents compatibility with other roff implementations, at +this time limited to +.Xr groff 1 . +The term +.Qq historic groff +refers to those versions before the +.Pa doc.tmac +file re-write +.Pq somewhere between 1.15 and 1.19 . .Pp .Bl -dash -compact .\" LIST-ITEM .It -.Sq \&.An , -.Sq \&.Fo , -.Sq \&.Lk , -.Sq \&.Ms , -.Sq \&.Mt , -and -.Sq \&.St -historically weren't callable. +Historic groff has many un-callable macros. Most of these (excluding +some block-level macros) are now callable, conforming to the +non-historic groff version. +.\" LIST-ITEM +.It +The vertical bar +.Sq \(Ba +made historic groff +.Qq go orbital +but is a proper delimiter in this implementation. .\" LIST-ITEM .It .Sq \&.It \-nested -is assumed for all lists: any list may be nested and +is assumed for all lists (it wasn't in historic groff): any list may be +nested and .Sq \-enum lists will restart the sequence only for the sub-list. .\" LIST-ITEM @@ -505,26 +519,17 @@ The macro only accepts a single parameter. .\" LIST-ITEM .It -The system-name macros ( -.Ns Sq \&.At , -.Sq \&.Bsx , -.Sq \&.Bx , -.Sq \&.Fx , -.Sq \&.Nx , -.Sq \&.Ox , -and -.Sq \&.Ux ) -are callable. -.\" LIST-ITEM -.It Some manuals use .Sq \&.Li incorrectly by following it with a reserved character and expecting the delimiter to render. This is not supported. .\" LIST-ITEM .It -.Sq \&.Cd -is callable. +If an special-character control character +.Sq \e +is escaped, it will +obviously not render the sequence. Even newer versions of groff seem to +dither on this. .El .\" SECTION .Sh SEE ALSO @@ -538,7 +543,7 @@ utility was written by .An Kristaps Dzonsons Aq kristaps@kth.se . .\" SECTION .Sh CAVEATS -There are several ambiguous parts of mdoc. +There are many ambiguous parts of mdoc. .Pp .Bl -dash -compact .\" LIST-ITEM diff --git a/mdoc_strings.c b/mdoc_strings.c index 1a8b031b..24bc2b00 100644 --- a/mdoc_strings.c +++ b/mdoc_strings.c @@ -147,6 +147,8 @@ mdoc_iscdelim(char p) { switch (p) { + case('|'): + /* FALLTHROUGH */ case('.'): /* FALLTHROUGH */ case(','): -- cgit