and of called macros.
This bug affects almost all macros, and fixing it simplifies the
code. It is amazing that the bogus ARGS_QWORD feature got implemented
in the first place, and then carrier along for more than eight years
without anybody ever noticing that it was pointless.
Reported by Leah Neukirchen <leah at vuxu dot org>, found on Void Linux.
.Nd changing fonts inside the address macro
.Sh DESCRIPTION
normal text
-.Ad emphasis\\fBbold\\fPback | after : punctuation
+.Ad emphasis\\fBbold\\fPback | after ":" punctuation "Sy" bold
trailing text
A\bAd\bd-\b-f\bfo\bon\bnt\bt - changing fonts inside the address macro
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- normal text _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bbo\bol\bld\bd_\bb_\ba_\bc_\bk | _\ba_\bf_\bt_\be_\br: _\bp_\bu_\bn_\bc_\bt_\bu_\ba_\bt_\bi_\bo_\bn trailing text
+ normal text _\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bbo\bol\bld\bd_\bb_\ba_\bc_\bk | _\ba_\bf_\bt_\be_\br: _\bp_\bu_\bn_\bc_\bt_\bu_\ba_\bt_\bi_\bo_\bn b\bbo\bol\bld\bd trailing text
OpenBSD November 20, 2014 OpenBSD
# DESCRIPTION
normal text
-*emphasis**bold**back* | *after*: *punctuation*
+*emphasis**bold**back* | *after*: *punctuation* **bold**
trailing text
OpenBSD - November 20, 2014
.Sh DESCRIPTION
inline is the default:
.An Kristaps ,
-.An Ingo ,
+.An Ingo ","
and
.An Joerg .
empty
.An -nosplit -split bogus
.Pp
inline:
-.An Kristaps ,
+.An Kristaps ","
.An Ingo ,
and
.An Joerg .
-.Dd September 30, 2011
+.Dd May 21, 2017
.Dt AP-MIDDLE 1
.Os OpenBSD
.Sh NAME
.Nd apostrophe in the middle of a macro line
.Sh DESCRIPTION
.Xr mandoc 1 Ap s
+.Pp
+punctuation and called macros:
+.Sy bold Ap ( "Sy" bold
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
mandoc(1)'s
-OpenBSD September 30, 2011 OpenBSD
+ punctuation and called macros: b\bbo\bol\bld\bd'(b\bbo\bol\bld\bd
+
+OpenBSD May 21, 2017 OpenBSD
mandoc(1)'s
-OpenBSD - September 30, 2011
+punctuation and called macros:
+**bold**'(**bold**
+
+OpenBSD - May 21, 2017
.Aq user@host
return path.
And another
-.Ao full Ac one .
+.Ao full Ac one "Sy" bold .
A\bAq\bq-\b-e\bem\bmp\bpt\bty\by - empty implicit enclosure macros
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- An empty <> and a full <user@host> return path. And another <full> one.
+ An empty <> and a full <user@host> return path. And another <full> one
+ b\bbo\bol\bld\bd.
OpenBSD August 6, 2010 OpenBSD
<user@host>
return path.
And another
-<full> one.
+<full> one **bold**.
OpenBSD - August 6, 2010
A\bAq\bq-\b-e\bem\bmp\bpt\bty\by – empty implicit enclosure macros
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- An empty ⟨⟩ and a full ⟨user@host⟩ return path. And another ⟨full⟩ one.
+ An empty ⟨⟩ and a full ⟨user@host⟩ return path. And another ⟨full⟩ one
+ b\bbo\bol\bld\bd.
OpenBSD August 6, 2010 OpenBSD
.Ar ( a
op bracket
.Ar [ a
+.Pp
+quoted punctuation:
+.Ar a "(" b "|" c ")" d "," "Sy" bold .
_\bf_\bi_\bl_\be _\b._\b._\b.; _\bz colon _\bf_\bi_\bl_\be _\b._\b._\b.: _\bz quest _\bf_\bi_\bl_\be _\b._\b._\b.? _\bz excl _\bf_\bi_\bl_\be _\b._\b._\b.! _\bz paren
_\bf_\bi_\bl_\be _\b._\b._\b.) _\bz bracket _\bf_\bi_\bl_\be _\b._\b._\b.] _\bz bar | _\bm op paren (_\ba op bracket [_\ba
+ quoted punctuation: _\ba (_\bb | _\bc) _\bd, b\bbo\bol\bld\bd.
+
OpenBSD August 21, 2014 OpenBSD
op bracket
\[*a*
+quoted punctuation:
+*a* (*b* | *c*) *d*, **bold**.
+
OpenBSD - August 21, 2014
.At v7
.Pp
invalid argument:
-.At murks
+.At murks "Sy" bold
.Pp
end of file
valid argument: Version 7 AT&T UNIX
- invalid argument: AT&T UNIX murks
+ invalid argument: AT&T UNIX murks b\bbo\bol\bld\bd
end of file
Version 7 AT&T UNIX
invalid argument:
-AT&T UNIX murks
+AT&T UNIX murks **bold**
end of file
An empty
.Brq
and a full
-.Brq user@host
+.Brq "(" user@host
quotation.
And another
-.Bro full Brc one .
+.Bro "(" full Brc one "Sy" bold .
B\bBr\brq\bq-\b-e\bem\bmp\bpt\bty\by - empty implicit enclosure macros
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- An empty {} and a full {user@host} quotation. And another {full} one.
+ An empty {} and a full ({user@host} quotation. And another ({full} one
+ b\bbo\bol\bld\bd.
OpenBSD October 21, 2010 OpenBSD
An empty
{}
and a full
-{user@host}
+({user@host}
quotation.
And another
-{full} one.
+({full} one **bold**.
OpenBSD - October 21, 2010
.Bx
.Pp
one standard argument:
-.Bx 4.4
+.Bx 4.4 "."
.Pp
one non-standard argument:
.Bx nett
.Bx 4.3 reno
.Pp
more arguments:
-.Bx 4.3 tahoe and some additional words
+.Bx 4.3 tahoe and "Em" some additional words
.Pp
end of test document
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
no arguments: BSD
- one standard argument: 4.4BSD
+ one standard argument: 4.4BSD.
one non-standard argument: nettBSD
two standard arguments: 4.3BSD-Reno
- more arguments: 4.3BSD-Tahoe and some additional words
+ more arguments: 4.3BSD-Tahoe and _\bs_\bo_\bm_\be _\ba_\bd_\bd_\bi_\bt_\bi_\bo_\bn_\ba_\bl _\bw_\bo_\br_\bd_\bs
end of test document
BSD
one standard argument:
-4\.4BSD
+4\.4BSD.
one non-standard argument:
nettBSD
4\.3BSD-Reno
more arguments:
-4\.3BSD-Tahoe and some additional words
+4\.3BSD-Tahoe and *some additional words*
end of test document
-# $OpenBSD: Makefile,v 1.7 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.8 2017/05/30 16:21:08 schwarze Exp $
-REGRESS_TARGETS = noarg font eos
+REGRESS_TARGETS = eos font noarg punct
LINT_TARGETS = noarg
.include <bsd.regress.mk>
--- /dev/null
+.Dd August 21, 2014
+.Dt CD-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Cd-punct
+.Nd punctuation handling by the Cd macro
+.Sh DESCRIPTION
+closing punctuation
+.Cd a )
+only one
+.Cd )
+only more than one
+.Cd ) )
+middle
+.Cd a ) z
+start
+.Cd ) z
+dot
+.Cd . z
+comma
+.Cd , z
+semicolon
+.Cd ; z
+colon
+.Cd : z
+quest
+.Cd ? z
+excl
+.Cd ! z
+paren
+.Cd ) z
+bracket
+.Cd ] z
+bar
+.Cd | m
+op paren
+.Cd ( a
+op bracket
+.Cd [ a
+.Pp
+quoted punctuation:
+.Cd a "(" b "|" c ")" d "." "Em" italic .
--- /dev/null
+CD-PUNCT(1) General Commands Manual CD-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ C\bCd\bd-\b-p\bpu\bun\bnc\bct\bt - punctuation handling by the Cd macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ closing punctuation a\ba) only one ) only more than one )) middle a\ba) z\bz start
+ ) z\bz dot . z\bz comma , z\bz semicolon ; z\bz colon : z\bz quest ? z\bz excl ! z\bz paren )
+ z\bz bracket ] z\bz bar | m\bm op paren (a\ba op bracket [a\ba
+
+ quoted punctuation: a\ba (b\bb | c\bc) d\bd. _\bi_\bt_\ba_\bl_\bi_\bc.
+
+OpenBSD August 21, 2014 OpenBSD
--- /dev/null
+CD-PUNCT(1) - General Commands Manual
+
+# NAME
+
+**Cd-punct** - punctuation handling by the Cd macro
+
+# DESCRIPTION
+
+closing punctuation
+**a**)
+only one
+)
+only more than one
+))
+middle
+**a**) **z**
+start
+) **z**
+dot
+. **z**
+comma
+, **z**
+semicolon
+; **z**
+colon
+: **z**
+quest
+? **z**
+excl
+! **z**
+paren
+) **z**
+bracket
+] **z**
+bar
+| **m**
+op paren
+(**a**
+op bracket
+\[**a**
+
+quoted punctuation:
+**a** (**b** | **c**) **d**. *italic*.
+
+OpenBSD - August 21, 2014
-# $OpenBSD: Makefile,v 1.5 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.6 2017/05/30 16:21:08 schwarze Exp $
-REGRESS_TARGETS = basic font noarg
+REGRESS_TARGETS = basic font noarg punct
LINT_TARGETS = noarg
.include <bsd.regress.mk>
--- /dev/null
+.Dd August 21, 2014
+.Dt Cm-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Cm-punct
+.Nd punctuation handling by the Cm macro
+.Sh DESCRIPTION
+closing punctuation
+.Cm a )
+only one
+.Cm )
+only more than one
+.Cm ) )
+middle
+.Cm a ) z
+start
+.Cm ) z
+dot
+.Cm . z
+comma
+.Cm , z
+semicolon
+.Cm ; z
+colon
+.Cm : z
+quest
+.Cm ? z
+excl
+.Cm ! z
+paren
+.Cm ) z
+bracket
+.Cm ] z
+bar
+.Cm | m
+op paren
+.Cm ( a
+op bracket
+.Cm [ a
+.Pp
+quoted punctuation:
+.Cm a "(" b "|" c ")" d "." "Em" italic .
--- /dev/null
+Cm-PUNCT(1) General Commands Manual Cm-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ C\bCm\bm-\b-p\bpu\bun\bnc\bct\bt - punctuation handling by the Cm macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ closing punctuation a\ba) only one ) only more than one )) middle a\ba) z\bz start
+ ) z\bz dot . z\bz comma , z\bz semicolon ; z\bz colon : z\bz quest ? z\bz excl ! z\bz paren )
+ z\bz bracket ] z\bz bar | m\bm op paren (a\ba op bracket [a\ba
+
+ quoted punctuation: a\ba (b\bb | c\bc) d\bd. _\bi_\bt_\ba_\bl_\bi_\bc.
+
+OpenBSD August 21, 2014 OpenBSD
--- /dev/null
+Cm-PUNCT(1) - General Commands Manual
+
+# NAME
+
+**Cm-punct** - punctuation handling by the Cm macro
+
+# DESCRIPTION
+
+closing punctuation
+**a**)
+only one
+)
+only more than one
+))
+middle
+**a**) **z**
+start
+) **z**
+dot
+. **z**
+comma
+, **z**
+semicolon
+; **z**
+colon
+: **z**
+quest
+? **z**
+excl
+! **z**
+paren
+) **z**
+bracket
+] **z**
+bar
+| **m**
+op paren
+(**a**
+op bracket
+\[**a**
+
+quoted punctuation:
+**a** (**b** | **c**) **d**. *italic*.
+
+OpenBSD - August 21, 2014
An empty
.Dq
and a full
-.Dq user@host
+.Dq "(" user@host
quotation.
And another
-.Do full Dc one .
+.Do "(" full Dc one "Sy" bold .
D\bDq\bq-\b-e\bem\bmp\bpt\bty\by - empty implicit enclosure macros
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- An empty "" and a full "user@host" quotation. And another "full" one.
+ An empty "" and a full ("user@host" quotation. And another ("full" one
+ b\bbo\bol\bld\bd.
OpenBSD October 21, 2010 OpenBSD
An empty
""
and a full
-"user@host"
+("user@host"
quotation.
And another
-"full" one.
+("full" one **bold**.
OpenBSD - October 21, 2010
macro.
.Pp
And with
-.Dv some \\fIembedded\\fP string .
+.Dv some \\fIembedded\\fP string ";" "Sy" bold .
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
The BUFSIZ macro.
- And with some _\be_\bm_\bb_\be_\bd_\bd_\be_\bd string.
+ And with some _\be_\bm_\bb_\be_\bd_\bd_\be_\bd string; b\bbo\bol\bld\bd.
OpenBSD October 21, 2011 OpenBSD
macro.
And with
-`some embedded string`.
+`some embedded string`; **bold**.
OpenBSD - October 21, 2011
.Sh DESCRIPTION
Leading punctuation:
.Em ( b
-.Em [ b
+.Em "[" b
.Em | b
.Em . b
.Em , b
.Em ? b
.Em ! b
.Em ) b
-.Em ] b
+.Em "]" b
.Pp
Trailing punctuation:
.Em a (
.Em a :
.Em a ?
.Em a !
-.Em a )
+.Em a ")"
.Em a ]
.Pp
Middle punctuation:
.Em a ( b
.Em a [ b
-.Em a | b
+.Em a "|" b
.Em a . b
.Em a , b
.Em a ; b
-.Em a : b
+.Em a ":" b
.Em a ? b
.Em a ! b
.Em a ) b
.Em [ ( arg ) ] .
.Pp
Quoted:
-.Em "a . b Nm"
+.Em "a . b Nm" "Sy" bold
.Em ". b Nm"
+.Em "."
Multiple punctuation: [(_\ba_\br_\bg)].
- Quoted: _\ba _\b. _\bb _\bN_\bm _\b. _\bb _\bN_\bm
+ Quoted: _\ba _\b. _\bb _\bN_\bm b\bbo\bol\bld\bd _\b. _\bb _\bN_\bm .
OpenBSD November 17, 2014 OpenBSD
mandoc: punct.in:71:7: WARNING: skipping empty macro: Em
mandoc: punct.in:74:7: WARNING: skipping empty macro: Em
mandoc: punct.in:75:7: WARNING: skipping empty macro: Em
+mandoc: punct.in:83:2: WARNING: skipping empty macro: Em
\[(*arg*)].
Quoted:
-*a . b Nm*
+*a . b Nm* **bold**
*. b Nm*
+.
OpenBSD - November 17, 2014
all
.Eo <<
text
-.Ec >>
+.Ec >> "Sy" bold
completely empty
.No prefix Ns Eo
.Ec
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
completely empty closing only >> content only text opening only << no
- opening text>> no content <<>> no closing <<text all <<text>> completely
- empty prefix closing only prefix>> no opening prefixtext>> no closing
- <<prefix stray closing
+ opening text>> no content <<>> no closing <<text all <<text>> b\bbo\bol\bld\bd
+ completely empty prefix closing only prefix>> no opening prefixtext>> no
+ closing <<prefix stray closing
>> end of file
OpenBSD February 1, 2015 OpenBSD
no closing
<<text
all
-<<text>>
+<<text>> **bold**
completely empty
prefixclosing only
prefix>>
initial text
.En enclosed words with Fl flags
middle text
-.En more enclosed words
+.En "(" more enclosed words
final text
.Pp
.Es
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
no prior Es
- surplus initial text <<enclosed words with -\b-f\bfl\bla\bag\bgs\bs>> middle text <<more
+ surplus initial text <<enclosed words with -\b-f\bfl\bla\bag\bgs\bs>> middle text (<<more
enclosed words>> final text
initial text after empty Es final text
initial text
<<enclosed words with **-flags**>>
middle text
-<<more enclosed words>>
+(<<more enclosed words>>
final text
initial text
.Nd error constant macro without an argument
.Sh DESCRIPTION
with error:
-.Er ENOENT
+.Er ENOENT ";" "Sy" bold ;
no error:
.Er
end of test document
E\bEr\br-\b-n\bno\boa\bar\brg\bg - error constant macro without an argument
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- with error: ENOENT no error: end of test document
+ with error: ENOENT; b\bbo\bol\bld\bd; no error: end of test document
OpenBSD January 19, 2011 OpenBSD
# DESCRIPTION
with error:
-`ENOENT`
+`ENOENT`; **bold**;
no error:
end of test document
variable.
.Pp
And with
-.Ev some \\fIembedded\\fP string .
+.Ev some \\fIembedded\\fP string ";" "Sy" bold.
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
The PATH variable.
- And with some _\be_\bm_\bb_\be_\bd_\bd_\be_\bd string.
+ And with some _\be_\bm_\bb_\be_\bd_\bd_\be_\bd string; b\bbo\bol\bld\bd.\b.
OpenBSD October 21, 2011 OpenBSD
variable.
And with
-`some embedded string`.
+`some embedded string`; **bold.**
OpenBSD - October 21, 2011
.Fl ( a
op bracket
.Fl [ a
+.Pp
+quoted punctuation:
+.Fl a "(" b "|" c ")" d "," "Em" italic .
excl -\b-! -\b-z\bz paren -\b-) -\b-z\bz bracket -\b-] -\b-z\bz bar -\b- | -\b-m\bm op paren (-\b-a\ba op bracket
[-\b-a\ba
+ quoted punctuation: -\b-a\ba (-\b-b\bb | -\b-c\bc) -\b-d\bd, _\bi_\bt_\ba_\bl_\bi_\bc.
+
OpenBSD August 21, 2014 OpenBSD
op bracket
\[**-a**
+quoted punctuation:
+**-a** (**-b** | **-c**) **-d**, *italic*.
+
OpenBSD - August 21, 2014
.Pp
.Fo function
.Fa prefix\\fBbold\\fPsuffix
-.Fc
+.Fc "Sy" bold
trailing text
p\bpr\bre\bef\bfi\bix\bx_\bn_\ba_\bm_\bes\bsu\buf\bff\bfi\bix\bx(_\bt_\by_\bp_\be _\ba_\br_\bg) trailing text
- f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bp_\br_\be_\bf_\bi_\bxb\bbo\bol\bld\bd_\bs_\bu_\bf_\bf_\bi_\bx) trailing text
+ f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bp_\br_\be_\bf_\bi_\bxb\bbo\bol\bld\bd_\bs_\bu_\bf_\bf_\bi_\bx) b\bbo\bol\bld\bd trailing text
OpenBSD July 9, 2012 OpenBSD
**prefix*name*suffix**(*type arg*)
trailing text
-**function**(*prefix**bold**suffix*)
+**function**(*prefix**bold**suffix*) **bold**
trailing text
OpenBSD - July 9, 2012
-.Dd November 20, 2014
+.Dd May 20, 2017
.Dt FO-PUNCT 1
.Os OpenBSD
.Sh NAME
.Nm Fo-punct
-.Nd punctuation on function name input lines
+.Nd punctuation on function input lines
.Sh DESCRIPTION
.Ft double
-.Fn sin , cos
+.Fn sin "," cos "Em" italic
+.Pp
+.Fa x "," y "Sy" bold
+.Pp
+.Ft int "," float "Sy" bold
FO-PUNCT(1) General Commands Manual FO-PUNCT(1)
N\bNA\bAM\bME\bE
- F\bFo\bo-\b-p\bpu\bun\bnc\bct\bt - punctuation on function name input lines
+ F\bFo\bo-\b-p\bpu\bun\bnc\bct\bt - punctuation on function input lines
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(), cos
+ _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(), cos _\bi_\bt_\ba_\bl_\bi_\bc
-OpenBSD November 20, 2014 OpenBSD
+ _\bx, _\by b\bbo\bol\bld\bd
+
+ _\bi_\bn_\bt, _\bf_\bl_\bo_\ba_\bt b\bbo\bol\bld\bd
+
+OpenBSD May 20, 2017 OpenBSD
# NAME
-**Fo-punct** - punctuation on function name input lines
+**Fo-punct** - punctuation on function input lines
# DESCRIPTION
*double*
-**sin**(), cos
+**sin**(), cos *italic*
-OpenBSD - November 20, 2014
+*x*, *y* **bold**
+
+*int*, *float* **bold**
+
+OpenBSD - May 20, 2017
-# $OpenBSD: Makefile,v 1.6 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.7 2017/05/30 16:21:08 schwarze Exp $
-REGRESS_TARGETS = noarg font
+REGRESS_TARGETS = font noarg punct
LINT_TARGETS = noarg
.include <bsd.regress.mk>
--- /dev/null
+.Dd August 21, 2014
+.Dt Ic-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ic-punct
+.Nd punctuation handling by the Ic macro
+.Sh DESCRIPTION
+closing punctuation
+.Ic a )
+only one
+.Ic )
+only more than one
+.Ic ) )
+middle
+.Ic a ) z
+start
+.Ic ) z
+dot
+.Ic . z
+comma
+.Ic , z
+semicolon
+.Ic ; z
+colon
+.Ic : z
+quest
+.Ic ? z
+excl
+.Ic ! z
+paren
+.Ic ) z
+bracket
+.Ic ] z
+bar
+.Ic | m
+op paren
+.Ic ( a
+op bracket
+.Ic [ a
+.Pp
+quoted punctuation:
+.Ic a "(" b "|" c ")" d "," "Em" italic .
--- /dev/null
+Ic-PUNCT(1) General Commands Manual Ic-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ I\bIc\bc-\b-p\bpu\bun\bnc\bct\bt - punctuation handling by the Ic macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ closing punctuation a\ba) only one ) only more than one )) middle a\ba) z\bz start
+ ) z\bz dot . z\bz comma , z\bz semicolon ; z\bz colon : z\bz quest ? z\bz excl ! z\bz paren )
+ z\bz bracket ] z\bz bar | m\bm op paren (a\ba op bracket [a\ba
+
+ quoted punctuation: a\ba (b\bb | c\bc) d\bd, _\bi_\bt_\ba_\bl_\bi_\bc.
+
+OpenBSD August 21, 2014 OpenBSD
--- /dev/null
+Ic-PUNCT(1) - General Commands Manual
+
+# NAME
+
+**Ic-punct** - punctuation handling by the Ic macro
+
+# DESCRIPTION
+
+closing punctuation
+**a**)
+only one
+)
+only more than one
+))
+middle
+**a**) **z**
+start
+) **z**
+dot
+. **z**
+comma
+, **z**
+semicolon
+; **z**
+colon
+: **z**
+quest
+? **z**
+excl
+! **z**
+paren
+) **z**
+bracket
+] **z**
+bar
+| **m**
+op paren
+(**a**
+op bracket
+\[**a**
+
+quoted punctuation:
+**a** (**b** | **c**) **d**, *italic*.
+
+OpenBSD - August 21, 2014
.Nd changing the font inside the include macro
.Sh DESCRIPTION
normal text
-.In prefix\\fBheader\\fPsuffix
+.In prefix\\fBheader\\fPsuffix | after ":" punctuation "Sy" bold
trailing text
I\bIn\bn-\b-f\bfo\bon\bnt\bt - changing the font inside the include macro
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- normal text <_\bp_\br_\be_\bf_\bi_\bxh\bhe\bea\bad\bde\ber\br_\bs_\bu_\bf_\bf_\bi_\bx> trailing text
+ normal text <_\bp_\br_\be_\bf_\bi_\bxh\bhe\bea\bad\bde\ber\br_\bs_\bu_\bf_\bf_\bi_\bx> | after: punctuation b\bbo\bol\bld\bd trailing text
OpenBSD July 9, 2012 OpenBSD
# DESCRIPTION
normal text
-<*prefix**header**suffix*>
+<*prefix**header**suffix*> | after: punctuation **bold**
trailing text
OpenBSD - July 9, 2012
.Sh DESCRIPTION
Leading punctuation:
.Li ( b
-.Li [ b
+.Li "[" b
.Li | b
.Li . b
.Li , b
.Li a [
.Li a |
.Li a .
-.Li a ,
+.Li a ","
.Li a ;
.Li a :
.Li a ?
.Li a | b
.Li a . b
.Li a , b
-.Li a ; b
+.Li a ";" b
.Li a : b
.Li a ? b
.Li a ! b
-.Li a ) b
+.Li a ")" b
.Li a ] b
.Pp
Isolated punctuation:
.Li [ ( arg ) ] .
.Pp
Quoted:
-.Li "a . b Nm"
+.Li "a . b Nm" "Sy" bold
.Li ". b Nm"
.Li "."
Multiple punctuation: [(arg)].
- Quoted: a . b Nm . b Nm .
+ Quoted: a . b Nm b\bbo\bol\bld\bd . b Nm .
OpenBSD November 17, 2014 OpenBSD
mandoc: punct.in:71:7: WARNING: skipping empty macro: Li
mandoc: punct.in:74:7: WARNING: skipping empty macro: Li
mandoc: punct.in:75:7: WARNING: skipping empty macro: Li
+mandoc: punct.in:83:2: WARNING: skipping empty macro: Li
\[(`arg`)].
Quoted:
-`a . b Nm`
+`a . b Nm` **bold**
`. b Nm`
-`.`
+.
OpenBSD - November 17, 2014
.Nd changing fonts inside the mathematical symbol macro
.Sh DESCRIPTION
normal text
-.Ms bold\\fIemphasis\\fPback | after : punctuation
+.Ms bold\\fIemphasis\\fPback | after ":" punctuation "Em" italic
trailing text
M\bMs\bs-\b-f\bfo\bon\bnt\bt - changing fonts inside the mathematical symbol macro
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- normal text b\bbo\bol\bld\bd_\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bba\bac\bck\bk | a\baf\bft\bte\ber\br: p\bpu\bun\bnc\bct\btu\bua\bat\bti\bio\bon\bn trailing text
+ normal text b\bbo\bol\bld\bd_\be_\bm_\bp_\bh_\ba_\bs_\bi_\bsb\bba\bac\bck\bk | a\baf\bft\bte\ber\br: p\bpu\bun\bnc\bct\btu\bua\bat\bti\bio\bon\bn _\bi_\bt_\ba_\bl_\bi_\bc trailing text
OpenBSD November 20, 2014 OpenBSD
# DESCRIPTION
normal text
-**bold*emphasis*back** | **after**: **punctuation**
+**bold*emphasis*back** | **after**: **punctuation** *italic*
trailing text
OpenBSD - November 20, 2014
.Nd mailto
.Sh DESCRIPTION
Please send mail to
-.Mt schwarze@openbsd.org .
+.Mt schwarze@openbsd.org ";" "Sy" bold .
.Pp
Do not send mail to
.Mt .
M\bMt\bt-\b-s\bsi\bim\bmp\bpl\ble\be - mailto
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- Please send mail to _\bs_\bc_\bh_\bw_\ba_\br_\bz_\be_\b@_\bo_\bp_\be_\bn_\bb_\bs_\bd_\b._\bo_\br_\bg.
+ Please send mail to _\bs_\bc_\bh_\bw_\ba_\br_\bz_\be_\b@_\bo_\bp_\be_\bn_\bb_\bs_\bd_\b._\bo_\br_\bg; b\bbo\bol\bld\bd.
Do not send mail to _\b~.
# DESCRIPTION
Please send mail to
-[schwarze@openbsd.org](mailto:schwarze@openbsd.org).
+[schwarze@openbsd.org](mailto:schwarze@openbsd.org); **bold**.
Do not send mail to
[~](mailto:~).
.Nd punctuation after the normal macro
.Sh DESCRIPTION
Leading punctuation:
-.No ( b
+.No "(" b
.No [ b
.No | b
.No . b
.No a ?
.No a !
.No a )
-.No a ]
+.No a "]"
.Pp
Middle punctuation:
.No a ( b
-.No a [ b
+.No a "[" b
.No a | b
.No a . b
.No a , b
.No a ; b
.No a : b
-.No a ? b
+.No a "?" b
.No a ! b
.No a ) b
.No a ] b
.No [ ( arg ) ] .
.Pp
Quoted:
-.No "a . b Nm"
+.No "a . b Nm" "Sy" bold
.No ". b Nm"
.No "."
Multiple punctuation: [(arg)].
- Quoted: a . b Nm . b Nm .
+ Quoted: a . b Nm b\bbo\bol\bld\bd . b Nm .
OpenBSD November 17, 2014 OpenBSD
mandoc: punct.in:71:7: WARNING: skipping empty macro: No
mandoc: punct.in:74:7: WARNING: skipping empty macro: No
mandoc: punct.in:75:7: WARNING: skipping empty macro: No
+mandoc: punct.in:83:2: WARNING: skipping empty macro: No
\[(arg)].
Quoted:
-a . b Nm
+a . b Nm **bold**
. b Nm
.
Normal words:
.No no Ns ns No no
Opening punctuation:
-.No no Ns ( ns No no
+.No no Ns "(" ns No no
Closing punctuation:
-.No no Ns ns ) No no
+.No no "Ns" ns ")" No no
.Nd punctuation handling by the Oo macro
.Sh DESCRIPTION
at the beginning:
-.Oo ( z
+.Oo "(" z
.Oo | z
.Oo . z
-.Oc Oc Oc
+.Oc Oc "Sy" bold Oc
.Pp
in the middle:
-.Oo a ( z
+.Oo a "(" z
.Oo a | z
.Oo a . z
.Oc Oc Oc
O\bOo\bo-\b-p\bpu\bun\bnc\bct\bt - punctuation handling by the Oo macro
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- at the beginning: ([z [| z [. z]]]
+ at the beginning: ([z [| z [. z]] b\bbo\bol\bld\bd]
in the middle: [a (z [a | z [a. z]]]
at the beginning:
(\[z
\[| z
-\[. z]]]
+\[. z]] **bold**]
in the middle:
\[a (z
.Nd punctuation handling by the Op macro
.Sh DESCRIPTION
at the beginning:
-.Op ( z
+.Op "(" z
.Op | z
.Op . z
.Pp
in the middle:
-.Op a ( z
+.Op a "(" z
.Op a | z
.Op a . z
.Pp
.Pa ( a
op bracket
.Pa [ a
+.Pp
+quoted punctuation:
+.Pa a "(" b "|" c ")" d "," "Sy" bold .
start _\b~) _\bz dot _\b~. _\bz comma _\b~, _\bz semicolon _\b~; _\bz colon _\b~: _\bz quest _\b~? _\bz excl
_\b~! _\bz paren _\b~) _\bz bracket _\b~] _\bz bar | _\bm op paren (_\ba op bracket [_\ba
+ quoted punctuation: _\ba (_\bb | _\bc) _\bd, b\bbo\bol\bld\bd.
+
OpenBSD August 21, 2014 OpenBSD
op bracket
\[*a*
+quoted punctuation:
+*a* (*b* | *c*) *d*, **bold**.
+
OpenBSD - August 21, 2014
An empty
.Qq
and a full
-.Qq user@host
+.Qq "(" user@host
quotation.
And another
-.Qo full Qc one .
+.Qo "(" full Qc one "Sy" bold .
Q\bQq\bq-\b-e\bem\bmp\bpt\bty\by - empty implicit enclosure macros
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- An empty "" and a full "user@host" quotation. And another "full" one.
+ An empty "" and a full ("user@host" quotation. And another ("full" one
+ b\bbo\bol\bld\bd.
OpenBSD October 21, 2010 OpenBSD
An empty
""
and a full
-"user@host"
+("user@host"
quotation.
And another
-"full" one.
+("full" one **bold**.
OpenBSD - October 21, 2010
An empty
.Sq
and a full
-.Sq user@host
+.Sq "(" user@host
quotation.
And another
-.So full Sc one .
+.So "(" full Sc one "Sy" bold .
S\bSq\bq-\b-e\bem\bmp\bpt\bty\by - empty implicit enclosure macros
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- An empty `' and a full `user@host' quotation. And another `full' one.
+ An empty `' and a full (`user@host' quotation. And another (`full' one
+ b\bbo\bol\bld\bd.
OpenBSD October 21, 2010 OpenBSD
An empty
''
and a full
-'user@host'
+('user@host'
quotation.
And another
-'full' one.
+('full' one **bold**.
OpenBSD - October 21, 2010
.Nd the standard macro calling other macros
.Sh STANDARDS
calling another macro:
-.St Fl called
+.St "Fl" called
.Pp
valid argument:
.St -p1003.1-2004
.Nd internal cross reference without a target
.Sh DESCRIPTION
with target:
-.Sx DESCRIPTION
+.Sx DESCRIPTION ";" "Em" italic
no target:
.Sx
end of test document
S\bSx\bx-\b-n\bno\boa\bar\brg\bg - internal cross reference without a target
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- with target: _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN no target: end of test document
+ with target: _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN; _\bi_\bt_\ba_\bl_\bi_\bc no target: end of test document
OpenBSD January 19, 2011 OpenBSD
# DESCRIPTION
with target:
-*DESCRIPTION*
+*DESCRIPTION*; *italic*
no target:
end of test document
.Sh DESCRIPTION
Leading punctuation:
.Sy ( b
-.Sy [ b
+.Sy "[" b
.Sy | b
.Sy . b
.Sy , b
.Sy a :
.Sy a ?
.Sy a !
-.Sy a )
+.Sy a ")"
.Sy a ]
.Pp
Middle punctuation:
.Sy a ( b
.Sy a [ b
-.Sy a | b
+.Sy a "|" b
.Sy a . b
.Sy a , b
.Sy a ; b
.Sy [ ( arg ) ] .
.Pp
Quoted:
-.Sy "a . b Nm"
+.Sy "a . b Nm" "Em" italic
.Sy ". b Nm"
+.Sy "."
Multiple punctuation: [(a\bar\brg\bg)].
- Quoted: a\ba .\b. b\bb N\bNm\bm .\b. b\bb N\bNm\bm
+ Quoted: a\ba .\b. b\bb N\bNm\bm _\bi_\bt_\ba_\bl_\bi_\bc .\b. b\bb N\bNm\bm .
OpenBSD November 17, 2014 OpenBSD
mandoc: punct.in:71:7: WARNING: skipping empty macro: Sy
mandoc: punct.in:74:7: WARNING: skipping empty macro: Sy
mandoc: punct.in:75:7: WARNING: skipping empty macro: Sy
+mandoc: punct.in:83:2: WARNING: skipping empty macro: Sy
\[(**arg**)].
Quoted:
-**a . b Nm**
+**a . b Nm** *italic*
**. b Nm**
+.
OpenBSD - November 17, 2014
.Nd trade name macro without argument
.Sh DESCRIPTION
with argument
-.Tn IBM
+.Tn IBM "," "Em" italic
no argument
.Tn
end of test document
T\bTn\bn-\b-n\bno\boa\bar\brg\bg - trade name macro without argument
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- with argument IBM no argument end of test document
+ with argument IBM, _\bi_\bt_\ba_\bl_\bi_\bc no argument end of test document
OpenBSD January 19, 2011 OpenBSD
# DESCRIPTION
with argument
-`IBM`
+`IBM`, *italic*
no argument
end of test document
-# $OpenBSD: Makefile,v 1.5 2017/03/08 22:53:36 schwarze Exp $
+# $OpenBSD: Makefile,v 1.6 2017/05/30 16:21:08 schwarze Exp $
-REGRESS_TARGETS = basic font noarg
+REGRESS_TARGETS = basic font noarg punct
LINT_TARGETS = noarg
.include <bsd.regress.mk>
--- /dev/null
+.Dd August 21, 2014
+.Dt AR-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Va-punct
+.Nd punctuation handling by the Va macro
+.Sh DESCRIPTION
+closing punctuation
+.Va a )
+only one
+.Va )
+only more than one
+.Va ) )
+middle
+.Va a ) z
+start
+.Va ) z
+dot
+.Va . z
+comma
+.Va , z
+semicolon
+.Va ; z
+colon
+.Va : z
+quest
+.Va ? z
+excl
+.Va ! z
+paren
+.Va ) z
+bracket
+.Va ] z
+bar
+.Va | m
+op paren
+.Va ( a
+op bracket
+.Va [ a
+.Pp
+quoted punctuation:
+.Va a "(" b "|" c ")" d "," "Sy" bold .
--- /dev/null
+AR-PUNCT(1) General Commands Manual AR-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+ V\bVa\ba-\b-p\bpu\bun\bnc\bct\bt - punctuation handling by the Va macro
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ closing punctuation _\ba) only one ) only more than one )) middle _\ba) _\bz start
+ ) _\bz dot . _\bz comma , _\bz semicolon ; _\bz colon : _\bz quest ? _\bz excl ! _\bz paren )
+ _\bz bracket ] _\bz bar | _\bm op paren (_\ba op bracket [_\ba
+
+ quoted punctuation: _\ba (_\bb | _\bc) _\bd, b\bbo\bol\bld\bd.
+
+OpenBSD August 21, 2014 OpenBSD
--- /dev/null
+AR-PUNCT(1) - General Commands Manual
+
+# NAME
+
+**Va-punct** - punctuation handling by the Va macro
+
+# DESCRIPTION
+
+closing punctuation
+*a*)
+only one
+)
+only more than one
+))
+middle
+*a*) *z*
+start
+) *z*
+dot
+. *z*
+comma
+, *z*
+semicolon
+; *z*
+colon
+: *z*
+quest
+? *z*
+excl
+! *z*
+paren
+) *z*
+bracket
+] *z*
+bar
+| *m*
+op paren
+(*a*
+op bracket
+\[*a*
+
+quoted punctuation:
+*a* (*b* | *c*) *d*, **bold**.
+
+OpenBSD - August 21, 2014
One single
.Xr echo 1
is fine, and so is an
-.Xr echo 1 followed by something else.
+.Xr echo 1 followed by something "Em" else .
.Pp
But listen for multiple
.Xr echo 1 Ns s .
.Pp
A call, an
-.Xr echo 1 , and
+.Xr "(" echo 1 ")" , and
another
.Xr echo 1 .
.Pp
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
One single echo(1) is fine, and so is an echo(1) followed by something
- else.
+ _\be_\bl_\bs_\be.
But listen for multiple echo(1)s.
- A call, an echo(1), and another echo(1).
+ A call, an (echo(1)), and another echo(1).
Finally, half an echo, no echo and no echo at all.
One single
echo(1)
is fine, and so is an
-echo(1) followed by something else.
+echo(1) followed by something *else*.
But listen for multiple
echo(1)s.
A call, an
-echo(1), and
+(echo(1)), and
another
echo(1).
-/* $OpenBSD: libmdoc.h,v 1.82 2017/04/29 12:43:55 schwarze Exp $ */
+/* $OpenBSD: libmdoc.h,v 1.83 2017/05/30 16:21:07 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2013, 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
ARGS_EOLN, /* end-of-line */
ARGS_WORD, /* normal word */
ARGS_PUNCT, /* series of punctuation */
- ARGS_QWORD, /* quoted word */
ARGS_PHRASE /* Bl -column phrase */
};
-/* $OpenBSD: mdoc_argv.c,v 1.70 2017/05/05 15:16:25 schwarze Exp $ */
+/* $OpenBSD: mdoc_argv.c,v 1.71 2017/05/30 16:21:07 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2012, 2014-2017 Ingo Schwarze <schwarze@openbsd.org>
if ( ! (mdoc->flags & MDOC_PHRASE))
mandoc_msg(MANDOCERR_ARG_QUOTE,
mdoc->parse, line, *pos, NULL);
- return ARGS_QWORD;
+ return ARGS_WORD;
}
mdoc->flags &= ~MDOC_PHRASELIT;
buf[(*pos)++] = '\0';
if ('\0' == buf[*pos])
- return ARGS_QWORD;
+ return ARGS_WORD;
while (' ' == buf[*pos])
(*pos)++;
mandoc_msg(MANDOCERR_SPACE_EOL, mdoc->parse,
line, *pos, NULL);
- return ARGS_QWORD;
+ return ARGS_WORD;
}
p = &buf[*pos];
-/* $OpenBSD: mdoc_macro.c,v 1.180 2017/05/05 15:16:25 schwarze Exp $ */
+/* $OpenBSD: mdoc_macro.c,v 1.181 2017/05/30 16:21:07 schwarze Exp $ */
/*
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2012-2017 Ingo Schwarze <schwarze@openbsd.org>
{ blk_full, MDOC_PARSED | MDOC_JOIN }, /* It */
{ in_line, MDOC_CALLABLE | MDOC_PARSED }, /* Ad */
{ in_line, MDOC_CALLABLE | MDOC_PARSED | MDOC_JOIN }, /* An */
- { in_line_argn, MDOC_CALLABLE | MDOC_PARSED | MDOC_JOIN }, /* Ap */
+ { in_line_argn, MDOC_CALLABLE | MDOC_PARSED |
+ MDOC_IGNDELIM | MDOC_JOIN }, /* Ap */
{ in_line, MDOC_CALLABLE | MDOC_PARSED }, /* Ar */
{ in_line, MDOC_CALLABLE | MDOC_PARSED | MDOC_JOIN }, /* Cd */
{ in_line, MDOC_CALLABLE | MDOC_PARSED }, /* Cm */
if (ac == ARGS_PUNCT || ac == ARGS_EOLN)
break;
- ntok = ac == ARGS_QWORD ? TOKEN_NONE :
- lookup(mdoc, tok, line, lastarg, p);
+ ntok = lookup(mdoc, tok, line, lastarg, p);
if (ntok == TOKEN_NONE) {
dword(mdoc, line, lastarg, p, DELIM_MAX,
break;
}
- ntok = (ac == ARGS_QWORD || (tok == MDOC_Fn && !cnt)) ?
+ ntok = (tok == MDOC_Fn && !cnt) ?
TOKEN_NONE : lookup(mdoc, tok, line, la, p);
/*
}
/*
- * Non-quote-enclosed punctuation. Set up our scope, if
- * a word; rewind the scope, if a delimiter; then append
- * the word.
+ * Handle punctuation. Set up our scope, if a word;
+ * rewind the scope, if a delimiter; then append the word.
*/
- d = ac == ARGS_QWORD ? DELIM_NONE : mdoc_isdelim(p);
-
- if (DELIM_NONE != d) {
+ if ((d = mdoc_isdelim(p)) != DELIM_NONE) {
/*
* If we encounter closing punctuation, no word
* has been emitted, no scope is open, and we're
* Close out our scope, if one is open, before
* any punctuation.
*/
- if (scope)
+ if (scope && tok != MDOC_Lk) {
rew_elem(mdoc, tok);
- scope = 0;
- if (tok == MDOC_Fn)
- mayopen = 0;
+ scope = 0;
+ if (tok == MDOC_Fn)
+ mayopen = 0;
+ }
} else if (mayopen && !scope) {
mdoc_elem_alloc(mdoc, line, ppos, tok, arg);
scope = 1;
if (head == NULL &&
ac != ARGS_PHRASE &&
- ac != ARGS_QWORD &&
mdoc_isdelim(p) == DELIM_OPEN) {
dword(mdoc, line, la, p, DELIM_OPEN, 0);
continue;
if (ac == ARGS_EOLN || ac == ARGS_PUNCT)
break;
- if (body == NULL && ac != ARGS_QWORD &&
- mdoc_isdelim(p) == DELIM_OPEN) {
+ if (body == NULL && mdoc_isdelim(p) == DELIM_OPEN) {
dword(mdoc, line, la, p, DELIM_OPEN, 0);
continue;
}
/* Flush out leading punctuation. */
- if (head == NULL && ac != ARGS_QWORD &&
- mdoc_isdelim(p) == DELIM_OPEN) {
+ if (head == NULL && mdoc_isdelim(p) == DELIM_OPEN) {
dword(mdoc, line, la, p, DELIM_OPEN, 0);
continue;
}
state = -2;
}
- ntok = (ac == ARGS_QWORD || (tok == MDOC_Pf && state == 0)) ?
+ ntok = (tok == MDOC_Pf && state == 0) ?
TOKEN_NONE : lookup(mdoc, tok, line, la, p);
if (ntok != TOKEN_NONE) {
break;
}
- if (ac == ARGS_QWORD ||
- mdoc_macros[tok].flags & MDOC_IGNDELIM ||
+ if (mdoc_macros[tok].flags & MDOC_IGNDELIM ||
mdoc_isdelim(p) == DELIM_NONE) {
if (state == -1) {
mdoc_elem_alloc(mdoc, line, ppos, tok, arg);