style message about missing blank before trailing delimiter;
authorschwarze <schwarze@openbsd.org>
Sat, 10 Jun 2017 01:48:31 +0000 (01:48 +0000)
committerschwarze <schwarze@openbsd.org>
Sat, 10 Jun 2017 01:48:31 +0000 (01:48 +0000)
inspired by mdoclint(1), and jmc@ considers it useful

156 files changed:
regress/usr.bin/mandoc/mdoc/Ad/noarg.in
regress/usr.bin/mandoc/mdoc/Ad/noarg.out_ascii
regress/usr.bin/mandoc/mdoc/Ad/noarg.out_lint
regress/usr.bin/mandoc/mdoc/Ad/noarg.out_markdown
regress/usr.bin/mandoc/mdoc/An/break.in
regress/usr.bin/mandoc/mdoc/An/break.out_lint
regress/usr.bin/mandoc/mdoc/Aq/Makefile
regress/usr.bin/mandoc/mdoc/Aq/empty.in
regress/usr.bin/mandoc/mdoc/Aq/empty.out_ascii
regress/usr.bin/mandoc/mdoc/Aq/empty.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Aq/empty.out_markdown
regress/usr.bin/mandoc/mdoc/Aq/empty.out_utf8
regress/usr.bin/mandoc/mdoc/Ar/Makefile
regress/usr.bin/mandoc/mdoc/Ar/punct.in
regress/usr.bin/mandoc/mdoc/Ar/punct.out_ascii
regress/usr.bin/mandoc/mdoc/Ar/punct.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Ar/punct.out_markdown
regress/usr.bin/mandoc/mdoc/Bl/breakingIt.in
regress/usr.bin/mandoc/mdoc/Bl/breakingIt.out_ascii
regress/usr.bin/mandoc/mdoc/Bl/breakingIt.out_markdown
regress/usr.bin/mandoc/mdoc/Bl/noIt.in
regress/usr.bin/mandoc/mdoc/Bl/noIt.out_ascii
regress/usr.bin/mandoc/mdoc/Bl/noIt.out_markdown
regress/usr.bin/mandoc/mdoc/Brq/Makefile
regress/usr.bin/mandoc/mdoc/Brq/empty.in
regress/usr.bin/mandoc/mdoc/Brq/empty.out_ascii
regress/usr.bin/mandoc/mdoc/Brq/empty.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Brq/empty.out_markdown
regress/usr.bin/mandoc/mdoc/Bx/Makefile
regress/usr.bin/mandoc/mdoc/Bx/args.in
regress/usr.bin/mandoc/mdoc/Bx/args.out_ascii
regress/usr.bin/mandoc/mdoc/Bx/args.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Bx/args.out_markdown
regress/usr.bin/mandoc/mdoc/Cm/noarg.in
regress/usr.bin/mandoc/mdoc/Cm/noarg.out_ascii
regress/usr.bin/mandoc/mdoc/Cm/noarg.out_lint
regress/usr.bin/mandoc/mdoc/Cm/noarg.out_markdown
regress/usr.bin/mandoc/mdoc/Dq/Makefile
regress/usr.bin/mandoc/mdoc/Dq/empty.in
regress/usr.bin/mandoc/mdoc/Dq/empty.out_ascii
regress/usr.bin/mandoc/mdoc/Dq/empty.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Dq/empty.out_markdown
regress/usr.bin/mandoc/mdoc/Dv/noarg.in
regress/usr.bin/mandoc/mdoc/Dv/noarg.out_ascii
regress/usr.bin/mandoc/mdoc/Dv/noarg.out_lint
regress/usr.bin/mandoc/mdoc/Dv/noarg.out_markdown
regress/usr.bin/mandoc/mdoc/Em/punct.in
regress/usr.bin/mandoc/mdoc/Em/punct.out_ascii
regress/usr.bin/mandoc/mdoc/Em/punct.out_lint
regress/usr.bin/mandoc/mdoc/Em/punct.out_markdown
regress/usr.bin/mandoc/mdoc/Er/noarg.in
regress/usr.bin/mandoc/mdoc/Er/noarg.out_ascii
regress/usr.bin/mandoc/mdoc/Er/noarg.out_lint
regress/usr.bin/mandoc/mdoc/Er/noarg.out_markdown
regress/usr.bin/mandoc/mdoc/Ev/noarg.in
regress/usr.bin/mandoc/mdoc/Ev/noarg.out_ascii
regress/usr.bin/mandoc/mdoc/Ev/noarg.out_lint
regress/usr.bin/mandoc/mdoc/Ev/noarg.out_markdown
regress/usr.bin/mandoc/mdoc/Fl/Makefile
regress/usr.bin/mandoc/mdoc/Fl/punct.in
regress/usr.bin/mandoc/mdoc/Fl/punct.out_ascii
regress/usr.bin/mandoc/mdoc/Fl/punct.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Fl/punct.out_markdown
regress/usr.bin/mandoc/mdoc/Fo/Makefile
regress/usr.bin/mandoc/mdoc/Fo/punct.in
regress/usr.bin/mandoc/mdoc/Fo/punct.out_ascii
regress/usr.bin/mandoc/mdoc/Fo/punct.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Fo/punct.out_markdown
regress/usr.bin/mandoc/mdoc/Ic/noarg.in
regress/usr.bin/mandoc/mdoc/Ic/noarg.out_ascii
regress/usr.bin/mandoc/mdoc/Ic/noarg.out_lint
regress/usr.bin/mandoc/mdoc/Ic/noarg.out_markdown
regress/usr.bin/mandoc/mdoc/In/noarg.in
regress/usr.bin/mandoc/mdoc/In/noarg.out_ascii
regress/usr.bin/mandoc/mdoc/In/noarg.out_lint
regress/usr.bin/mandoc/mdoc/In/noarg.out_markdown
regress/usr.bin/mandoc/mdoc/Lb/badargs.in
regress/usr.bin/mandoc/mdoc/Lb/badargs.out_ascii
regress/usr.bin/mandoc/mdoc/Lb/badargs.out_lint
regress/usr.bin/mandoc/mdoc/Lb/badargs.out_markdown
regress/usr.bin/mandoc/mdoc/Li/punct.in
regress/usr.bin/mandoc/mdoc/Li/punct.out_ascii
regress/usr.bin/mandoc/mdoc/Li/punct.out_lint
regress/usr.bin/mandoc/mdoc/Li/punct.out_markdown
regress/usr.bin/mandoc/mdoc/Lk/noarg.in
regress/usr.bin/mandoc/mdoc/Lk/noarg.out_ascii
regress/usr.bin/mandoc/mdoc/Lk/noarg.out_lint
regress/usr.bin/mandoc/mdoc/Lk/noarg.out_markdown
regress/usr.bin/mandoc/mdoc/Ms/noarg.in
regress/usr.bin/mandoc/mdoc/Ms/noarg.out_ascii
regress/usr.bin/mandoc/mdoc/Ms/noarg.out_lint
regress/usr.bin/mandoc/mdoc/Ms/noarg.out_markdown
regress/usr.bin/mandoc/mdoc/Mt/Makefile
regress/usr.bin/mandoc/mdoc/Mt/simple.in
regress/usr.bin/mandoc/mdoc/Mt/simple.out_ascii
regress/usr.bin/mandoc/mdoc/Mt/simple.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Mt/simple.out_markdown
regress/usr.bin/mandoc/mdoc/Nm/Makefile
regress/usr.bin/mandoc/mdoc/Nm/punct.in
regress/usr.bin/mandoc/mdoc/Nm/punct.out_ascii
regress/usr.bin/mandoc/mdoc/Nm/punct.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Nm/punct.out_markdown
regress/usr.bin/mandoc/mdoc/No/punct.in
regress/usr.bin/mandoc/mdoc/No/punct.out_ascii
regress/usr.bin/mandoc/mdoc/No/punct.out_lint
regress/usr.bin/mandoc/mdoc/No/punct.out_markdown
regress/usr.bin/mandoc/mdoc/Oo/Makefile
regress/usr.bin/mandoc/mdoc/Oo/punct.in
regress/usr.bin/mandoc/mdoc/Oo/punct.out_ascii
regress/usr.bin/mandoc/mdoc/Oo/punct.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Oo/punct.out_markdown
regress/usr.bin/mandoc/mdoc/Op/Makefile
regress/usr.bin/mandoc/mdoc/Op/punct.in
regress/usr.bin/mandoc/mdoc/Op/punct.out_ascii
regress/usr.bin/mandoc/mdoc/Op/punct.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Op/punct.out_markdown
regress/usr.bin/mandoc/mdoc/Pa/Makefile
regress/usr.bin/mandoc/mdoc/Pa/punct.in
regress/usr.bin/mandoc/mdoc/Pa/punct.out_ascii
regress/usr.bin/mandoc/mdoc/Pa/punct.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Pa/punct.out_markdown
regress/usr.bin/mandoc/mdoc/Qq/Makefile
regress/usr.bin/mandoc/mdoc/Qq/empty.in
regress/usr.bin/mandoc/mdoc/Qq/empty.out_ascii
regress/usr.bin/mandoc/mdoc/Qq/empty.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Qq/empty.out_markdown
regress/usr.bin/mandoc/mdoc/Sq/Makefile
regress/usr.bin/mandoc/mdoc/Sq/empty.in
regress/usr.bin/mandoc/mdoc/Sq/empty.out_ascii
regress/usr.bin/mandoc/mdoc/Sq/empty.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Sq/empty.out_markdown
regress/usr.bin/mandoc/mdoc/Sy/punct.in
regress/usr.bin/mandoc/mdoc/Sy/punct.out_ascii
regress/usr.bin/mandoc/mdoc/Sy/punct.out_lint
regress/usr.bin/mandoc/mdoc/Sy/punct.out_markdown
regress/usr.bin/mandoc/mdoc/Ux/Makefile
regress/usr.bin/mandoc/mdoc/Ux/punct.in [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Ux/punct.out_ascii [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Ux/punct.out_lint [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Ux/punct.out_markdown [new file with mode: 0644]
regress/usr.bin/mandoc/mdoc/Va/noarg.in
regress/usr.bin/mandoc/mdoc/Va/noarg.out_ascii
regress/usr.bin/mandoc/mdoc/Va/noarg.out_lint
regress/usr.bin/mandoc/mdoc/Va/noarg.out_markdown
regress/usr.bin/mandoc/mdoc/Vt/noarg.in
regress/usr.bin/mandoc/mdoc/Vt/noarg.out_ascii
regress/usr.bin/mandoc/mdoc/Vt/noarg.out_lint
regress/usr.bin/mandoc/mdoc/Vt/noarg.out_markdown
regress/usr.bin/mandoc/mdoc/Xr/args.in
regress/usr.bin/mandoc/mdoc/Xr/args.out_ascii
regress/usr.bin/mandoc/mdoc/Xr/args.out_lint
regress/usr.bin/mandoc/mdoc/Xr/args.out_markdown
usr.bin/mandoc/mandoc.1
usr.bin/mandoc/mandoc.h
usr.bin/mandoc/mdoc_validate.c
usr.bin/mandoc/read.c

index 65f8167..b0881dc 100644 (file)
@@ -1,4 +1,4 @@
-.Dd January 19, 2011
+.Dd June 9, 2017
 .Dt AD-NOARG 1
 .Os OpenBSD
 .Sh NAME
@@ -6,7 +6,7 @@
 .Nd address macro without an argument
 .Sh DESCRIPTION
 with address:
-.Ad 0x3bc
+.Ad 0x3bc.
 no address:
 .Ad
 end of test document
index 6ad60d8..b0703dd 100644 (file)
@@ -4,6 +4,6 @@ N\bNA\bAM\bME\bE
      A\bAd\bd-\b-n\bno\boa\bar\brg\bg - address macro without an argument
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-     with address: _\b0_\bx_\b3_\bb_\bc no address: end of test document
+     with address: _\b0_\bx_\b3_\bb_\bc_\b. no address: end of test document
 
-OpenBSD                        January 19, 2011                        OpenBSD
+OpenBSD                          June 9, 2017                          OpenBSD
index 180985a..01d37fa 100644 (file)
@@ -1 +1,2 @@
 mandoc: noarg.in:11:2: WARNING: skipping empty macro: Ad
+mandoc: noarg.in:9:10: STYLE: no blank before trailing delimiter: Ad 0x3bc.
index de7b6c6..285a971 100644 (file)
@@ -7,8 +7,8 @@ AD-NOARG(1) - General Commands Manual
 # DESCRIPTION
 
 with address:
-*0x3bc*
+*0x3bc.*
 no address:
 end of test document
 
-OpenBSD - January 19, 2011
+OpenBSD - June 9, 2017
index ff96c54..70f5b1b 100644 (file)
@@ -40,7 +40,7 @@ trailing
 .Pp
 inline:
 .An Kristaps ","
-.An Ingo ,
+.An Ingo,
 and
 .An Joerg .
 empty
index 25622fd..7c88cce 100644 (file)
@@ -8,5 +8,6 @@ mandoc: break.in:36:2: WARNING: skipping empty macro: An
 mandoc: break.in:38:2: WARNING: skipping empty macro: An
 mandoc: break.in:39:14: WARNING: skipping duplicate argument: An -split
 mandoc: break.in:39:21: ERROR: skipping excess arguments: An ... bogus
+mandoc: break.in:43:9: STYLE: no blank before trailing delimiter: An Ingo,
 mandoc: break.in:47:2: WARNING: skipping empty macro: An
 mandoc: break.in:49:2: WARNING: skipping empty macro: An
index 5031fbe..9820113 100644 (file)
@@ -1,6 +1,7 @@
-# $OpenBSD: Makefile,v 1.5 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.6 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS        = author empty
 UTF8_TARGETS   = author empty
+LINT_TARGETS   = empty
 
 .include <bsd.regress.mk>
index 1fa5a61..7b2d168 100644 (file)
@@ -1,4 +1,4 @@
-.Dd August 6, 2010
+.Dd June 9, 2017
 .Dt AQ-EMPTY 1
 .Os OpenBSD
 .Sh NAME
@@ -8,7 +8,7 @@
 An empty
 .Aq
 and a full
-.Aq user@host
+.Aq user@host:
 return path.
 And another
-.Ao full Ac one "Sy" bold .
+.Ao full: Ac one "Sy" bold .
index 236c062..15ef4e6 100644 (file)
@@ -4,7 +4,7 @@ N\bNA\bAM\bME\bE
      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
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Aq/empty.out_lint b/regress/usr.bin/mandoc/mdoc/Aq/empty.out_lint
new file mode 100644 (file)
index 0000000..78d8814
--- /dev/null
@@ -0,0 +1,2 @@
+mandoc: empty.in:11:14: STYLE: no blank before trailing delimiter: Aq user@host:
+mandoc: empty.in:14:9: STYLE: no blank before trailing delimiter: Ao full:
index dc39648..752a723 100644 (file)
@@ -9,9 +9,9 @@ AQ-EMPTY(1) - General Commands Manual
 An empty
 &lt;&gt;
 and a full
-&lt;user@host&gt;
+&lt;user@host:&gt;
 return path.
 And another
-&lt;full&gt; one **bold**.
+&lt;full:&gt; one **bold**.
 
-OpenBSD - August 6, 2010
+OpenBSD - June 9, 2017
index 0a81608..cb950c9 100644 (file)
@@ -4,7 +4,7 @@ N\bNA\bAM\bME\bE
      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
+OpenBSD                          June 9, 2017                          OpenBSD
index a302fce..02416f9 100644 (file)
@@ -1,5 +1,6 @@
-# $OpenBSD: Makefile,v 1.5 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.6 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS = punct font
+LINT_TARGETS   = punct
 
 .include <bsd.regress.mk>
index 5104400..71abc25 100644 (file)
@@ -1,4 +1,4 @@
-.Dd August 21, 2014
+.Dd June 9, 2017
 .Dt AR-PUNCT 1
 .Os OpenBSD
 .Sh NAME
@@ -40,3 +40,6 @@ op bracket
 .Pp
 quoted punctuation:
 .Ar a "(" b "|" c ")" d "," "Sy" bold .
+.Pp
+missing blank:
+.Ar arg.
index 01426c5..e34b3fd 100644 (file)
@@ -11,4 +11,6 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
      quoted punctuation: _\ba (_\bb | _\bc) _\bd, b\bbo\bol\bld\bd.
 
-OpenBSD                         August 21, 2014                        OpenBSD
+     missing blank: _\ba_\br_\bg_\b.
+
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Ar/punct.out_lint b/regress/usr.bin/mandoc/mdoc/Ar/punct.out_lint
new file mode 100644 (file)
index 0000000..73e9ca6
--- /dev/null
@@ -0,0 +1 @@
+mandoc: punct.in:45:8: STYLE: no blank before trailing delimiter: Ar arg.
index 932b866..ab03a7b 100644 (file)
@@ -42,4 +42,7 @@ op bracket
 quoted punctuation:
 *a* (*b* | *c*) *d*, **bold**.
 
-OpenBSD - August 21, 2014
+missing blank:
+*arg.*
+
+OpenBSD - June 9, 2017
index 025ea25..6e75fcf 100644 (file)
@@ -9,14 +9,14 @@
 .Bl -tag -width Ds
 Stray text.
 .Ao
-More stray text.
+More stray text
 .It tag
 Tagged text.
 .El
 .Bl -bullet
 Stray text.
 .Ao
-More stray text.
+More stray text
 .It
 Bullet point.
 .El
@@ -24,7 +24,7 @@ Bullet point.
 .It tag
 Tagged text.
 .Ao
-More tagged text.
+More tagged text
 .It tag2
 Yet more tagged text.
 .El
@@ -32,7 +32,7 @@ Yet more tagged text.
 .It
 Item text.
 .Ao
-More item text.
+More item text
 .It
 Bullet point.
 .El
index afb5797..9c8fd72 100644 (file)
@@ -5,18 +5,18 @@ N\bNA\bAM\bME\bE
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
    B\bBr\bre\bea\bak\bki\bin\bng\bg p\bpa\bar\brt\bti\bia\bal\bl e\bex\bxp\bpl\bli\bic\bci\bit\bt m\bma\bac\bcr\bro\bos\bs
-     Stray text.  <More stray text.>
+     Stray text.  <More stray text>
 
      tag     Tagged text.
-     Stray text.  <More stray text.>
+     Stray text.  <More stray text>
 
      +\b+\bo\bo   Bullet point.
 
-     tag     Tagged text.  <More tagged text.>
+     tag     Tagged text.  <More tagged text>
 
      tag2    Yet more tagged text.
 
-     +\b+\bo\bo   Item text.  <More item text.>
+     +\b+\bo\bo   Item text.  <More item text>
 
      +\b+\bo\bo   Bullet point.
 
index c6c3de6..5739522 100644 (file)
@@ -9,28 +9,28 @@ BL-BREAKINGIT(1) - General Commands Manual
 ## Breaking partial explicit macros
 
 Stray text.
-&lt;More stray text.&gt;
+&lt;More stray text&gt;
 
 tag
 
 > Tagged text.
 
 Stray text.
-&lt;More stray text.&gt;
+&lt;More stray text&gt;
 
 *      Bullet point.
 
 tag
 
 > Tagged text.
-> &lt;More tagged text.&gt;
+> &lt;More tagged text&gt;
 
 tag2
 
 > Yet more tagged text.
 
 *      Item text.
-       &lt;More item text.&gt;
+       &lt;More item text&gt;
 
 *      Bullet point.
 
index 46d8c0d..05835b5 100644 (file)
@@ -7,14 +7,14 @@
 .Sh DESCRIPTION
 .Bl -tag -width Ds
 Stray text.
-.Em More stray text.
+.Em More stray text
 .It tag
 Tagged text.
 .El
 .Bl -bullet
 Stray text.
 .Sm off
-.Em More Sy stray Em text.
+.Em More Sy stray Em text
 .Sm on
 .It
 Bullet point.
index 9f603f1..5b56cde 100644 (file)
@@ -4,10 +4,10 @@ N\bNA\bAM\bME\bE
      B\bBl\bl-\b-n\bno\boI\bIt\bt - list missing item macros
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-     Stray text.  _\bM_\bo_\br_\be _\bs_\bt_\br_\ba_\by _\bt_\be_\bx_\bt_\b.
+     Stray text.  _\bM_\bo_\br_\be _\bs_\bt_\br_\ba_\by _\bt_\be_\bx_\bt
 
      tag     Tagged text.
-     Stray text.  _\bM_\bo_\br_\bes\bst\btr\bra\bay\by_\bt_\be_\bx_\bt_\b.
+     Stray text.  _\bM_\bo_\br_\bes\bst\btr\bra\bay\by_\bt_\be_\bx_\bt
 
      +\b+\bo\bo   Bullet point.
      Stray text only.
index a2fc087..96d4b7a 100644 (file)
@@ -7,14 +7,14 @@ BL-NOIT(1) - General Commands Manual
 # DESCRIPTION
 
 Stray text.
-*More stray text.*
+*More stray text*
 
 tag
 
 > Tagged text.
 
 Stray text.
-*More*&zwnj;**stray**&zwnj;*text.*
+*More*&zwnj;**stray**&zwnj;*text*
 
 *      Bullet point.
 
index 6901b17..d6cfc10 100644 (file)
@@ -1,5 +1,6 @@
-# $OpenBSD: Makefile,v 1.3 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.4 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS  = empty
+LINT_TARGETS    = empty
 
 .include <bsd.regress.mk>
index 5d31747..4677820 100644 (file)
@@ -1,4 +1,4 @@
-.Dd October 21, 2010
+.Dd June 9, 2017
 .Dt BRQ-EMPTY 1
 .Os OpenBSD
 .Sh NAME
@@ -8,7 +8,7 @@
 An empty
 .Brq
 and a full
-.Brq "(" user@host
+.Brq "(" user@host)
 quotation.
 And another
-.Bro "(" full Brc one "Sy" bold .
+.Bro "(" full) Brc one "Sy" bold .
index 9d638d0..31cdd9e 100644 (file)
@@ -4,7 +4,7 @@ N\bNA\bAM\bME\bE
      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
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Brq/empty.out_lint b/regress/usr.bin/mandoc/mdoc/Brq/empty.out_lint
new file mode 100644 (file)
index 0000000..15ca12f
--- /dev/null
@@ -0,0 +1,2 @@
+mandoc: empty.in:11:19: STYLE: no blank before trailing delimiter: Brq user@host)
+mandoc: empty.in:14:14: STYLE: no blank before trailing delimiter: Bro full)
index a335a57..82b1dd7 100644 (file)
@@ -9,9 +9,9 @@ BRQ-EMPTY(1) - General Commands Manual
 An empty
 {}
 and a full
