]> git.cameronkatri.com Git - mandoc.git/commitdiff
Using .Nd only makes sense in the NAME section.
authorIngo Schwarze <schwarze@openbsd.org>
Mon, 6 Mar 2017 17:26:04 +0000 (17:26 +0000)
committerIngo Schwarze <schwarze@openbsd.org>
Mon, 6 Mar 2017 17:26:04 +0000 (17:26 +0000)
Warn if that macro occurs elsewhere.
Triggered by a question from Dag-Erling Smoergrav <des @ FreeBSD>.

mandoc.1
mandoc.h
mdoc_validate.c
read.c
regress/mdoc/Nd/broken.out_lint

index c5f38c2bb8a51396f0fe0b45c17a94fd318cfdf0..275540eec8bb774cc9b70bbf20976784594c2b98 100644 (file)
--- a/mandoc.1
+++ b/mandoc.1
@@ -1,4 +1,4 @@
-.\"    $Id: mandoc.1,v 1.176 2017/03/04 17:17:34 schwarze Exp $
+.\"    $Id: mandoc.1,v 1.177 2017/03/06 17:26:04 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: March 4 2017 $
+.Dd $Mdocdate: March 6 2017 $
 .Dt MANDOC 1
 .Os
 .Sh NAME
@@ -908,6 +908,14 @@ The
 .Ic \&Nd
 macro lacks the required argument.
 The title line of the manual will end after the dash.
+.It Sy "description line outside NAME section"
+.Pq mdoc
+An
+.Ic \&Nd
+macro appears outside the NAME section.
+The arguments are printed anyway and the following text is used for
+.Xr apropos 1 ,
+but none of that behaviour is portable.
 .It Sy "sections out of conventional order"
 .Pq mdoc
 A standard section occurs after another section it usually precedes.
index a80d6ae7b82deaf85b2e802d4ffeb08e04656dfe..12c26a18945196925c42bcc664aef8dd3127035c 100644 (file)
--- a/mandoc.h
+++ b/mandoc.h
@@ -1,4 +1,4 @@
-/*     $Id: mandoc.h,v 1.214 2017/01/28 23:30:08 schwarze Exp $ */
+/*     $Id: mandoc.h,v 1.215 2017/03/06 17:26:04 schwarze Exp $ */
 /*
  * Copyright (c) 2010, 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -71,6 +71,7 @@ enum  mandocerr {
        MANDOCERR_NAMESEC_BAD, /* bad NAME section content: macro */
        MANDOCERR_NAMESEC_PUNCT, /* missing comma before name: Nm name */
        MANDOCERR_ND_EMPTY, /* missing description line, using "" */
+       MANDOCERR_ND_LATE, /* description line outside NAME section */
        MANDOCERR_SEC_ORDER, /* sections out of conventional order: Sh title */
        MANDOCERR_SEC_REP, /* duplicate section title: Sh title */
        MANDOCERR_SEC_MSEC, /* unexpected section: Sh title for ... only */
index e58e7a4721a9a43b290e9c23b9f593f94a643824..d53187542e2ec265caeaa010c5b66e339db71b08 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_validate.c,v 1.318 2017/02/06 03:44:58 schwarze Exp $ */
+/*     $Id: mdoc_validate.c,v 1.319 2017/03/06 17:26:04 schwarze Exp $ */
 /*
  * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -1035,6 +1035,10 @@ post_nd(POST_ARGS)
        if (n->type != ROFFT_BODY)
                return;
 
+       if (n->sec != SEC_NAME)
+               mandoc_msg(MANDOCERR_ND_LATE, mdoc->parse,
+                   n->line, n->pos, "Nd");
+
        if (n->child == NULL)
                mandoc_msg(MANDOCERR_ND_EMPTY, mdoc->parse,
                    n->line, n->pos, "Nd");
diff --git a/read.c b/read.c
index 3e5d41161a0cb944f86934ead5f46f9984eef429..b4718e51f555dcb0804ab471741dbe9506e09568 100644 (file)
--- a/read.c
+++ b/read.c
@@ -1,4 +1,4 @@
-/*     $Id: read.c,v 1.161 2017/02/18 17:29:28 schwarze Exp $ */
+/*     $Id: read.c,v 1.162 2017/03/06 17:26:05 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -113,6 +113,7 @@ static      const char * const      mandocerrs[MANDOCERR_MAX] = {
        "bad NAME section content",
        "missing comma before name",
        "missing description line, using \"\"",
+       "description line outside NAME section",
        "sections out of conventional order",
        "duplicate section title",
        "unexpected section",
index 181ec60b91440ff4bc40c3d9d74248e143eafe35..d187e8c3d50870b4731c7b613b7a341a353d29ff 100644 (file)
@@ -3,5 +3,7 @@ mandoc: broken.in:5:2: WARNING: bad NAME section content: Oo
 mandoc: broken.in:9:1: WARNING: bad NAME section content: text
 mandoc: broken.in:4:2: WARNING: NAME section without Nm before Nd
 mandoc: broken.in:4:2: WARNING: NAME section without description
+mandoc: broken.in:16:2: WARNING: description line outside NAME section: Nd
 mandoc: broken.in:13:2: WARNING: moving content out of list: Bl
 mandoc: broken.in:18:1: WARNING: moving content out of list: text
+mandoc: broken.in:27:2: WARNING: description line outside NAME section: Nd