summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorschwarze <schwarze@openbsd.org>2014-07-01 22:36:35 +0000
committerschwarze <schwarze@openbsd.org>2014-07-01 22:36:35 +0000
commit51fcab2f53b5919952da3c1294866bf335b31ca8 (patch)
tree19c86905513a86e759501605b404558010de2130
parentAvoid a NULL deref in i2d_ECPrivateKey() when an EC_KEY lacks the public key (diff)
downloadwireguard-openbsd-51fcab2f53b5919952da3c1294866bf335b31ca8.tar.xz
wireguard-openbsd-51fcab2f53b5919952da3c1294866bf335b31ca8.zip
Clean up the warnings related to document structure.
* Hierarchical naming of the related enum mandocerr items. * Mention the offending macro, section title, or string. While here, improve some wordings: * Descriptive instead of imperative style. * Uniform style for "missing" and "skipping". * Where applicable, mention the fallback used.
-rw-r--r--regress/usr.bin/mandoc/man/TH/baddate.out_lint2
-rw-r--r--regress/usr.bin/mandoc/man/TH/case.out_lint2
-rw-r--r--regress/usr.bin/mandoc/man/TH/emptydate.out_lint2
-rw-r--r--regress/usr.bin/mandoc/man/TH/noTH.mandoc_lint2
-rw-r--r--regress/usr.bin/mandoc/man/TH/noTH.out_lint4
-rw-r--r--regress/usr.bin/mandoc/man/TH/twoargs.out_lint2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Dt/badarch.out_lint2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Dt/baddate.out_lint2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Dt/badsec.out_lint2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Dt/befSh.out_lint2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Dt/case.out_lint2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Dt/dupe.in2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Dt/dupe.out_lint2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Dt/lateos.out_lint2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Dt/nodate.out_lint2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Dt/noos.out_lint2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Dt/order.out_lint4
-rw-r--r--regress/usr.bin/mandoc/mdoc/Makefile4
-rw-r--r--regress/usr.bin/mandoc/mdoc/Nm/badNAME.out_lint2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Nm/badNAMEuse.out_lint2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/Makefile9
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/badNAME.in8
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/badNAME.out_ascii9
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/badNAME.out_lint2
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/emptyNAME.in6
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/emptyNAME.out_ascii7
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/emptyNAME.out_lint1
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/first.in5
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/first.out_lint1
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/order.in12
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/order.out_ascii14
-rw-r--r--regress/usr.bin/mandoc/mdoc/Sh/order.out_lint3
-rw-r--r--usr.bin/mandoc/man_validate.c7
-rw-r--r--usr.bin/mandoc/mandoc.c4
-rw-r--r--usr.bin/mandoc/mandoc.h36
-rw-r--r--usr.bin/mandoc/mdoc.c6
-rw-r--r--usr.bin/mandoc/mdoc_validate.c75
-rw-r--r--usr.bin/mandoc/read.c22
38 files changed, 186 insertions, 87 deletions
diff --git a/regress/usr.bin/mandoc/man/TH/baddate.out_lint b/regress/usr.bin/mandoc/man/TH/baddate.out_lint
index bef5060ab14..57f244042c9 100644
--- a/regress/usr.bin/mandoc/man/TH/baddate.out_lint
+++ b/regress/usr.bin/mandoc/man/TH/baddate.out_lint
@@ -1 +1 @@
-mandoc: baddate.in:1:18: WARNING: cannot parse date, using it verbatim
+mandoc: baddate.in:1:18: WARNING: cannot parse date, using it verbatim: three bad words
diff --git a/regress/usr.bin/mandoc/man/TH/case.out_lint b/regress/usr.bin/mandoc/man/TH/case.out_lint
index 1d1c2fdfa7d..8e91330c763 100644
--- a/regress/usr.bin/mandoc/man/TH/case.out_lint
+++ b/regress/usr.bin/mandoc/man/TH/case.out_lint
@@ -1 +1 @@
-mandoc: case.in:1:5: WARNING: document title should be all caps
+mandoc: case.in:1:8: WARNING: lower case character in document title: TH-case
diff --git a/regress/usr.bin/mandoc/man/TH/emptydate.out_lint b/regress/usr.bin/mandoc/man/TH/emptydate.out_lint
index 1d656a980b1..60e5394d4d0 100644
--- a/regress/usr.bin/mandoc/man/TH/emptydate.out_lint
+++ b/regress/usr.bin/mandoc/man/TH/emptydate.out_lint
@@ -1 +1 @@
-mandoc: emptydate.in:1:20: WARNING: date missing, using today's date
+mandoc: emptydate.in:1:20: WARNING: missing date, using today's date
diff --git a/regress/usr.bin/mandoc/man/TH/noTH.mandoc_lint b/regress/usr.bin/mandoc/man/TH/noTH.mandoc_lint
deleted file mode 100644
index d0d2efe10bf..00000000000
--- a/regress/usr.bin/mandoc/man/TH/noTH.mandoc_lint
+++ /dev/null
@@ -1,2 +0,0 @@
-noTH.in:0:1: WARNING: no TH macro in document
-noTH.in:0:1: WARNING: date missing, using today's date
diff --git a/regress/usr.bin/mandoc/man/TH/noTH.out_lint b/regress/usr.bin/mandoc/man/TH/noTH.out_lint
index f618330d217..6b7977668d3 100644
--- a/regress/usr.bin/mandoc/man/TH/noTH.out_lint
+++ b/regress/usr.bin/mandoc/man/TH/noTH.out_lint
@@ -1,2 +1,2 @@
-mandoc: noTH.in: WARNING: no TH macro in document
-mandoc: noTH.in: WARNING: date missing, using today's date
+mandoc: noTH.in: WARNING: missing .TH macro, using "unknown 1"
+mandoc: noTH.in: WARNING: missing date, using today's date
diff --git a/regress/usr.bin/mandoc/man/TH/twoargs.out_lint b/regress/usr.bin/mandoc/man/TH/twoargs.out_lint
index b849d8b8d53..eafb0ede867 100644
--- a/regress/usr.bin/mandoc/man/TH/twoargs.out_lint
+++ b/regress/usr.bin/mandoc/man/TH/twoargs.out_lint
@@ -1,2 +1,2 @@
mandoc: twoargs.in:1:2: ERROR: argument count wrong: line arguments >= 2 (have 1)
-mandoc: twoargs.in:1:2: WARNING: date missing, using today's date
+mandoc: twoargs.in:1:2: WARNING: missing date, using today's date
diff --git a/regress/usr.bin/mandoc/mdoc/Dt/badarch.out_lint b/regress/usr.bin/mandoc/mdoc/Dt/badarch.out_lint
index bce516888ce..8e33ece69ca 100644
--- a/regress/usr.bin/mandoc/mdoc/Dt/badarch.out_lint
+++ b/regress/usr.bin/mandoc/mdoc/Dt/badarch.out_lint
@@ -1 +1 @@
-mandoc: badarch.in:2:18: WARNING: unknown manual volume or arch
+mandoc: badarch.in:2:18: WARNING: unknown manual volume or arch: Cray
diff --git a/regress/usr.bin/mandoc/mdoc/Dt/baddate.out_lint b/regress/usr.bin/mandoc/mdoc/Dt/baddate.out_lint
index 6814b6948b2..0c6fed173bf 100644
--- a/regress/usr.bin/mandoc/mdoc/Dt/baddate.out_lint
+++ b/regress/usr.bin/mandoc/mdoc/Dt/baddate.out_lint
@@ -1 +1 @@
-mandoc: baddate.in:1:2: WARNING: cannot parse date, using it verbatim
+mandoc: baddate.in:1:2: WARNING: cannot parse date, using it verbatim: foo
diff --git a/regress/usr.bin/mandoc/mdoc/Dt/badsec.out_lint b/regress/usr.bin/mandoc/mdoc/Dt/badsec.out_lint
index 963966de6bf..eb7bfcf22d9 100644
--- a/regress/usr.bin/mandoc/mdoc/Dt/badsec.out_lint
+++ b/regress/usr.bin/mandoc/mdoc/Dt/badsec.out_lint
@@ -1 +1 @@
-mandoc: badsec.in:2:2: WARNING: unknown manual section
+mandoc: badsec.in:2:15: WARNING: unknown manual section: foo
diff --git a/regress/usr.bin/mandoc/mdoc/Dt/befSh.out_lint b/regress/usr.bin/mandoc/mdoc/Dt/befSh.out_lint
index baed9c38f10..faad27ec8c8 100644
--- a/regress/usr.bin/mandoc/mdoc/Dt/befSh.out_lint
+++ b/regress/usr.bin/mandoc/mdoc/Dt/befSh.out_lint
@@ -1 +1 @@
-mandoc: befSh.in:4:4: WARNING: content before the first section header
+mandoc: befSh.in:4:4: WARNING: content before first section header: Ox
diff --git a/regress/usr.bin/mandoc/mdoc/Dt/case.out_lint b/regress/usr.bin/mandoc/mdoc/Dt/case.out_lint
index 11a33d9ba15..ad3b4beb954 100644
--- a/regress/usr.bin/mandoc/mdoc/Dt/case.out_lint
+++ b/regress/usr.bin/mandoc/mdoc/Dt/case.out_lint
@@ -1 +1 @@
-mandoc: case.in:2:5: WARNING: document title should be all caps
+mandoc: case.in:2:6: WARNING: lower case character in document title: Dt-case
diff --git a/regress/usr.bin/mandoc/mdoc/Dt/dupe.in b/regress/usr.bin/mandoc/mdoc/Dt/dupe.in
index 1a905552c5d..cc6b742750d 100644
--- a/regress/usr.bin/mandoc/mdoc/Dt/dupe.in
+++ b/regress/usr.bin/mandoc/mdoc/Dt/dupe.in
@@ -1,6 +1,6 @@
.Dd June 13, 2014
.Dt DT-DUPE 1
-.Os OpenBSD
+.Dt DT-DUPE 1
.Os OpenBSD
.Sh NAME
.Nm Dt-order
diff --git a/regress/usr.bin/mandoc/mdoc/Dt/dupe.out_lint b/regress/usr.bin/mandoc/mdoc/Dt/dupe.out_lint
index 5b7c39b5f9d..b64844b9c67 100644
--- a/regress/usr.bin/mandoc/mdoc/Dt/dupe.out_lint
+++ b/regress/usr.bin/mandoc/mdoc/Dt/dupe.out_lint
@@ -1 +1 @@
-mandoc: dupe.in:4:2: WARNING: macro not allowed in body: Os
+mandoc: dupe.in:3:2: WARNING: duplicate prologue macro: Dt
diff --git a/regress/usr.bin/mandoc/mdoc/Dt/lateos.out_lint b/regress/usr.bin/mandoc/mdoc/Dt/lateos.out_lint
index 2f1c0f243a1..a1787c4201d 100644
--- a/regress/usr.bin/mandoc/mdoc/Dt/lateos.out_lint
+++ b/regress/usr.bin/mandoc/mdoc/Dt/lateos.out_lint
@@ -1 +1 @@
-mandoc: lateos.in:8:2: WARNING: macro not allowed in body: Os
+mandoc: lateos.in:8:2: WARNING: skipping prologue macro in body: Os
diff --git a/regress/usr.bin/mandoc/mdoc/Dt/nodate.out_lint b/regress/usr.bin/mandoc/mdoc/Dt/nodate.out_lint
index 3ba46e06978..1e77175e1f9 100644
--- a/regress/usr.bin/mandoc/mdoc/Dt/nodate.out_lint
+++ b/regress/usr.bin/mandoc/mdoc/Dt/nodate.out_lint
@@ -1 +1 @@
-mandoc: nodate.in:1:2: WARNING: date missing, using today's date
+mandoc: nodate.in:1:2: WARNING: missing date, using today's date
diff --git a/regress/usr.bin/mandoc/mdoc/Dt/noos.out_lint b/regress/usr.bin/mandoc/mdoc/Dt/noos.out_lint
index d9dcd177dc0..427a08d8349 100644
--- a/regress/usr.bin/mandoc/mdoc/Dt/noos.out_lint
+++ b/regress/usr.bin/mandoc/mdoc/Dt/noos.out_lint
@@ -1 +1 @@
-mandoc: noos.in:3:2: WARNING: macro not allowed in prologue: Sh
+mandoc: noos.in:3:2: WARNING: incomplete prologue, terminated by: Sh
diff --git a/regress/usr.bin/mandoc/mdoc/Dt/order.out_lint b/regress/usr.bin/mandoc/mdoc/Dt/order.out_lint
index 19f1da2decd..bf213328718 100644
--- a/regress/usr.bin/mandoc/mdoc/Dt/order.out_lint
+++ b/regress/usr.bin/mandoc/mdoc/Dt/order.out_lint
@@ -1,2 +1,2 @@
-mandoc: order.in:2:2: WARNING: prologue macros out of order
-mandoc: order.in:3:2: WARNING: prologue macros out of order
+mandoc: order.in:2:2: WARNING: prologue macros out of order: Os
+mandoc: order.in:3:2: WARNING: prologue macros out of order: Dt
diff --git a/regress/usr.bin/mandoc/mdoc/Makefile b/regress/usr.bin/mandoc/mdoc/Makefile
index 852bc2de41f..6109f2be24d 100644
--- a/regress/usr.bin/mandoc/mdoc/Makefile
+++ b/regress/usr.bin/mandoc/mdoc/Makefile
@@ -1,9 +1,9 @@
-# $OpenBSD: Makefile,v 1.27 2014/06/20 18:32:51 schwarze Exp $
+# $OpenBSD: Makefile,v 1.28 2014/07/01 22:36:35 schwarze Exp $
SUBDIR = Ad An Ap Aq Ar At Bd Bf Bk Bl Brq Bx Cd Cm
SUBDIR += D1 Dl Dq Dt Dv Em Eo Er Ev Fd Fl Fo Ft Ic In Lb Li Lk
SUBDIR += Ms Mt Nd Nm No Ns Oo Op Ox Pa Pf Pp Qq Rs
-SUBDIR += Sm Sq St Sx Sy Tn Ux Va Vt Xr blank
+SUBDIR += Sh Sm Sq St Sx Sy Tn Ux Va Vt Xr blank
.include "../Makefile.sub"
.include <bsd.subdir.mk>
diff --git a/regress/usr.bin/mandoc/mdoc/Nm/badNAME.out_lint b/regress/usr.bin/mandoc/mdoc/Nm/badNAME.out_lint
index 57cf575d8fe..cc6edca3a3e 100644
--- a/regress/usr.bin/mandoc/mdoc/Nm/badNAME.out_lint
+++ b/regress/usr.bin/mandoc/mdoc/Nm/badNAME.out_lint
@@ -1,2 +1,2 @@
mandoc: badNAME.in:5:2: ERROR: manual name not yet set
-mandoc: badNAME.in:4:2: WARNING: bad NAME section contents
+mandoc: badNAME.in:5:7: WARNING: bad NAME section contents: Bx
diff --git a/regress/usr.bin/mandoc/mdoc/Nm/badNAMEuse.out_lint b/regress/usr.bin/mandoc/mdoc/Nm/badNAMEuse.out_lint
index 05552ab2b9a..5349ab2cc07 100644
--- a/regress/usr.bin/mandoc/mdoc/Nm/badNAMEuse.out_lint
+++ b/regress/usr.bin/mandoc/mdoc/Nm/badNAMEuse.out_lint
@@ -1,2 +1,2 @@
mandoc: badNAMEuse.in:5:2: ERROR: manual name not yet set
-mandoc: badNAMEuse.in:4:2: WARNING: bad NAME section contents
+mandoc: badNAMEuse.in:5:7: WARNING: bad NAME section contents: Bx
diff --git a/regress/usr.bin/mandoc/mdoc/Sh/Makefile b/regress/usr.bin/mandoc/mdoc/Sh/Makefile
new file mode 100644
index 00000000000..40d9c3e787c
--- /dev/null
+++ b/regress/usr.bin/mandoc/mdoc/Sh/Makefile
@@ -0,0 +1,9 @@
+# $OpenBSD: Makefile,v 1.1 2014/07/01 22:36:35 schwarze Exp $
+
+REGRESS_TARGETS = first emptyNAME badNAME order
+LINT_TARGETS = first emptyNAME badNAME order
+
+SKIP_GROFF = first
+SKIP_ASCII = first
+
+.include <bsd.regress.mk>
diff --git a/regress/usr.bin/mandoc/mdoc/Sh/badNAME.in b/regress/usr.bin/mandoc/mdoc/Sh/badNAME.in
new file mode 100644
index 00000000000..85ebdbf71c5
--- /dev/null
+++ b/regress/usr.bin/mandoc/mdoc/Sh/badNAME.in
@@ -0,0 +1,8 @@
+.Dd July 1, 2014
+.Dt SH-BADNAME 1
+.Os OpenBSD
+.Sh NAME
+.Em bad NAME section
+.Nm Sh-badNAME
+.Sh DESCRIPTION
+The description appears before the name and is not marked up with Nd.
diff --git a/regress/usr.bin/mandoc/mdoc/Sh/badNAME.out_ascii b/regress/usr.bin/mandoc/mdoc/Sh/badNAME.out_ascii
new file mode 100644
index 00000000000..657c5ba2f86
--- /dev/null
+++ b/regress/usr.bin/mandoc/mdoc/Sh/badNAME.out_ascii
@@ -0,0 +1,9 @@
+SH-BADNAME(1) OpenBSD Reference Manual SH-BADNAME(1)
+
+NNAAMMEE
+ _b_a_d _N_A_M_E _s_e_c_t_i_o_n SShh--bbaaddNNAAMMEE
+
+DDEESSCCRRIIPPTTIIOONN
+ The description appears before the name and is not marked up with Nd.
+
+OpenBSD July 1, 2014 OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Sh/badNAME.out_lint b/regress/usr.bin/mandoc/mdoc/Sh/badNAME.out_lint
new file mode 100644
index 00000000000..a7e6980f3a1
--- /dev/null
+++ b/regress/usr.bin/mandoc/mdoc/Sh/badNAME.out_lint
@@ -0,0 +1,2 @@
+mandoc: badNAME.in:5:2: WARNING: bad NAME section contents: Em
+mandoc: badNAME.in:6:2: WARNING: bad NAME section contents: Nm
diff --git a/regress/usr.bin/mandoc/mdoc/Sh/emptyNAME.in b/regress/usr.bin/mandoc/mdoc/Sh/emptyNAME.in
new file mode 100644
index 00000000000..621724e5e48
--- /dev/null
+++ b/regress/usr.bin/mandoc/mdoc/Sh/emptyNAME.in
@@ -0,0 +1,6 @@
+.Dd July 1, 2014
+.Dt SH-EMPTYNAME 1
+.Os OpenBSD
+.Sh NAME
+.Sh DESCRIPTION
+The NAME section is empty.
diff --git a/regress/usr.bin/mandoc/mdoc/Sh/emptyNAME.out_ascii b/regress/usr.bin/mandoc/mdoc/Sh/emptyNAME.out_ascii
new file mode 100644
index 00000000000..9979b9366fa
--- /dev/null
+++ b/regress/usr.bin/mandoc/mdoc/Sh/emptyNAME.out_ascii
@@ -0,0 +1,7 @@
+SH-EMPTYNAME(1) OpenBSD Reference Manual SH-EMPTYNAME(1)
+
+NNAAMMEE
+DDEESSCCRRIIPPTTIIOONN
+ The NAME section is empty.
+
+OpenBSD July 1, 2014 OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Sh/emptyNAME.out_lint b/regress/usr.bin/mandoc/mdoc/Sh/emptyNAME.out_lint
new file mode 100644
index 00000000000..e0c2a62cac7
--- /dev/null
+++ b/regress/usr.bin/mandoc/mdoc/Sh/emptyNAME.out_lint
@@ -0,0 +1 @@
+mandoc: emptyNAME.in:4:2: WARNING: bad NAME section contents: empty
diff --git a/regress/usr.bin/mandoc/mdoc/Sh/first.in b/regress/usr.bin/mandoc/mdoc/Sh/first.in
new file mode 100644
index 00000000000..f0d4b0b480c
--- /dev/null
+++ b/regress/usr.bin/mandoc/mdoc/Sh/first.in
@@ -0,0 +1,5 @@
+.Dd July 1, 2014
+.Dt SH-FIRST 1
+.Os OpenBSD
+.Sh DESCRIPTION
+The first section is not a NAME section.
diff --git a/regress/usr.bin/mandoc/mdoc/Sh/first.out_lint b/regress/usr.bin/mandoc/mdoc/Sh/first.out_lint
new file mode 100644
index 00000000000..8e44f6fef62
--- /dev/null
+++ b/regress/usr.bin/mandoc/mdoc/Sh/first.out_lint
@@ -0,0 +1 @@
+mandoc: first.in:4:2: WARNING: first section is not "NAME": DESCRIPTION
diff --git a/regress/usr.bin/mandoc/mdoc/Sh/order.in b/regress/usr.bin/mandoc/mdoc/Sh/order.in
new file mode 100644
index 00000000000..ffab6878187
--- /dev/null
+++ b/regress/usr.bin/mandoc/mdoc/Sh/order.in
@@ -0,0 +1,12 @@
+.Dd July 1, 2014
+.Dt SH-ORDER 1
+.Os OpenBSD
+.Sh NAME
+.Nm Sh-order
+.Nd sections out of conventional order
+.Sh DESCRIPTION
+some text
+.Sh SYNOPSIS
+.Sh SYNOPSIS
+.Sh ERRORS
+.Vt int errno
diff --git a/regress/usr.bin/mandoc/mdoc/Sh/order.out_ascii b/regress/usr.bin/mandoc/mdoc/Sh/order.out_ascii
new file mode 100644
index 00000000000..5f25e91025b
--- /dev/null
+++ b/regress/usr.bin/mandoc/mdoc/Sh/order.out_ascii
@@ -0,0 +1,14 @@
+SH-ORDER(1) OpenBSD Reference Manual SH-ORDER(1)
+
+NNAAMMEE
+ SShh--oorrddeerr - sections out of conventional order
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+SSYYNNOOPPSSIISS
+SSYYNNOOPPSSIISS
+EERRRROORRSS
+ _i_n_t _e_r_r_n_o
+
+OpenBSD July 1, 2014 OpenBSD
diff --git a/regress/usr.bin/mandoc/mdoc/Sh/order.out_lint b/regress/usr.bin/mandoc/mdoc/Sh/order.out_lint
new file mode 100644
index 00000000000..817be0caa8d
--- /dev/null
+++ b/regress/usr.bin/mandoc/mdoc/Sh/order.out_lint
@@ -0,0 +1,3 @@
+mandoc: order.in:9:2: WARNING: sections out of conventional order: SYNOPSIS
+mandoc: order.in:10:2: WARNING: duplicate section title: SYNOPSIS
+mandoc: order.in:11:2: WARNING: unexpected section: ERRORS for 2, 3, 4, 9 only
diff --git a/usr.bin/mandoc/man_validate.c b/usr.bin/mandoc/man_validate.c
index 81f67e1ecdd..fc59f8696d1 100644
--- a/usr.bin/mandoc/man_validate.c
+++ b/usr.bin/mandoc/man_validate.c
@@ -1,4 +1,4 @@
-/* $Id: man_validate.c,v 1.65 2014/06/20 22:58:41 schwarze Exp $ */
+/* $Id: man_validate.c,v 1.66 2014/07/01 22:36:35 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -410,7 +410,10 @@ post_TH(CHKARGS)
/* Only warn about this once... */
if (isalpha((unsigned char)*p) &&
! isupper((unsigned char)*p)) {
- man_nmsg(man, n, MANDOCERR_TITLE_CASE);
+ mandoc_msg(MANDOCERR_TITLE_CASE,
+ man->parse, n->line,
+ n->pos + (p - n->string),
+ n->string);
break;
}
}
diff --git a/usr.bin/mandoc/mandoc.c b/usr.bin/mandoc/mandoc.c
index 7d187af9133..afd68cd652c 100644
--- a/usr.bin/mandoc/mandoc.c
+++ b/usr.bin/mandoc/mandoc.c
@@ -1,4 +1,4 @@
-/* $Id: mandoc.c,v 1.49 2014/06/20 17:23:09 schwarze Exp $ */
+/* $Id: mandoc.c,v 1.50 2014/07/01 22:36:35 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -509,7 +509,7 @@ mandoc_normdate(struct mparse *parse, char *in, int ln, int pos)
t = 0;
else if (!a2time(&t, "$" "Mdocdate: %b %d %Y $", in) &&
!a2time(&t, "%b %d, %Y", in)) {
- mandoc_msg(MANDOCERR_DATE_BAD, parse, ln, pos, NULL);
+ mandoc_msg(MANDOCERR_DATE_BAD, parse, ln, pos, in);
t = 0;
}
out = t ? time2a(t) : NULL;
diff --git a/usr.bin/mandoc/mandoc.h b/usr.bin/mandoc/mandoc.h
index 21f5e1355f0..b800670779f 100644
--- a/usr.bin/mandoc/mandoc.h
+++ b/usr.bin/mandoc/mandoc.h
@@ -1,4 +1,4 @@
-/* $Id: mandoc.h,v 1.68 2014/06/30 23:45:03 schwarze Exp $ */
+/* $Id: mandoc.h,v 1.69 2014/07/01 22:36:35 schwarze Exp $ */
/*
* Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -49,26 +49,26 @@ enum mandocerr {
MANDOCERR_WARNING, /* ===== start of warnings ===== */
/* related to the prologue */
- MANDOCERR_TH_MISSING, /* no TH macro in document */
- MANDOCERR_TITLE_CASE, /* document title should be all caps */
- MANDOCERR_MSEC_BAD, /* unknown manual section */
- MANDOCERR_ARCH_BAD, /* unknown manual volume or arch */
- MANDOCERR_DATE_MISSING, /* date missing, using today's date */
- MANDOCERR_DATE_BAD, /* cannot parse date, using it verbatim */
- MANDOCERR_PROLOG_ORDER, /* prologue macros out of order */
- MANDOCERR_PROLOG_REP, /* duplicate prologue macro */
- MANDOCERR_PROLOG_BAD, /* macro not allowed in prologue: macro */
- MANDOCERR_PROLOG_ONLY, /* macro not allowed in body: macro */
+ MANDOCERR_TH_MISSING, /* missing .TH macro, using "unknown 1" */
+ MANDOCERR_TITLE_CASE, /* lower case character in document title */
+ MANDOCERR_MSEC_BAD, /* unknown manual section: section */
+ MANDOCERR_ARCH_BAD, /* unknown manual volume or arch: volume */
+ MANDOCERR_DATE_MISSING, /* missing date, using today's date */
+ MANDOCERR_DATE_BAD, /* cannot parse date, using it verbatim: date */
+ MANDOCERR_PROLOG_ORDER, /* prologue macros out of order: macro */
+ MANDOCERR_PROLOG_REP, /* duplicate prologue macro: macro */
+ MANDOCERR_PROLOG_BAD, /* incomplete prologue, terminated by: macro */
+ MANDOCERR_PROLOG_ONLY, /* skipping prologue macro in body: macro */
/* related to document structure */
MANDOCERR_SO, /* .so is fragile, better use ln(1): .so path */
MANDOCERR_DOC_EMPTY, /* no document body */
- MANDOCERR_SEC_BEFORE, /* content before the first section header */
- MANDOCERR_NAMESECFIRST, /* NAME section must come first */
- MANDOCERR_BADNAMESEC, /* bad NAME section contents */
- MANDOCERR_SECOOO, /* sections out of conventional order */
- MANDOCERR_SECREP, /* duplicate section name */
- MANDOCERR_SECMSEC, /* section header suited to sections ... */
+ MANDOCERR_SEC_BEFORE, /* content before first section header: macro */
+ MANDOCERR_NAMESEC_FIRST, /* first section is not "NAME": title */
+ MANDOCERR_NAMESEC_BAD, /* bad NAME section contents: macro */
+ MANDOCERR_SEC_ORDER, /* sections out of conventional order: title */
+ MANDOCERR_SEC_REP, /* duplicate section title: title */
+ MANDOCERR_SEC_MSEC, /* unexpected section: title for ... only */
/* related to macros and nesting */
MANDOCERR_MACROOBS, /* skipping obsolete macro */
@@ -132,7 +132,7 @@ enum mandocerr {
MANDOCERR_BADCHAR, /* skipping bad character */
MANDOCERR_NAMESC, /* escaped character not allowed in a name */
MANDOCERR_NONAME, /* manual name not yet set */
- MANDOCERR_NOTEXT, /* skipping text before the first section header */
+ MANDOCERR_NOTEXT, /* skipping text before first section header */
MANDOCERR_MACRO, /* skipping unknown macro */
MANDOCERR_REQUEST, /* NOT IMPLEMENTED: skipping request */
MANDOCERR_ARGCOUNT, /* argument count wrong */
diff --git a/usr.bin/mandoc/mdoc.c b/usr.bin/mandoc/mdoc.c
index c59fb662f2f..9efbee769d2 100644
--- a/usr.bin/mandoc/mdoc.c
+++ b/usr.bin/mandoc/mdoc.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc.c,v 1.105 2014/06/20 17:23:09 schwarze Exp $ */
+/* $Id: mdoc.c,v 1.106 2014/07/01 22:36:35 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -31,7 +31,7 @@
#include "libmdoc.h"
#include "libmandoc.h"
-const char *const __mdoc_macronames[MDOC_MAX] = {
+const char *const __mdoc_macronames[MDOC_MAX + 1] = {
"Ap", "Dd", "Dt", "Os",
"Sh", "Ss", "Pp", "D1",
"Dl", "Bd", "Ed", "Bl",
@@ -62,7 +62,7 @@ const char *const __mdoc_macronames[MDOC_MAX] = {
"Lk", "Mt", "Brq", "Bro",
"Brc", "%C", "Es", "En",
"Dx", "%Q", "br", "sp",
- "%U", "Ta", "ll",
+ "%U", "Ta", "ll", "text",
};
const char *const __mdoc_argnames[MDOC_ARG_MAX] = {
diff --git a/usr.bin/mandoc/mdoc_validate.c b/usr.bin/mandoc/mdoc_validate.c
index d704b3a57fe..98e4c9c76d2 100644
--- a/usr.bin/mandoc/mdoc_validate.c
+++ b/usr.bin/mandoc/mdoc_validate.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_validate.c,v 1.134 2014/06/20 22:58:41 schwarze Exp $ */
+/* $Id: mdoc_validate.c,v 1.135 2014/07/01 22:36:35 schwarze Exp $ */
/*
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -931,10 +931,12 @@ pre_dt(PRE_ARGS)
{
if (NULL == mdoc->meta.date || mdoc->meta.os)
- mdoc_nmsg(mdoc, n, MANDOCERR_PROLOG_ORDER);
+ mandoc_msg(MANDOCERR_PROLOG_ORDER, mdoc->parse,
+ n->line, n->pos, "Dt");
if (mdoc->meta.title)
- mdoc_nmsg(mdoc, n, MANDOCERR_PROLOG_REP);
+ mandoc_msg(MANDOCERR_PROLOG_REP, mdoc->parse,
+ n->line, n->pos, "Dt");
return(1);
}
@@ -944,10 +946,12 @@ pre_os(PRE_ARGS)
{
if (NULL == mdoc->meta.title || NULL == mdoc->meta.date)
- mdoc_nmsg(mdoc, n, MANDOCERR_PROLOG_ORDER);
+ mandoc_msg(MANDOCERR_PROLOG_ORDER, mdoc->parse,
+ n->line, n->pos, "Os");
if (mdoc->meta.os)
- mdoc_nmsg(mdoc, n, MANDOCERR_PROLOG_REP);
+ mandoc_msg(MANDOCERR_PROLOG_REP, mdoc->parse,
+ n->line, n->pos, "Os");
return(1);
}
@@ -957,10 +961,12 @@ pre_dd(PRE_ARGS)
{
if (mdoc->meta.title || mdoc->meta.os)
- mdoc_nmsg(mdoc, n, MANDOCERR_PROLOG_ORDER);
+ mandoc_msg(MANDOCERR_PROLOG_ORDER, mdoc->parse,
+ n->line, n->pos, "Dd");
if (mdoc->meta.date)
- mdoc_nmsg(mdoc, n, MANDOCERR_PROLOG_REP);
+ mandoc_msg(MANDOCERR_PROLOG_REP, mdoc->parse,
+ n->line, n->pos, "Dd");
return(1);
}
@@ -1660,9 +1666,10 @@ post_root(POST_ARGS)
if (NULL == n->child)
mdoc_nmsg(mdoc, n, MANDOCERR_DOC_EMPTY);
- else if (MDOC_BLOCK != n->child->type ||
- MDOC_Sh != n->child->tok)
- mdoc_nmsg(mdoc, n->child, MANDOCERR_SEC_BEFORE);
+ else if (MDOC_Sh != n->child->tok)
+ mandoc_msg(MANDOCERR_SEC_BEFORE, mdoc->parse,
+ n->child->line, n->child->pos,
+ mdoc_macronames[n->child->tok]);
return(ret);
}
@@ -1885,7 +1892,8 @@ post_sh_body(POST_ARGS)
*/
if (NULL == (n = mdoc->last->child)) {
- mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_BADNAMESEC);
+ mandoc_msg(MANDOCERR_NAMESEC_BAD, mdoc->parse,
+ mdoc->last->line, mdoc->last->pos, "empty");
return(1);
}
@@ -1894,14 +1902,16 @@ post_sh_body(POST_ARGS)
continue;
if (MDOC_TEXT == n->type)
continue;
- mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_BADNAMESEC);
+ mandoc_msg(MANDOCERR_NAMESEC_BAD, mdoc->parse,
+ n->line, n->pos, mdoc_macronames[n->tok]);
}
assert(n);
if (MDOC_BLOCK == n->type && MDOC_Nd == n->tok)
return(1);
- mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_BADNAMESEC);
+ mandoc_msg(MANDOCERR_NAMESEC_BAD, mdoc->parse,
+ n->line, n->pos, mdoc_macronames[n->tok]);
return(1);
}
@@ -1909,6 +1919,7 @@ static int
post_sh_head(POST_ARGS)
{
struct mdoc_node *n;
+ const char *goodsec;
char *secname;
enum mdoc_sec sec;
@@ -1927,7 +1938,8 @@ post_sh_head(POST_ARGS)
/* The NAME should be first. */
if (SEC_NAME != sec && SEC_NONE == mdoc->lastnamed)
- mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_NAMESECFIRST);
+ mandoc_msg(MANDOCERR_NAMESEC_FIRST, mdoc->parse,
+ mdoc->last->line, mdoc->last->pos, secname);
/* The SYNOPSIS gets special attention in other areas. */
@@ -1970,10 +1982,12 @@ post_sh_head(POST_ARGS)
*/
if (sec == mdoc->lastnamed)
- mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_SECREP);
+ mandoc_msg(MANDOCERR_SEC_REP, mdoc->parse,
+ mdoc->last->line, mdoc->last->pos, secname);
if (sec < mdoc->lastnamed)
- mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_SECOOO);
+ mandoc_msg(MANDOCERR_SEC_ORDER, mdoc->parse,
+ mdoc->last->line, mdoc->last->pos, secname);
/* Mark the last named section. */
@@ -1983,10 +1997,12 @@ post_sh_head(POST_ARGS)
assert(mdoc->meta.msec);
+ goodsec = NULL;
switch (sec) {
case SEC_ERRORS:
if (*mdoc->meta.msec == '4')
break;
+ goodsec = "2, 3, 4, 9";
/* FALLTHROUGH */
case SEC_RETURN_VALUES:
/* FALLTHROUGH */
@@ -1995,12 +2011,17 @@ post_sh_head(POST_ARGS)
break;
if (*mdoc->meta.msec == '3')
break;
+ if (NULL == goodsec)
+ goodsec = "2, 3, 9";
/* FALLTHROUGH */
case SEC_CONTEXT:
if (*mdoc->meta.msec == '9')
break;
- mandoc_msg(MANDOCERR_SECMSEC, mdoc->parse,
- mdoc->last->line, mdoc->last->pos, secname);
+ if (NULL == goodsec)
+ goodsec = "9";
+ mandoc_vmsg(MANDOCERR_SEC_MSEC, mdoc->parse,
+ mdoc->last->line, mdoc->last->pos,
+ "%s for %s only", secname, goodsec);
break;
default:
break;
@@ -2165,18 +2186,16 @@ post_dt(POST_ARGS)
mdoc->meta.title = mdoc->meta.vol = mdoc->meta.arch = NULL;
- /* First make all characters uppercase. */
+ /* First check that all characters are uppercase. */
if (NULL != (nn = n->child))
for (p = nn->string; *p; p++) {
if (toupper((unsigned char)*p) == *p)
continue;
-
- /*
- * FIXME: don't be lazy: have this make all
- * characters be uppercase and just warn once.
- */
- mdoc_nmsg(mdoc, nn, MANDOCERR_TITLE_CASE);
+ mandoc_msg(MANDOCERR_TITLE_CASE,
+ mdoc->parse, nn->line,
+ nn->pos + (p - nn->string),
+ nn->string);
break;
}
@@ -2220,7 +2239,8 @@ post_dt(POST_ARGS)
mdoc->meta.vol = mandoc_strdup(cp);
mdoc->meta.msec = mandoc_strdup(nn->string);
} else {
- mdoc_nmsg(mdoc, n, MANDOCERR_MSEC_BAD);
+ mandoc_msg(MANDOCERR_MSEC_BAD, mdoc->parse,
+ nn->line, nn->pos, nn->string);
mdoc->meta.vol = mandoc_strdup(nn->string);
mdoc->meta.msec = mandoc_strdup(nn->string);
}
@@ -2242,7 +2262,8 @@ post_dt(POST_ARGS)
} else {
cp = mdoc_a2arch(nn->string);
if (NULL == cp) {
- mdoc_nmsg(mdoc, nn, MANDOCERR_ARCH_BAD);
+ mandoc_msg(MANDOCERR_ARCH_BAD, mdoc->parse,
+ nn->line, nn->pos, nn->string);
free(mdoc->meta.vol);
mdoc->meta.vol = mandoc_strdup(nn->string);
} else
diff --git a/usr.bin/mandoc/read.c b/usr.bin/mandoc/read.c
index 4eb2b4d14e5..c9955f7b1b5 100644
--- a/usr.bin/mandoc/read.c
+++ b/usr.bin/mandoc/read.c
@@ -1,4 +1,4 @@
-/* $Id: read.c,v 1.31 2014/06/30 23:45:03 schwarze Exp $ */
+/* $Id: read.c,v 1.32 2014/07/01 22:36:35 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -85,26 +85,26 @@ static const char * const mandocerrs[MANDOCERR_MAX] = {
"generic warning",
/* related to the prologue */
- "no TH macro in document",
- "document title should be all caps",
+ "missing .TH macro, using \"unknown 1\"",
+ "lower case character in document title",
"unknown manual section",
"unknown manual volume or arch",
- "date missing, using today's date",
+ "missing date, using today's date",
"cannot parse date, using it verbatim",
"prologue macros out of order",
"duplicate prologue macro",
- "macro not allowed in prologue",
- "macro not allowed in body",
+ "incomplete prologue, terminated by",
+ "skipping prologue macro in body",
/* related to document structure */
".so is fragile, better use ln(1)",
"no document body",
- "content before the first section header",
- "NAME section must come first",
+ "content before first section header",
+ "first section is not \"NAME\"",
"bad NAME section contents",
"sections out of conventional order",
- "duplicate section name",
- "section header suited to sections 2, 3, and 9 only",
+ "duplicate section title",
+ "unexpected section",
/* related to macros and nesting */
"skipping obsolete macro",
@@ -168,7 +168,7 @@ static const char * const mandocerrs[MANDOCERR_MAX] = {
"skipping bad character",
"escaped character not allowed in a name",
"manual name not yet set",
- "skipping text before the first section header",
+ "skipping text before first section header",
"skipping unknown macro",
"NOT IMPLEMENTED, please use groff: skipping request",
"argument count wrong",