-({user@host}
+({user@host)}
 quotation.
 And another
-({full} one **bold**.
+({full)} one **bold**.
 
-OpenBSD - October 21, 2010
+OpenBSD - June 9, 2017
index 7ffd13c..1e36c8f 100644 (file)
@@ -1,5 +1,6 @@
-# $OpenBSD: Makefile,v 1.4 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.5 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS  = args
+LINT_TARGETS    = args
 
 .include <bsd.regress.mk>
index d447927..d6f8ff5 100644 (file)
@@ -1,4 +1,4 @@
-.Dd January 30, 2011
+.Dd June 9, 2017
 .Dt BX-ARGS 1
 .Os OpenBSD
 .Sh NAME
@@ -12,7 +12,7 @@ one standard argument:
 .Bx 4.4 "."
 .Pp
 one non-standard argument:
-.Bx nett
+.Bx nett.
 .Pp
 one semi-standard argument:
 .Bx 4.1c
index 24e03ff..d7c1e76 100644 (file)
@@ -8,7 +8,7 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
      one standard argument: 4.4BSD.
 
-     one non-standard argument: nettBSD
+     one non-standard argument: nett.BSD
 
      one semi-standard argument: 4.1cBSD
 
@@ -18,4 +18,4 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
      end of test document
 
-OpenBSD                        January 30, 2011                        OpenBSD
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Bx/args.out_lint b/regress/usr.bin/mandoc/mdoc/Bx/args.out_lint
new file mode 100644 (file)
index 0000000..4f5dbcd
--- /dev/null
@@ -0,0 +1 @@
+mandoc: args.in:15:9: STYLE: no blank before trailing delimiter: Bx nett.
index 5450ee5..e231662 100644 (file)
@@ -13,7 +13,7 @@ one standard argument:
 4\.4BSD.
 
 one non-standard argument:
-nettBSD
+nett.BSD
 
 one semi-standard argument:
 4\.1cBSD
@@ -26,4 +26,4 @@ more arguments:
 
 end of test document
 
-OpenBSD - January 30, 2011
+OpenBSD - June 9, 2017
index 750ce84..8347997 100644 (file)
@@ -1,4 +1,4 @@
-.Dd July 2, 2014
+.Dd June 9, 2017
 .Dt CM-NOARG 1
 .Os OpenBSD
 .Sh NAME
@@ -9,4 +9,4 @@ end of line:
 .Nm mt Fl f Ar device Cm
 .Pp
 middle of line:
-.Nm ps Fl x Cm Fl o Cm command
+.Nm ps Fl x Cm Fl o Cm command.
index 83186d1..2b6dea5 100644 (file)
@@ -6,6 +6,6 @@ N\bNA\bAM\bME\bE
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
      end of line: m\bmt\bt -\b-f\bf _\bd_\be_\bv_\bi_\bc_\be
 
-     middle of line: p\bps\bs -\b-x\bx -\b-o\bo c\bco\bom\bmm\bma\ban\bnd\bd
+     middle of line: p\bps\bs -\b-x\bx -\b-o\bo c\bco\bom\bmm\bma\ban\bnd\bd.\b.
 
-OpenBSD                          July 2, 2014                          OpenBSD
+OpenBSD                          June 9, 2017                          OpenBSD
index 3a828e5..6568e68 100644 (file)
@@ -1,2 +1,3 @@
 mandoc: noarg.in:9:23: WARNING: skipping empty macro: Cm
 mandoc: noarg.in:12:13: WARNING: skipping empty macro: Cm
+mandoc: noarg.in:12:31: STYLE: no blank before trailing delimiter: Cm command.
index 6aff635..05ceb96 100644 (file)
@@ -10,6 +10,6 @@ end of line:
 **mt** **-f** *device*
 
 middle of line:
-**ps** **-x** **-o** **command**
+**ps** **-x** **-o** **command.**
 
-OpenBSD - July 2, 2014
+OpenBSD - June 9, 2017
index 6901b17..d6cfc10 100644 (file)
@@ -1,5 +1,6 @@
-# $OpenBSD: Makefile,v 1.3 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.4 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS  = empty
+LINT_TARGETS    = empty
 
 .include <bsd.regress.mk>
index 1d072d5..2e0282e 100644 (file)
@@ -1,4 +1,4 @@
-.Dd October 21, 2010
+.Dd June 9, 2017
 .Dt DQ-EMPTY 1
 .Os OpenBSD
 .Sh NAME
@@ -8,7 +8,7 @@
 An empty
 .Dq
 and a full
-.Dq "(" user@host
+.Dq "(" user@host)
 quotation.
 And another
-.Do "(" full Dc one "Sy" bold .
+.Do "(" full) Dc one "Sy" bold .
index 9f7c8bb..a5614e9 100644 (file)
@@ -4,7 +4,7 @@ N\bNA\bAM\bME\bE
      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
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Dq/empty.out_lint b/regress/usr.bin/mandoc/mdoc/Dq/empty.out_lint
new file mode 100644 (file)
index 0000000..e69de29
index b6188f5..927dacc 100644 (file)
@@ -9,9 +9,9 @@ DQ-EMPTY(1) - General Commands Manual
 An empty
 ""
 and a full
