STYLE message about full stop at the end of .Nd; inspired by mdoclint(1)
authorschwarze <schwarze@openbsd.org>
Thu, 1 Jun 2017 15:24:41 +0000 (15:24 +0000)
committerschwarze <schwarze@openbsd.org>
Thu, 1 Jun 2017 15:24:41 +0000 (15:24 +0000)
usr.bin/mandoc/mandoc.1
usr.bin/mandoc/mandoc.h
usr.bin/mandoc/mdoc_validate.c
usr.bin/mandoc/read.c

index ed7d96a..1bb9bf0 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $OpenBSD: mandoc.1,v 1.115 2017/05/31 15:30:12 schwarze Exp $
+.\"    $OpenBSD: mandoc.1,v 1.116 2017/06/01 15:24:41 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: May 31 2017 $
+.Dd $Mdocdate: June 1 2017 $
 .Dt MANDOC 1
 .Os
 .Sh NAME
@@ -763,6 +763,11 @@ macro that could be represented using
 .Ic \&Fx ,
 or
 .Ic \&Dx .
+.It Sy "description line ends with a full stop"
+.Pq mdoc
+Do not use punctuation at the end of an
+.Ic \&Nd
+block.
 .El
 .Ss Warnings related to the document prologue
 .Bl -ohang
index 855232e..00bdd94 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: mandoc.h,v 1.160 2017/05/31 15:30:12 schwarze Exp $ */
+/*     $OpenBSD: mandoc.h,v 1.161 2017/06/01 15:24:41 schwarze Exp $ */
 /*
  * Copyright (c) 2010, 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -48,6 +48,7 @@ enum  mandocerr {
 
        MANDOCERR_MACRO_USELESS, /* useless macro: macro */
        MANDOCERR_BX, /* consider using OS macro: macro */
+       MANDOCERR_ND_DOT, /* description line ends with a full stop */
 
        MANDOCERR_WARNING, /* ===== start of warnings ===== */
 
index a6b001a..aff0934 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: mdoc_validate.c,v 1.245 2017/05/31 15:30:12 schwarze Exp $ */
+/*     $OpenBSD: mdoc_validate.c,v 1.246 2017/06/01 15:24:41 schwarze Exp $ */
 /*
  * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -1064,6 +1064,7 @@ static void
 post_nd(POST_ARGS)
 {
        struct roff_node        *n;
+       size_t                   sz;
 
        n = mdoc->last;
 
@@ -1077,6 +1078,11 @@ post_nd(POST_ARGS)
        if (n->child == NULL)
                mandoc_msg(MANDOCERR_ND_EMPTY, mdoc->parse,
                    n->line, n->pos, "Nd");
+       else if (n->last->type == ROFFT_TEXT &&
+           (sz = strlen(n->last->string)) != 0 &&
+           n->last->string[sz - 1] == '.')
+               mandoc_msg(MANDOCERR_ND_DOT, mdoc->parse,
+                   n->last->line, n->last->pos + sz - 1, NULL);
 
        post_hyph(mdoc);
 }
index 0d1a6d9..6fb8c1f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: read.c,v 1.139 2017/05/31 15:30:12 schwarze Exp $ */
+/*     $OpenBSD: read.c,v 1.140 2017/06/01 15:24:41 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -86,6 +86,7 @@ static        const char * const      mandocerrs[MANDOCERR_MAX] = {
 
        "useless macro",
        "consider using OS macro",
+       "description line ends with a full stop",
 
        "generic warning",