-("user@host"
+("user@host)"
 quotation.
 And another
-("full" one **bold**.
+("full)" one **bold**.
 
-OpenBSD - October 21, 2010
+OpenBSD - June 9, 2017
index 86155b3..a2b54d8 100644 (file)
@@ -1,4 +1,4 @@
-.Dd July 2, 2014
+.Dd June 9, 2017
 .Dt DV-NOARG 1
 .Os OpenBSD
 .Sh NAME
@@ -6,7 +6,7 @@
 .Nd defined variable macro without an argument
 .Sh DESCRIPTION
 with variable:
-.Dv NULL
+.Dv NULL.
 no variable:
 .Dv
 end of test document
index b40d663..7e934d6 100644 (file)
@@ -4,6 +4,6 @@ N\bNA\bAM\bME\bE
      D\bDv\bv-\b-n\bno\boa\bar\brg\bg - defined variable macro without an argument
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-     with variable: NULL no variable: end of test document
+     with variable: NULL. no variable: end of test document
 
-OpenBSD                          July 2, 2014                          OpenBSD
+OpenBSD                          June 9, 2017                          OpenBSD
index cac4510..6e6ad76 100644 (file)
@@ -1 +1,2 @@
 mandoc: noarg.in:11:2: WARNING: skipping empty macro: Dv
+mandoc: noarg.in:9:9: STYLE: no blank before trailing delimiter: Dv NULL.
index 7d1f29d..6cb859d 100644 (file)
@@ -7,8 +7,8 @@ DV-NOARG(1) - General Commands Manual
 # DESCRIPTION
 
 with variable:
-`NULL`
+`NULL.`
 no variable:
 end of test document
 
-OpenBSD - July 2, 2014
+OpenBSD - June 9, 2017
index a8e012e..5d3cc51 100644 (file)
@@ -1,4 +1,4 @@
-.Dd November 17, 2014
+.Dd June 9, 2017
 .Dt EM-PUNCT 1
 .Os OpenBSD
 .Sh NAME
@@ -81,3 +81,6 @@ Quoted:
 .Em "a . b Nm" "Sy" bold
 .Em ". b Nm"
 .Em "."
+.Pp
+Missing blank:
+.Em a.
index e0f60db..7ab059c 100644 (file)
@@ -23,4 +23,6 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
      Quoted: _\ba _\b. _\bb _\bN_\bm b\bbo\bol\bld\bd _\b. _\bb _\bN_\bm .
 
-OpenBSD                        November 17, 2014                       OpenBSD
+     Missing blank: _\ba_\b.
+
+OpenBSD                          June 9, 2017                          OpenBSD
index cfcc04a..6408d24 100644 (file)
@@ -23,3 +23,4 @@ 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
+mandoc: punct.in:86:6: STYLE: no blank before trailing delimiter: Em a.
index 6cf5402..114a1ac 100644 (file)
@@ -83,4 +83,7 @@ Quoted:
 *. b Nm*
 .
 
-OpenBSD - November 17, 2014
+Missing blank:
+*a.*
+
+OpenBSD - June 9, 2017
index 6dc2aea..646d3d5 100644 (file)
@@ -1,4 +1,4 @@
-.Dd January 19, 2011
+.Dd June 9, 2017
 .Dt ER-NOARG 1
 .Os OpenBSD
 .Sh NAME
@@ -7,6 +7,7 @@
 .Sh DESCRIPTION
 with error:
 .Er ENOENT ";" "Sy" bold ;
+.Er EIO.
 no error:
 .Er
 end of test document
index cd8cc77..ed7b16a 100644 (file)
@@ -4,6 +4,6 @@ N\bNA\bAM\bME\bE
      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; b\bbo\bol\bld\bd; no error: end of test document
+     with error: ENOENT; b\bbo\bol\bld\bd; EIO. no error: end of test document
 
-OpenBSD                        January 19, 2011                        OpenBSD
+OpenBSD                          June 9, 2017                          OpenBSD
index b859429..46b3136 100644 (file)
@@ -1 +1,2 @@
-mandoc: noarg.in:11:2: WARNING: skipping empty macro: Er
+mandoc: noarg.in:12:2: WARNING: skipping empty macro: Er
+mandoc: noarg.in:10:8: STYLE: no blank before trailing delimiter: Er EIO.
index 17dba3d..47d378d 100644 (file)
@@ -8,7 +8,8 @@ ER-NOARG(1) - General Commands Manual
 
 with error:
 `ENOENT`; **bold**;
+`EIO.`
 no error:
 end of test document
 
-OpenBSD - January 19, 2011
+OpenBSD - June 9, 2017
index 84c1815..953986b 100644 (file)
@@ -1,4 +1,4 @@
-.Dd July 2, 2014
+.Dd June 9, 2017
 .Dt EV-NOARG 1
 .Os OpenBSD
 .Sh NAME
@@ -6,7 +6,7 @@
 .Nd environment variable macro without an argument
 .Sh DESCRIPTION
 with variable:
-.Ev HOME
+.Ev HOME.
 no variable:
 .Ev
 end of test document
index 11705a3..f5dc1ad 100644 (file)
@@ -4,6 +4,6 @@ N\bNA\bAM\bME\bE
      E\bEv\bv-\b-n\bno\boa\bar\brg\bg - environment variable macro without an argument
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-     with variable: HOME no variable: end of test document
+     with variable: HOME. no variable: end of test document
 
-OpenBSD                          July 2, 2014                          OpenBSD
+OpenBSD                          June 9, 2017                          OpenBSD
index a41541b..c08c135 100644 (file)
@@ -1 +1,2 @@
 mandoc: noarg.in:11:2: WARNING: skipping empty macro: Ev
+mandoc: noarg.in:9:9: STYLE: no blank before trailing delimiter: Ev HOME.
index fbba368..aad020e 100644 (file)
@@ -7,8 +7,8 @@ EV-NOARG(1) - General Commands Manual
 # DESCRIPTION
 
 with variable:
-`HOME`
+`HOME.`
 no variable:
 end of test document
 
-OpenBSD - July 2, 2014
+OpenBSD - June 9, 2017
index b74056e..ea9ed63 100644 (file)
@@ -1,5 +1,6 @@
-# $OpenBSD: Makefile,v 1.11 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.12 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS = noarg multiarg parsed punct font
+LINT_TARGETS   = punct
 
 .include <bsd.regress.mk>
index 8cc4c2f..a4da35f 100644 (file)
@@ -1,4 +1,4 @@
-.Dd August 21, 2014
+.Dd June 9, 2017
 .Dt FL-PUNCT 1
 .Os OpenBSD
 .Sh NAME
@@ -40,3 +40,6 @@ op bracket
 .Pp
 quoted punctuation:
 .Fl a "(" b "|" c ")" d "," "Em" italic .
+.Pp
+trailing delimiter:
+.Fl a.
index 1ef60d4..cf8a15c 100644 (file)
@@ -11,4 +11,6 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
      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
+     trailing delimiter: -\b-a\ba.\b.
+
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Fl/punct.out_lint b/regress/usr.bin/mandoc/mdoc/Fl/punct.out_lint
new file mode 100644 (file)
index 0000000..a792bbf
--- /dev/null
@@ -0,0 +1 @@
+mandoc: punct.in:45:6: STYLE: no blank before trailing delimiter: Fl a.
index 54d10ae..562ff29 100644 (file)
@@ -42,4 +42,7 @@ op bracket
 quoted punctuation:
 **-a** (**-b** | **-c**) **-d**, *italic*.
 
-OpenBSD - August 21, 2014
+trailing delimiter:
+**-a.**
+
+OpenBSD - June 9, 2017
index 059fa0e..34be618 100644 (file)
@@ -1,8 +1,8 @@
-# $OpenBSD: Makefile,v 1.15 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.16 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS         = basic break eos font noarg nohead
 REGRESS_TARGETS += obsolete punct section warn
-LINT_TARGETS    = noarg nohead obsolete warn
+LINT_TARGETS    = noarg nohead obsolete punct warn
 
 # groff-1.22.3 defects:
 # - .Fo without an argument prints unbalanced parentheses
index e1657ec..d17b533 100644 (file)
@@ -6,8 +6,8 @@
 .Nd punctuation on function input lines
 .Sh DESCRIPTION
 .Ft double
-.Fn sin "," cos "Em" italic
+.Fn sin. "," cos "Em" italic
 .Pp
-.Fa x "," y "Sy" bold
+.Fa x "," y: "Sy" bold
 .Pp
-.Ft int "," float "Sy" bold
+.Ft int "," float: "Sy" bold
index febf646..26c3177 100644 (file)
@@ -4,10 +4,10 @@ N\bNA\bAM\bME\bE
      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 _\bi_\bt_\ba_\bl_\bi_\bc
+     _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn.\b.(), cos _\bi_\bt_\ba_\bl_\bi_\bc
 
-     _\bx, _\by b\bbo\bol\bld\bd
+     _\bx, _\by_\b: b\bbo\bol\bld\bd
 
-     _\bi_\bn_\bt, _\bf_\bl_\bo_\ba_\bt b\bbo\bol\bld\bd
+     _\bi_\bn_\bt, _\bf_\bl_\bo_\ba_\bt_\b: b\bbo\bol\bld\bd
 
 OpenBSD                          May 20, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Fo/punct.out_lint b/regress/usr.bin/mandoc/mdoc/Fo/punct.out_lint
new file mode 100644 (file)
index 0000000..a39cf95
--- /dev/null
@@ -0,0 +1,3 @@
+mandoc: punct.in:9:8: STYLE: no blank before trailing delimiter: Fn sin.
+mandoc: punct.in:11:12: STYLE: no blank before trailing delimiter: Fa y:
+mandoc: punct.in:13:18: STYLE: no blank before trailing delimiter: Ft float:
index 88524f6..6e9fe5f 100644 (file)
@@ -7,10 +7,10 @@ FO-PUNCT(1) - General Commands Manual
 # DESCRIPTION
 
 *double*
-**sin**(), cos *italic*
+**sin.**(), cos *italic*
 
-*x*, *y* **bold**
+*x*, *y:* **bold**
 
-*int*, *float* **bold**
+*int*, *float:* **bold**
 
 OpenBSD - May 20, 2017
index 76c22e7..2c4bf67 100644 (file)
@@ -1,4 +1,4 @@
-.Dd January 19, 2011
+.Dd June 9, 2017
 .Dt IC-NOARG 1
 .Os OpenBSD
 .Sh NAME
@@ -6,7 +6,7 @@
 .Nd interactive command without an argument
 .Sh DESCRIPTION
 with command:
-.Ic ls
+.Ic ls.
 no command:
 .Ic
 end of test document
index c5dda26..8899a95 100644 (file)
@@ -4,6 +4,6 @@ N\bNA\bAM\bME\bE
      I\bIc\bc-\b-n\bno\boa\bar\brg\bg - interactive command without an argument
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-     with command: l\bls\bs no command: end of test document
+     with command: l\bls\bs.\b. no command: end of test document
 
-OpenBSD                        January 19, 2011                        OpenBSD
+OpenBSD                          June 9, 2017                          OpenBSD
index 5ae495b..9520793 100644 (file)
@@ -1 +1,2 @@
 mandoc: noarg.in:11:2: WARNING: skipping empty macro: Ic
+mandoc: noarg.in:9:7: STYLE: no blank before trailing delimiter: Ic ls.
index de7e614..38162de 100644 (file)
@@ -7,8 +7,8 @@ IC-NOARG(1) - General Commands Manual
 # DESCRIPTION
 
 with command:
-**ls**
+**ls.**
 no command:
 end of test document
 
-OpenBSD - January 19, 2011
+OpenBSD - June 9, 2017
index f443637..1952e86 100644 (file)
@@ -12,7 +12,7 @@
 .Ft double
 .Fn cos "double x"
 .Sh DESCRIPTION
-.In math.h
+.In math.h:
 .Ft double
 .Fn sin "double x"
 .In
index 1a86acd..7a4bf17 100644 (file)
@@ -13,6 +13,6 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
      c\bco\bos\bs(_\bd_\bo_\bu_\bb_\bl_\be _\bx);
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-     <_\bm_\ba_\bt_\bh_\b._\bh> _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx) _\bd_\bo_\bu_\bb_\bl_\be c\bco\bos\bs(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
+     <_\bm_\ba_\bt_\bh_\b._\bh_\b:> _\bd_\bo_\bu_\bb_\bl_\be s\bsi\bin\bn(_\bd_\bo_\bu_\bb_\bl_\be _\bx) _\bd_\bo_\bu_\bb_\bl_\be c\bco\bos\bs(_\bd_\bo_\bu_\bb_\bl_\be _\bx)
 
 OpenBSD                        February 5, 2015                        OpenBSD
index 3b4e6d2..17f8040 100644 (file)
@@ -1,2 +1,3 @@
 mandoc: noarg.in:11:2: WARNING: skipping empty macro: In
 mandoc: noarg.in:18:2: WARNING: skipping empty macro: In
+mandoc: noarg.in:15:11: STYLE: no blank before trailing delimiter: In math.h:
index 8197022..8a39b83 100644 (file)
@@ -16,7 +16,7 @@ IN-NOARG(2) - System Calls Manual
 
 # DESCRIPTION
 
-&lt;*math.h*>
+&lt;*math.h:*>
 *double*
 **sin**(*double x*)
 *double*
index f1fea20..558eef2 100644 (file)
@@ -1,10 +1,10 @@
-.Dd January 2, 2011
+.Dd June 9, 2017
 .Dt LB-BADARGS 3
 .Os OpenBSD
 .Sh NAME
 .Nm Lb-badargs
 .Nd bad arguments to the library macro
 .Sh LIBRARY
-.Lb murks
+.Lb murks.
 .Lb
-.Lb mylib another
+.Lb mylib another.
index cfc2b0f..db55ffd 100644 (file)
@@ -4,7 +4,7 @@ N\bNA\bAM\bME\bE
      L\bLb\bb-\b-b\bba\bad\bda\bar\brg\bgs\bs - bad arguments to the library macro
 
 L\bLI\bIB\bBR\bRA\bAR\bRY\bY
-     library "murks"
-     library "mylib" another
+     library "murks."
+     library "mylib" another.
 
-OpenBSD                         January 2, 2011                        OpenBSD
+OpenBSD                          June 9, 2017                          OpenBSD
index 52af647..6ca4ed3 100644 (file)
@@ -1 +1,3 @@
 mandoc: badargs.in:9:2: WARNING: skipping empty macro: Lb
+mandoc: badargs.in:8:10: STYLE: no blank before trailing delimiter: Lb murks.
+mandoc: badargs.in:10:18: STYLE: no blank before trailing delimiter: Lb ... another.
index 132b2f9..9eebe89 100644 (file)
@@ -6,7 +6,7 @@ LB-BADARGS(3) - Library Functions Manual
 
 # LIBRARY
 
-library &#8220;murks&#8221;  
-library &#8220;mylib&#8221; another
+library &#8220;murks.&#8221;  
+library &#8220;mylib&#8221; another.
 
-OpenBSD - January 2, 2011
+OpenBSD - June 9, 2017
index 0256577..434b7e6 100644 (file)
@@ -1,4 +1,4 @@
-.Dd November 17, 2014
+.Dd June 9, 2017
 .Dt LI-PUNCT 1
 .Os OpenBSD
 .Sh NAME
@@ -81,3 +81,6 @@ Quoted:
 .Li "a . b Nm" "Sy" bold
 .Li ". b Nm"
 .Li "."
+.Pp
+Missing blank:
+.Li a.
index d0de6c9..da68489 100644 (file)
@@ -23,4 +23,6 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
      Quoted: a . b Nm b\bbo\bol\bld\bd . b Nm .
 
-OpenBSD                        November 17, 2014                       OpenBSD
+     Missing blank: a.
+
+OpenBSD                          June 9, 2017                          OpenBSD
index bdce45c..fc2a211 100644 (file)
@@ -23,3 +23,4 @@ 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
+mandoc: punct.in:86:6: STYLE: no blank before trailing delimiter: Li a.
index 97110e2..fde7039 100644 (file)
@@ -83,4 +83,7 @@ Quoted:
 `. b Nm`
 .
 
-OpenBSD - November 17, 2014
+Missing blank:
+`a.`
+
+OpenBSD - June 9, 2017
index 910f641..19d9d30 100644 (file)
@@ -1,4 +1,4 @@
-.Dd January 19, 2011
+.Dd June 9, 2017
 .Dt LK-NOARG 1
 .Os OpenBSD
 .Sh NAME
@@ -9,9 +9,9 @@ multiple arguments
 .Lk http://www.bsd.lv/ the bsd.lv project ,
 .Lk http://www.gnu.org/software/groff/ GNU troff ","
 two arguments
-.Lk http://mdocml.bsd.lv/ mandoc
+.Lk http://mdocml.bsd.lv/ mandoc,
 one argument
-.Lk http://www.openbsd.org/
+.Lk http://www.openbsd.org/,
 no argument
 .Lk
 .Pp
index a0cec52..5347cf7 100644 (file)
@@ -6,9 +6,9 @@ N\bNA\bAM\bME\bE
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
      multiple arguments _\bt_\bh_\be _\bb_\bs_\bd_\b._\bl_\bv _\bp_\br_\bo_\bj_\be_\bc_\bt: h\bht\btt\btp\bp:\b:/\b//\b/w\bww\bww\bw.\b.b\bbs\bsd\bd.\b.l\blv\bv/\b/, _\bG_\bN_\bU _\bt_\br_\bo_\bf_\bf:
            h\bht\btt\btp\bp:\b:/\b//\b/w\bww\bww\bw.\b.g\bgn\bnu\bu.\b.o\bor\brg\bg/\b/s\bso\bof\bft\btw\bwa\bar\bre\be/\b/g\bgr\bro\bof\bff\bf/\b/,
-     two arguments _\bm_\ba_\bn_\bd_\bo_\bc: h\bht\btt\btp\bp:\b:/\b//\b/m\bmd\bdo\boc\bcm\bml\bl.\b.b\bbs\bsd\bd.\b.l\blv\bv/\b/ one argument
-     h\bht\btt\btp\bp:\b:/\b//\b/w\bww\bww\bw.\b.o\bop\bpe\ben\bnb\bbs\bsd\bd.\b.o\bor\brg\bg/\b/ no argument
+     two arguments _\bm_\ba_\bn_\bd_\bo_\bc_\b,: h\bht\btt\btp\bp:\b:/\b//\b/m\bmd\bdo\boc\bcm\bml\bl.\b.b\bbs\bsd\bd.\b.l\blv\bv/\b/ one argument
+     h\bht\btt\btp\bp:\b:/\b//\b/w\bww\bww\bw.\b.o\bop\bpe\ben\bnb\bbs\bsd\bd.\b.o\bor\brg\bg/\b/,\b, no argument
 
      end of test document
 
-OpenBSD                        January 19, 2011                        OpenBSD
+OpenBSD                          June 9, 2017                          OpenBSD
index ff99c35..47c5b9c 100644 (file)
@@ -1 +1,3 @@
 mandoc: noarg.in:16:2: WARNING: skipping empty macro: Lk
+mandoc: noarg.in:12:33: STYLE: no blank before trailing delimiter: Lk ... mandoc,
+mandoc: noarg.in:14:28: STYLE: no blank before trailing delimiter: Lk http://www.openbsd.org/,
index 27aaec2..56964f6 100644 (file)
@@ -10,11 +10,11 @@ multiple arguments
 [the bsd.lv project](http://www.bsd.lv/),
 [GNU troff](http://www.gnu.org/software/groff/),
 two arguments
-[mandoc](http://mdocml.bsd.lv/)
+[mandoc,](http://mdocml.bsd.lv/)
 one argument
-[http://www.openbsd.org/](http://www.openbsd.org/)
+[http://www.openbsd.org/,](http://www.openbsd.org/,)
 no argument
 
 end of test document
 
-OpenBSD - January 19, 2011
+OpenBSD - June 9, 2017
index ae28358..9c9d83f 100644 (file)
@@ -1,12 +1,12 @@
-.Dd January 19, 2011
+.Dd June 19, 2017
 .Dt MS-NOARG 1
 .Os OpenBSD
 .Sh NAME
 .Nm Ms-noarg
 .Nd mathematical symbol without an argument
 .Sh DESCRIPTION
-with command:
-.Ms alpha
-no command:
+with symbol:
+.Ms alpha.
+no symbol:
 .Ms
 end of test document
index fa90d0f..7f21992 100644 (file)
@@ -4,6 +4,6 @@ N\bNA\bAM\bME\bE
      M\bMs\bs-\b-n\bno\boa\bar\brg\bg - mathematical symbol without an argument
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-     with command: a\bal\blp\bph\bha\ba no command: end of test document
+     with symbol: a\bal\blp\bph\bha\ba.\b. no symbol: end of test document
 
-OpenBSD                        January 19, 2011                        OpenBSD
+OpenBSD                          June 19, 2017                         OpenBSD
index 265fb3e..8535ec9 100644 (file)
@@ -1 +1,2 @@
 mandoc: noarg.in:11:2: WARNING: skipping empty macro: Ms
+mandoc: noarg.in:9:10: STYLE: no blank before trailing delimiter: Ms alpha.
index 5146653..65c8466 100644 (file)
@@ -6,9 +6,9 @@ MS-NOARG(1) - General Commands Manual
 
 # DESCRIPTION
 
-with command:
-**alpha**
-no command:
+with symbol:
+**alpha.**
+no symbol:
 end of test document
 
-OpenBSD - January 19, 2011
+OpenBSD - June 19, 2017
index 502ee03..382c03a 100644 (file)
@@ -1,6 +1,7 @@
-# $OpenBSD: Makefile,v 1.7 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.8 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS = simple font
+LINT_TARGETS =   simple
 
 # it's unclear what font changes in link destinations should do
 
index 16afb2d..8e7a70b 100644 (file)
@@ -1,4 +1,4 @@
-.Dd February 17, 2010
+.Dd June 9, 2017
 .Dt MT-SIMPLE 1
 .Os OpenBSD
 .Sh NAME
@@ -8,5 +8,8 @@
 Please send mail to
 .Mt schwarze@openbsd.org ";" "Sy" bold .
 .Pp
+Pay attention to
+.Mt punctuation@localhost.
+.Pp
 Do not send mail to
 .Mt .
index 7b2ea54..364a6af 100644 (file)
@@ -6,6 +6,8 @@ N\bNA\bAM\bME\bE
 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; b\bbo\bol\bld\bd.
 
+     Pay attention to _\bp_\bu_\bn_\bc_\bt_\bu_\ba_\bt_\bi_\bo_\bn_\b@_\bl_\bo_\bc_\ba_\bl_\bh_\bo_\bs_\bt_\b.
+
      Do not send mail to _\b~.
 
-OpenBSD                        February 17, 2010                       OpenBSD
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Mt/simple.out_lint b/regress/usr.bin/mandoc/mdoc/Mt/simple.out_lint
new file mode 100644 (file)
index 0000000..d8e4a1e
--- /dev/null
@@ -0,0 +1 @@
+mandoc: simple.in:12:26: STYLE: no blank before trailing delimiter: Mt punctuation@localhost.
index 9281fee..d00df48 100644 (file)
@@ -9,7 +9,10 @@ MT-SIMPLE(1) - General Commands Manual
 Please send mail to
 [schwarze@openbsd.org](mailto:schwarze@openbsd.org); **bold**.
 
+Pay attention to
+[punctuation@localhost.](mailto:punctuation@localhost.)
+
 Do not send mail to
 [~](mailto:~).
 
-OpenBSD - February 17, 2010
+OpenBSD - June 9, 2017
index df69d0b..114bb26 100644 (file)
@@ -1,10 +1,10 @@
-# $OpenBSD: Makefile,v 1.16 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.17 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS         = badNAME badNAMEuse break broken
 REGRESS_TARGETS        += empty emptyNAME emptyNAMEuse
 REGRESS_TARGETS        += font long par parns punct
 
-LINT_TARGETS    = badNAME badNAMEuse break broken
+LINT_TARGETS    = badNAME badNAMEuse break broken punct
 
 # groff-1.22.3/mandoc differences:
 # - When the head of an Nm block in the SYNOPSIS is broken by an
index 254adfd..4cc3574 100644 (file)
@@ -1,4 +1,4 @@
-.Dd August 21, 2014
+.Dd June 9, 2017
 .Dt NM-PUNCT 1
 .Os OpenBSD
 .Sh NAME
@@ -37,3 +37,6 @@ op paren
 .Nm ( a
 op bracket
 .Nm [ a
+.Pp
+Missing blank:
+.Nm Nm-punct.
index 74cb98f..76d1c1f 100644 (file)
@@ -9,4 +9,6 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
      N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt; z colon N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt: z quest N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt? z excl N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt! z paren
      N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt) z bracket N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt] z bar | m\bm op paren (a\ba op bracket [a\ba
 
-OpenBSD                         August 21, 2014                        OpenBSD
+     Missing blank: N\bNm\bm-\b-p\bpu\bun\bnc\bct\bt.\b.
+
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Nm/punct.out_lint b/regress/usr.bin/mandoc/mdoc/Nm/punct.out_lint
new file mode 100644 (file)
index 0000000..45f906b
--- /dev/null
@@ -0,0 +1 @@
+mandoc: punct.in:42:13: STYLE: no blank before trailing delimiter: Nm Nm-punct.
index ad84824..132275a 100644 (file)
@@ -39,4 +39,7 @@ op paren
 op bracket
 \[**a**
 
-OpenBSD - August 21, 2014
+Missing blank:
+**Nm-punct.**
+
+OpenBSD - June 9, 2017
index c952c7c..0661523 100644 (file)
@@ -1,4 +1,4 @@
-.Dd November 17, 2014
+.Dd June 9, 2017
 .Dt NO-PUNCT 1
 .Os OpenBSD
 .Sh NAME
@@ -81,3 +81,6 @@ Quoted:
 .No "a . b Nm" "Sy" bold
 .No ". b Nm"
 .No "."
+.Pp
+Missing blank:
+.No a.
index 94252d8..0cf3d7f 100644 (file)
@@ -23,4 +23,6 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
      Quoted: a . b Nm b\bbo\bol\bld\bd . b Nm .
 
-OpenBSD                        November 17, 2014                       OpenBSD
+     Missing blank: a.
+
+OpenBSD                          June 9, 2017                          OpenBSD
index e46cd67..1543048 100644 (file)
@@ -23,3 +23,4 @@ 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
+mandoc: punct.in:86:6: STYLE: no blank before trailing delimiter: No a.
index 6dd09c8..daa2f92 100644 (file)
@@ -83,4 +83,7 @@ a . b Nm **bold**
 . b Nm
 .
 
-OpenBSD - November 17, 2014
+Missing blank:
+a.
+
+OpenBSD - June 9, 2017
index fad308c..f79a4d0 100644 (file)
@@ -1,5 +1,6 @@
-# $OpenBSD: Makefile,v 1.3 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.4 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS  = punct
+LINT_TARGETS    = punct
 
 .include <bsd.regress.mk>
index 59ea4bb..80e2da6 100644 (file)
@@ -1,4 +1,4 @@
-.Dd July 6, 2012
+.Dd June 9, 2017
 .Dt OO-PUNCT 1
 .Os OpenBSD
 .Sh NAME
@@ -21,3 +21,7 @@ at the end:
 .Oo Oo a (
 .Oc |
 .Oc
+.Pp
+missing blank:
+.Oo a.
+.Oc
index 68addf8..23fabbc 100644 (file)
@@ -10,4 +10,6 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
      at the end: [[a (] |]
 
-OpenBSD                          July 6, 2012                          OpenBSD
+     missing blank: [a.]
+
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Oo/punct.out_lint b/regress/usr.bin/mandoc/mdoc/Oo/punct.out_lint
new file mode 100644 (file)
index 0000000..fa02f06
--- /dev/null
@@ -0,0 +1 @@
+mandoc: punct.in:26:6: STYLE: no blank before trailing delimiter: Oo a.
index e6525b1..6527e5e 100644 (file)
@@ -20,4 +20,7 @@ at the end:
 \[\[a (]
 |]
 
-OpenBSD - July 6, 2012
+missing blank:
+\[a.]
+
+OpenBSD - June 9, 2017
index 3cbaabc..6bac1ba 100644 (file)
@@ -1,7 +1,7 @@
-# $OpenBSD: Makefile,v 1.5 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.6 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS        = break broken punct
-LINT_TARGETS   = break broken
+LINT_TARGETS   = break broken punct
 
 SKIP_GROFF     = break
 SKIP_ASCII     = break
index 7bc9933..7c09e57 100644 (file)
@@ -1,4 +1,4 @@
-.Dd June 24, 2011
+.Dd June 9, 2017
 .Dt OP-PUNCT 1
 .Os OpenBSD
 .Sh NAME
@@ -29,3 +29,6 @@ more than one:
 .Op ( (
 .Op | |
 .Op . .
+.Pp
+Missing blank:
+.Op a.
index 53251b5..3f5b22c 100644 (file)
@@ -14,4 +14,6 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
      more than one: (([] [| |] []..
 
-OpenBSD                          June 24, 2011                         OpenBSD
+     Missing blank: [a.]
+
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Op/punct.out_lint b/regress/usr.bin/mandoc/mdoc/Op/punct.out_lint
new file mode 100644 (file)
index 0000000..fff31ae
--- /dev/null
@@ -0,0 +1 @@
+mandoc: punct.in:34:6: STYLE: no blank before trailing delimiter: Op a.
index 114bd7a..98ee2e7 100644 (file)
@@ -31,4 +31,7 @@ more than one:
 \[| |]
 \[]..
 
-OpenBSD - June 24, 2011
+Missing blank:
+\[a.]
+
+OpenBSD - June 9, 2017
index 535a2e7..39ebf00 100644 (file)
@@ -1,6 +1,7 @@
-# $OpenBSD: Makefile,v 1.6 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.7 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS        = font punct
+LINT_TARGETS   = punct
 
 # XXX The FILES target doesn't currently work.
 
index c243d74..36dac9e 100644 (file)
@@ -1,4 +1,4 @@
-.Dd August 21, 2014
+.Dd June 9, 2017
 .Dt PA-PUNCT 1
 .Os OpenBSD
 .Sh NAME
@@ -40,3 +40,6 @@ op bracket
 .Pp
 quoted punctuation:
 .Pa a "(" b "|" c ")" d "," "Sy" bold .
+.Pp
+missing blank:
+.Pa a.
index ee2a7ed..6dabc34 100644 (file)
@@ -10,4 +10,6 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
      quoted punctuation: _\ba (_\bb | _\bc) _\bd, b\bbo\bol\bld\bd.
 
-OpenBSD                         August 21, 2014                        OpenBSD
+     missing blank: _\ba_\b.
+
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Pa/punct.out_lint b/regress/usr.bin/mandoc/mdoc/Pa/punct.out_lint
new file mode 100644 (file)
index 0000000..5c50094
--- /dev/null
@@ -0,0 +1 @@
+mandoc: punct.in:45:6: STYLE: no blank before trailing delimiter: Pa a.
index 3730d72..6c6883a 100644 (file)
@@ -42,4 +42,7 @@ op bracket
 quoted punctuation:
 *a* (*b* | *c*) *d*, **bold**.
 
-OpenBSD - August 21, 2014
+missing blank:
+*a.*
+
+OpenBSD - June 9, 2017
index f1a9f18..eb7b05b 100644 (file)
@@ -1,5 +1,6 @@
-# $OpenBSD: Makefile,v 1.3 2017/03/08 22:53:35 schwarze Exp $
+# $OpenBSD: Makefile,v 1.4 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS         = empty
+LINT_TARGETS    = empty
 
 .include <bsd.regress.mk>
index 81bd207..b755037 100644 (file)
@@ -1,4 +1,4 @@
-.Dd October 21, 2010
+.Dd June 9, 2017
 .Dt QQ-EMPTY 1
 .Os OpenBSD
 .Sh NAME
@@ -8,7 +8,7 @@
 An empty
 .Qq
 and a full
-.Qq "(" user@host
+.Qq "(" user@host)
 quotation.
 And another
-.Qo "(" full Qc one "Sy" bold .
+.Qo "(" full) Qc one "Sy" bold .
index a191f45..44f7960 100644 (file)
@@ -4,7 +4,7 @@ N\bNA\bAM\bME\bE
      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
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Qq/empty.out_lint b/regress/usr.bin/mandoc/mdoc/Qq/empty.out_lint
new file mode 100644 (file)
index 0000000..4d0f793
--- /dev/null
@@ -0,0 +1,2 @@
+mandoc: empty.in:11:18: STYLE: no blank before trailing delimiter: Qq user@host)
+mandoc: empty.in:14:13: STYLE: no blank before trailing delimiter: Qo full)
index beb8cb3..f6dd12e 100644 (file)
@@ -9,9 +9,9 @@ QQ-EMPTY(1) - General Commands Manual
 An empty
 ""
 and a full
-("user@host"
+("user@host)"
 quotation.
 And another
-("full" one **bold**.
+("full)" one **bold**.
 
-OpenBSD - October 21, 2010
+OpenBSD - June 9, 2017
index be5b7c5..d6cfc10 100644 (file)
@@ -1,5 +1,6 @@
-# $OpenBSD: Makefile,v 1.3 2017/03/08 22:53:36 schwarze Exp $
+# $OpenBSD: Makefile,v 1.4 2017/06/10 01:48:31 schwarze Exp $
 
 REGRESS_TARGETS  = empty
+LINT_TARGETS    = empty
 
 .include <bsd.regress.mk>
index 4a8cd1e..aa521d2 100644 (file)
@@ -1,4 +1,4 @@
-.Dd October 21, 2010
+.Dd June 9, 2017
 .Dt SQ-EMPTY 1
 .Os OpenBSD
 .Sh NAME
@@ -8,7 +8,7 @@
 An empty
 .Sq
 and a full
-.Sq "(" user@host
+.Sq "(" user@host)
 quotation.
 And another
-.So "(" full Sc one "Sy" bold .
+.So "(" full) Sc one "Sy" bold .
index cf01442..dc38a8f 100644 (file)
@@ -4,7 +4,7 @@ N\bNA\bAM\bME\bE
      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
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Sq/empty.out_lint b/regress/usr.bin/mandoc/mdoc/Sq/empty.out_lint
new file mode 100644 (file)
index 0000000..450c70b
--- /dev/null
@@ -0,0 +1,2 @@
+mandoc: empty.in:11:18: STYLE: no blank before trailing delimiter: Sq user@host)
+mandoc: empty.in:14:13: STYLE: no blank before trailing delimiter: So full)
index 1da780b..76493a3 100644 (file)
@@ -9,9 +9,9 @@ SQ-EMPTY(1) - General Commands Manual
 An empty
 ''
 and a full
-('user@host'
+('user@host)'
 quotation.
 And another
-('full' one **bold**.
+('full)' one **bold**.
 
-OpenBSD - October 21, 2010
+OpenBSD - June 9, 2017
index 764e8ab..71094c8 100644 (file)
@@ -1,4 +1,4 @@
-.Dd November 17, 2014
+.Dd June 9, 2017
 .Dt SY-PUNCT 1
 .Os OpenBSD
 .Sh NAME
@@ -81,3 +81,6 @@ Quoted:
 .Sy "a . b Nm" "Em" italic
 .Sy ". b Nm"
 .Sy "."
+.Pp
+Missing blank:
+.Sy a.
index 2f36857..bb2a433 100644 (file)
@@ -23,4 +23,6 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
      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
+     Missing blank: a\ba.\b.
+
+OpenBSD                          June 9, 2017                          OpenBSD
index 31f1d56..af0021a 100644 (file)
@@ -23,3 +23,4 @@ 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
+mandoc: punct.in:86:6: STYLE: no blank before trailing delimiter: Sy a.
index 5e3a0c1..c198163 100644 (file)
@@ -83,4 +83,7 @@ Quoted:
 **. b Nm**
 .
 
-OpenBSD - November 17, 2014
+Missing blank:
+**a.**
+
+OpenBSD - June 9, 2017
index af02e3a..9e56c7e 100644 (file)
@@ -1,5 +1,6 @@
-# $OpenBSD: Makefile,v 1.4 2017/03/08 22:53:36 schwarze Exp $
+# $OpenBSD: Makefile,v 1.5 2017/06/10 01:48:31 schwarze Exp $
 
-REGRESS_TARGETS = spacing eos
+REGRESS_TARGETS         = eos punct spacing
+LINT_TARGETS    = punct
 
 .include <bsd.regress.mk>
diff --git a/regress/usr.bin/mandoc/mdoc/Ux/punct.in b/regress/usr.bin/mandoc/mdoc/Ux/punct.in
new file mode 100644 (file)
index 0000000..9cf2b5e
--- /dev/null
@@ -0,0 +1,15 @@
+.Dd June 9, 2017
+.Dt UX-PUNCT 1
+.Os OpenBSD
+.Sh NAME
+.Nm Ux-punct
+.Nd trailing delimiters in Unix macro arguments
+.Sh DESCRIPTION
+In June 2017, the latest release of various Unix-like
+operating systems were
+.Bsx 5.1,
+.Dx 4.8.0,
+.Fx 11.0,
+.Nx 7.1,
+and
+.Ox 6.1.
diff --git a/regress/usr.bin/mandoc/mdoc/Ux/punct.out_ascii b/regress/usr.bin/mandoc/mdoc/Ux/punct.out_ascii
new file mode 100644 (file)
index 0000000..123bc9b
--- /dev/null
@@ -0,0 +1,11 @@
+UX-PUNCT(1)                 General Commands Manual                UX-PUNCT(1)
+
+N\bNA\bAM\bME\bE
+     U\bUx\bx-\b-p\bpu\bun\bnc\bct\bt - trailing delimiters in Unix macro arguments
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     In June 2017, the latest release of various Unix-like operating systems
+     were BSD/OS 5.1, DragonFly 4.8.0, FreeBSD 11.0, NetBSD 7.1, and
+     OpenBSD 6.1.
+
+OpenBSD                          June 9, 2017                          OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Ux/punct.out_lint b/regress/usr.bin/mandoc/mdoc/Ux/punct.out_lint
new file mode 100644 (file)
index 0000000..0c7c862
--- /dev/null
@@ -0,0 +1,5 @@
+mandoc: punct.in:10:9: STYLE: no blank before trailing delimiter: Bsx 5.1,
+mandoc: punct.in:11:10: STYLE: no blank before trailing delimiter: Dx 4.8.0,
+mandoc: punct.in:12:9: STYLE: no blank before trailing delimiter: Fx 11.0,
+mandoc: punct.in:13:8: STYLE: no blank before trailing delimiter: Nx 7.1,
+mandoc: punct.in:15:8: STYLE: no blank before trailing delimiter: Ox 6.1.
diff --git a/regress/usr.bin/mandoc/mdoc/Ux/punct.out_markdown b/regress/usr.bin/mandoc/mdoc/Ux/punct.out_markdown
new file mode 100644 (file)
index 0000000..fd4df82
--- /dev/null
@@ -0,0 +1,18 @@
+UX-PUNCT(1) - General Commands Manual
+
+# NAME
+
+**Ux-punct** - trailing delimiters in Unix macro arguments
+
+# DESCRIPTION
+
+In June 2017, the latest release of various Unix-like
+operating systems were
+BSD/OS 5.1,
+DragonFly 4.8.0,
+FreeBSD 11.0,
+NetBSD 7.1,
+and
+OpenBSD 6.1.
+
+OpenBSD - June 9, 2017
index f5fadad..92d35da 100644 (file)
@@ -1,4 +1,4 @@
-.Dd January 20, 2011
+.Dd June 9, 2017
 .Dt VA-NOARG 1
 .Os OpenBSD
 .Sh NAME
@@ -7,7 +7,7 @@
 .Sh DESCRIPTION
 with arguments
 .Vt int
-.Va errno
+.Va errno.
 no arguments
 .Va
 end of test document
index e7bec8c..1992ade 100644 (file)
@@ -4,6 +4,6 @@ N\bNA\bAM\bME\bE
      V\bVa\ba-\b-n\bno\boa\bar\brg\bg - variable name macro without arguments
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-     with arguments _\bi_\bn_\bt _\be_\br_\br_\bn_\bo no arguments end of test document
+     with arguments _\bi_\bn_\bt _\be_\br_\br_\bn_\bo_\b. no arguments end of test document
 
-OpenBSD                        January 20, 2011                        OpenBSD
+OpenBSD                          June 9, 2017                          OpenBSD
index 7d24e44..1541c74 100644 (file)
@@ -1 +1,2 @@
 mandoc: noarg.in:12:2: WARNING: skipping empty macro: Va
+mandoc: noarg.in:10:10: STYLE: no blank before trailing delimiter: Va errno.
index 323c5e2..157cc96 100644 (file)
@@ -8,8 +8,8 @@ VA-NOARG(1) - General Commands Manual
 
 with arguments
 *int*
-*errno*
+*errno.*
 no arguments
 end of test document
 
-OpenBSD - January 20, 2011
+OpenBSD - June 9, 2017
index 929dc05..d849b87 100644 (file)
@@ -1,4 +1,4 @@
-.Dd January 20, 2011
+.Dd June 9, 2017
 .Dt VT-NOARG 1
 .Os OpenBSD
 .Sh NAME
@@ -6,7 +6,7 @@
 .Nd variable type macro without arguments
 .Sh DESCRIPTION
 with arguments
-.Vt signed int
+.Vt signed int.
 no arguments
 .Vt
 end of test document
index 04ca18d..5549bb8 100644 (file)
@@ -4,6 +4,6 @@ N\bNA\bAM\bME\bE
      V\bVt\bt-\b-n\bno\boa\bar\brg\bg - variable type macro without arguments
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-     with arguments _\bs_\bi_\bg_\bn_\be_\bd _\bi_\bn_\bt no arguments end of test document
+     with arguments _\bs_\bi_\bg_\bn_\be_\bd _\bi_\bn_\bt_\b. no arguments end of test document
 
-OpenBSD                        January 20, 2011                        OpenBSD
+OpenBSD                          June 9, 2017                          OpenBSD
index 4834a82..3774062 100644 (file)
@@ -1 +1,2 @@
 mandoc: noarg.in:11:2: WARNING: skipping empty macro: Vt
+mandoc: noarg.in:9:15: STYLE: no blank before trailing delimiter: Vt ... int.
index 4ed9529..d47c129 100644 (file)
@@ -7,8 +7,8 @@ VT-NOARG(1) - General Commands Manual
 # DESCRIPTION
 
 with arguments
-*signed int*
+*signed int.*
 no arguments
 end of test document
 
-OpenBSD - January 20, 2011
+OpenBSD - June 9, 2017
index 3124ed5..74b9e84 100644 (file)
@@ -1,4 +1,4 @@
-.Dd December 3, 2011
+.Dd June 9, 2017
 .Dt XR-ARGS 1
 .Os OpenBSD
 .Sh NAME
@@ -18,8 +18,12 @@ A call, an
 another
 .Xr echo 1 .
 .Pp
-Finally, half an
+Finally, an
+.Xr ( echo 1)
+without a blank, half an
 .Xr echo ,
+no blank after half an
+.Xr echo,
 no echo
 .Xr ,
 and no
index 67e8b71..10d4b46 100644 (file)
@@ -11,6 +11,7 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
      A call, an (echo(1)), and another echo(1).
 
-     Finally, half an echo, no echo and no echo at all.
+     Finally, an (echo(1)) without a blank, half an echo, no blank after half
+     an echo, no echo and no echo at all.
 
-OpenBSD                        December 3, 2011                        OpenBSD
+OpenBSD                          June 9, 2017                          OpenBSD
index 8ade748..672b87b 100644 (file)
@@ -1,3 +1,6 @@
-mandoc: args.in:24:2: WARNING: skipping empty macro: Xr
-mandoc: args.in:26:2: WARNING: skipping empty macro: Xr
-mandoc: args.in:22:2: WARNING: missing section argument: Xr echo
+mandoc: args.in:28:2: WARNING: skipping empty macro: Xr
+mandoc: args.in:30:2: WARNING: skipping empty macro: Xr
+mandoc: args.in:22:13: STYLE: no blank before trailing delimiter: Xr ... 1)
+mandoc: args.in:24:2: WARNING: missing section argument: Xr echo
+mandoc: args.in:26:2: WARNING: missing section argument: Xr echo,
+mandoc: args.in:26:9: STYLE: no blank before trailing delimiter: Xr echo,
index fdfaa8d..0efd2d7 100644 (file)
@@ -19,10 +19,14 @@ A call, an
 another
 echo(1).
 
-Finally, half an
+Finally, an
+(echo(1))
+without a blank, half an
+echo,
+no blank after half an
 echo,
 no echo
 and no
 echo at all.
 
-OpenBSD - December 3, 2011
+OpenBSD - June 9, 2017
index 6751a91..ce487f7 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $OpenBSD: mandoc.1,v 1.120 2017/06/08 00:21:23 schwarze Exp $
+.\"    $OpenBSD: mandoc.1,v 1.121 2017/06/10 01:48:31 schwarze Exp $
 .\"
 .\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
 .\" Copyright (c) 2012, 2014-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -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: June 8 2017 $
+.Dd $Mdocdate: June 10 2017 $
 .Dt MANDOC 1
 .Os
 .Sh NAME
@@ -798,6 +798,11 @@ number.
 Do not use punctuation at the end of an
 .Ic \&Nd
 block.
+.It Sy "no blank before trailing delimiter"
+The last argument of a macro that supports trailing delimiter
+arguments is longer than one byte and ends with a trailing delimiter.
+Consider inserting a blank such that the delimiter becomes a separate
+argument, thus moving it out of the scope of the macro.
 .El
 .Ss Warnings related to the document prologue
 .Bl -ohang
index d9860bf..b839b21 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: mandoc.h,v 1.168 2017/06/08 18:11:15 schwarze Exp $ */
+/*     $OpenBSD: mandoc.h,v 1.169 2017/06/10 01:48:31 schwarze Exp $ */
 /*
  * Copyright (c) 2010, 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -51,6 +51,7 @@ enum  mandocerr {
        MANDOCERR_ER_ORDER, /* errnos out of order: Er ... */
        MANDOCERR_ER_REP, /* duplicate errno: Er ... */
        MANDOCERR_ND_DOT, /* description line ends with a full stop */
+       MANDOCERR_DELIM, /* no blank before trailing delimiter: macro ... */
 
        MANDOCERR_WARNING, /* ===== start of warnings ===== */
 
index fd3f38e..ec5ff27 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: mdoc_validate.c,v 1.247 2017/06/07 23:29:31 schwarze Exp $ */
+/*     $OpenBSD: mdoc_validate.c,v 1.248 2017/06/10 01:48:31 schwarze Exp $ */
 /*
  * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -73,6 +73,7 @@ static        void     post_bx(POST_ARGS);
 static void     post_defaults(POST_ARGS);
 static void     post_display(POST_ARGS);
 static void     post_dd(POST_ARGS);
+static void     post_delim(POST_ARGS);
 static void     post_dt(POST_ARGS);
 static void     post_en(POST_ARGS);
 static void     post_es(POST_ARGS);
@@ -122,33 +123,33 @@ static    const v_post __mdoc_valids[MDOC_MAX - MDOC_Dd] = {
        post_bl,        /* Bl */
        NULL,           /* El */
        post_it,        /* It */
-       NULL,           /* Ad */
+       post_delim,     /* Ad */
        post_an,        /* An */
        NULL,           /* Ap */
        post_defaults,  /* Ar */
        NULL,           /* Cd */
-       NULL,           /* Cm */
-       NULL,           /* Dv */
-       NULL,           /* Er */
-       NULL,           /* Ev */
+       post_delim,     /* Cm */
+       post_delim,     /* Dv */
+       post_delim,     /* Er */
+       post_delim,     /* Ev */
        post_ex,        /* Ex */
        post_fa,        /* Fa */
        NULL,           /* Fd */
-       NULL,           /* Fl */
+       post_delim,     /* Fl */
        post_fn,        /* Fn */
-       NULL,           /* Ft */
-       NULL,           /* Ic */
-       NULL,           /* In */
+       post_delim,     /* Ft */
+       post_delim,     /* Ic */
+       post_delim,     /* In */
        post_defaults,  /* Li */
        post_nd,        /* Nd */
        post_nm,        /* Nm */
-       NULL,           /* Op */
+       post_delim,     /* Op */
        post_obsolete,  /* Ot */
        post_defaults,  /* Pa */
        post_rv,        /* Rv */
        post_st,        /* St */
-       NULL,           /* Va */
-       NULL,           /* Vt */
+       post_delim,     /* Va */
+       post_delim,     /* Vt */
        post_xr,        /* Xr */
        NULL,           /* %A */
        post_hyph,      /* %B */ /* FIXME: can be used outside Rs/Re. */
@@ -162,12 +163,12 @@ static    const v_post __mdoc_valids[MDOC_MAX - MDOC_Dd] = {
        post_hyph,      /* %T */ /* FIXME: can be used outside Rs/Re. */
        NULL,           /* %V */
        NULL,           /* Ac */
-       NULL,           /* Ao */
-       NULL,           /* Aq */
+       post_delim,     /* Ao */
+       post_delim,     /* Aq */
        post_at,        /* At */
        NULL,           /* Bc */
        post_bf,        /* Bf */
-       NULL,           /* Bo */
+       post_delim,     /* Bo */
        NULL,           /* Bq */
        post_xx,        /* Bsx */
        post_bx,        /* Bx */
@@ -177,50 +178,50 @@ static    const v_post __mdoc_valids[MDOC_MAX - MDOC_Dd] = {
        NULL,           /* Dq */
        NULL,           /* Ec */
        NULL,           /* Ef */
-       NULL,           /* Em */
+       post_delim,     /* Em */
        NULL,           /* Eo */
        post_xx,        /* Fx */
-       NULL,           /* Ms */
-       NULL,           /* No */
+       post_delim,     /* Ms */
+       post_delim,     /* No */
        post_ns,        /* Ns */
        post_xx,        /* Nx */
        post_xx,        /* Ox */
        NULL,           /* Pc */
        NULL,           /* Pf */
-       NULL,           /* Po */
-       NULL,           /* Pq */
+       post_delim,     /* Po */
+       post_delim,     /* Pq */
        NULL,           /* Qc */
-       NULL,           /* Ql */
-       NULL,           /* Qo */
-       NULL,           /* Qq */
+       post_delim,     /* Ql */
+       post_delim,     /* Qo */
+       post_delim,     /* Qq */
        NULL,           /* Re */
        post_rs,        /* Rs */
        NULL,           /* Sc */
-       NULL,           /* So */
-       NULL,           /* Sq */
+       post_delim,     /* So */
+       post_delim,     /* Sq */
        post_sm,        /* Sm */
        post_hyph,      /* Sx */
-       NULL,           /* Sy */
+       post_delim,     /* Sy */
        post_useless,   /* Tn */
        post_xx,        /* Ux */
        NULL,           /* Xc */
        NULL,           /* Xo */
        post_fo,        /* Fo */
        NULL,           /* Fc */
-       NULL,           /* Oo */
+       post_delim,     /* Oo */
        NULL,           /* Oc */
        post_bk,        /* Bk */
        NULL,           /* Ek */
        post_eoln,      /* Bt */
-       NULL,           /* Hf */
+       post_obsolete,  /* Hf */
        post_obsolete,  /* Fr */
        post_eoln,      /* Ud */
        post_lb,        /* Lb */
        post_par,       /* Lp */
-       NULL,           /* Lk */
+       post_delim,     /* Lk */
        post_defaults,  /* Mt */
-       NULL,           /* Brq */
-       NULL,           /* Bro */
+       post_delim,     /* Brq */
+       post_delim,     /* Bro */
        NULL,           /* Brc */
        NULL,           /* %C */
        post_es,        /* Es */
@@ -405,6 +406,28 @@ check_bsd(struct roff_man *mdoc, int ln, int pos, char *p)
                    ln, pos + (cp - p), "Dx");
 }
 
+static void
+post_delim(POST_ARGS)
+{
+       const struct roff_node  *nch;
+       const char              *lc;
+       enum mdelim              delim;
+
+       nch = mdoc->last->last;
+       if (nch == NULL || nch->type != ROFFT_TEXT)
+               return;
+       lc = strchr(nch->string, '\0') - 1;
+       if (lc <= nch->string)
+               return;
+       delim = mdoc_isdelim(lc);
+       if (delim == DELIM_NONE || delim == DELIM_OPEN)
+               return;
+       mandoc_vmsg(MANDOCERR_DELIM, mdoc->parse,
+           nch->line, nch->pos + (lc - nch->string),
+           "%s%s %s", roff_name[mdoc->last->tok],
+           nch == mdoc->last->child ? "" : " ...", nch->string);
+}
+
 static void
 post_bl_norm(POST_ARGS)
 {
@@ -779,6 +802,8 @@ post_lb(POST_ARGS)
 {
        struct roff_node        *n;
 
+       post_delim(mdoc);
+
        n = mdoc->last;
        assert(n->child->type == ROFFT_TEXT);
        mdoc->next = ROFF_NEXT_CHILD;
@@ -1027,6 +1052,7 @@ post_fa(POST_ARGS)
                        break;
                }
        }
+       post_delim(mdoc);
 }
 
 static void
@@ -1049,6 +1075,9 @@ post_nm(POST_ARGS)
                mandoc_msg(MANDOCERR_NM_NONAME, mdoc->parse,
                    n->line, n->pos, "Nm");
 
+       if (n->type == ROFFT_ELEM)
+               post_delim(mdoc);
+
        if ((n->type != ROFFT_ELEM && n->type != ROFFT_HEAD) ||
            (n->child != NULL && n->child->type == ROFFT_TEXT) ||
            mdoc->meta.name == NULL)
@@ -1139,17 +1168,18 @@ post_defaults(POST_ARGS)
 {
        struct roff_node *nn;
 
+       if (mdoc->last->child != NULL) {
+               post_delim(mdoc);
+               return;
+       }
+
        /*
         * The `Ar' defaults to "file ..." if no value is provided as an
         * argument; the `Mt' and `Pa' macros use "~"; the `Li' just
         * gets an empty string.
         */
 
-       if (mdoc->last->child != NULL)
-               return;
-
        nn = mdoc->last;
-
        switch (nn->tok) {
        case MDOC_Ar:
                mdoc->next = ROFF_NEXT_CHILD;
@@ -1213,6 +1243,8 @@ post_an(POST_ARGS)
                if (nch == NULL)
                        mandoc_msg(MANDOCERR_MACRO_EMPTY, mdoc->parse,
                            np->line, np->pos, "An");
+               else
+                       post_delim(mdoc);
        } else if (nch != NULL)
                mandoc_vmsg(MANDOCERR_ARG_EXCESS, mdoc->parse,
                    nch->line, nch->pos, "An ... %s", nch->string);
@@ -1241,6 +1273,8 @@ post_xx(POST_ARGS)
        struct roff_node        *n;
        const char              *os;
 
+       post_delim(mdoc);
+
        n = mdoc->last;
        switch (n->tok) {
        case MDOC_Bsx:
@@ -2075,9 +2109,9 @@ post_xr(POST_ARGS)
        if (nch->next == NULL) {
                mandoc_vmsg(MANDOCERR_XR_NOSEC, mdoc->parse,
                    n->line, n->pos, "Xr %s", nch->string);
-               return;
-       }
-       assert(nch->next == n->last);
+       } else
+               assert(nch->next == n->last);
+       post_delim(mdoc);
 }
 
 static void
@@ -2326,6 +2360,8 @@ post_bx(POST_ARGS)
        struct roff_node        *n, *nch;
        const char              *macro;
 
+       post_delim(mdoc);
+
        n = mdoc->last;
        nch = n->child;
 
index 70d2132..6bd7ec7 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: read.c,v 1.145 2017/06/08 00:21:23 schwarze Exp $ */
+/*     $OpenBSD: read.c,v 1.146 2017/06/10 01:48:31 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -89,6 +89,7 @@ static        const char * const      mandocerrs[MANDOCERR_MAX] = {
        "errnos out of order",
        "duplicate errno",
        "description line ends with a full stop",
+       "no blank before trailing delimiter",
 
        "generic warning",