aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-06-17 22:43:14 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-06-17 22:43:14 +0000
commit332a2176094538e094fed8f1e5e251feb6b666e9 (patch)
treefc47a670fb157e5593d57abc86413feaabb2ca07
parentfc10222b160be65e60f5afcce864bcc8a49b6b48 (diff)
downloadmandoc-332a2176094538e094fed8f1e5e251feb6b666e9.tar.gz
mandoc-332a2176094538e094fed8f1e5e251feb6b666e9.tar.zst
mandoc-332a2176094538e094fed8f1e5e251feb6b666e9.zip
style message about missing RCS ids; inspired by mdoclint
-rw-r--r--man_validate.c8
-rw-r--r--mandoc.146
-rw-r--r--mandoc.h3
-rw-r--r--mdoc_validate.c7
-rw-r--r--read.c3
-rw-r--r--regress/char/space/esct-man.out_lint1
-rw-r--r--regress/char/space/esct-mdoc.out_lint1
-rw-r--r--regress/char/space/tab-man.out_lint1
-rw-r--r--regress/char/space/tab.out_lint1
-rw-r--r--regress/char/space/trailing-mdoc.out_lint1
-rw-r--r--regress/char/unicode/input.out_lint1
-rw-r--r--regress/char/unicode/invalid.out_lint1
-rw-r--r--regress/eqn/define/infinite.out_lint1
-rw-r--r--regress/eqn/define/invalid.out_lint1
-rw-r--r--regress/eqn/over/noarg.out_lint1
-rw-r--r--regress/man/B/args.out_lint1
-rw-r--r--regress/man/B/blank.out_lint1
-rw-r--r--regress/man/IP/empty.out_lint1
-rw-r--r--regress/man/OP/args.out_lint1
-rw-r--r--regress/man/PD/args.out_lint1
-rw-r--r--regress/man/PP/args.out_lint1
-rw-r--r--regress/man/PP/empty.out_lint1
-rw-r--r--regress/man/RS/REarg.out_lint1
-rw-r--r--regress/man/RS/empty.out_lint1
-rw-r--r--regress/man/RS/lonelyRE.out_lint1
-rw-r--r--regress/man/RS/noRE.out_lint1
-rw-r--r--regress/man/SH/broken.out_lint1
-rw-r--r--regress/man/SH/broken_eline.out_lint1
-rw-r--r--regress/man/SH/empty_before.out_lint1
-rw-r--r--regress/man/SH/noarg.out_lint1
-rw-r--r--regress/man/SS/broken.out_lint1
-rw-r--r--regress/man/SS/broken_eline.out_lint1
-rw-r--r--regress/man/SS/noarg.out_lint1
-rw-r--r--regress/man/TH/case.out_lint1
-rw-r--r--regress/man/TH/nobody.out_lint1
-rw-r--r--regress/man/TH/sixargs.out_lint1
-rw-r--r--regress/man/TP/broken.out_lint1
-rw-r--r--regress/man/TP/double.out_lint1
-rw-r--r--regress/man/TP/eof.out_lint1
-rw-r--r--regress/man/TS/break.out_lint1
-rw-r--r--regress/man/TS/vspace.in2
-rw-r--r--regress/man/TS/vspace.out_ascii2
-rw-r--r--regress/man/UR/args.out_lint1
-rw-r--r--regress/man/UR/noUE.out_lint1
-rw-r--r--regress/man/blank/afterSH.out_lint1
-rw-r--r--regress/man/blank/afterSS.out_lint1
-rw-r--r--regress/man/blank/line.out_lint1
-rw-r--r--regress/man/nf/args.out_lint1
-rw-r--r--regress/man/nf/dupe.out_lint1
-rw-r--r--regress/mdoc/Ad/noarg.out_lint1
-rw-r--r--regress/mdoc/An/break.out_lint1
-rw-r--r--regress/mdoc/Aq/empty.out_lint1
-rw-r--r--regress/mdoc/Ar/punct.out_lint1
-rw-r--r--regress/mdoc/At/invalid.out_lint1
-rw-r--r--regress/mdoc/Bd/badargs.out_lint1
-rw-r--r--regress/mdoc/Bd/beforeNAME.out_lint1
-rw-r--r--regress/mdoc/Bd/blank.out_lint1
-rw-r--r--regress/mdoc/Bd/break.out_lint1
-rw-r--r--regress/mdoc/Bd/broken.out_lint1
-rw-r--r--regress/mdoc/Bd/nested.out_lint1
-rw-r--r--regress/mdoc/Bd/unclosed.out_lint1
-rw-r--r--regress/mdoc/Bf/badargs.out_lint1
-rw-r--r--regress/mdoc/Bf/break.out_lint1
-rw-r--r--regress/mdoc/Bf/broken.out_lint1
-rw-r--r--regress/mdoc/Bf/multiargs.out_lint1
-rw-r--r--regress/mdoc/Bk/badarg.out_lint1
-rw-r--r--regress/mdoc/Bk/broken.out_lint1
-rw-r--r--regress/mdoc/Bl/badargs.out_lint1
-rw-r--r--regress/mdoc/Bl/bareIt.out_lint1
-rw-r--r--regress/mdoc/Bl/bareTa.out_lint1
-rw-r--r--regress/mdoc/Bl/break.out_lint1
-rw-r--r--regress/mdoc/Bl/breakingIt.out_lint1
-rw-r--r--regress/mdoc/Bl/broken.out_lint1
-rw-r--r--regress/mdoc/Bl/column.out_lint1
-rw-r--r--regress/mdoc/Bl/empty.out_lint1
-rw-r--r--regress/mdoc/Bl/emptyhead.out_lint1
-rw-r--r--regress/mdoc/Bl/emptyitem.out_lint1
-rw-r--r--regress/mdoc/Bl/emptytag.out_lint1
-rw-r--r--regress/mdoc/Bl/noIt.out_lint1
-rw-r--r--regress/mdoc/Bl/notype.out_lint1
-rw-r--r--regress/mdoc/Bl/tag.out_lint1
-rw-r--r--regress/mdoc/Brq/empty.out_lint1
-rw-r--r--regress/mdoc/Bx/args.out_lint1
-rw-r--r--regress/mdoc/Cd/noarg.out_lint1
-rw-r--r--regress/mdoc/Cm/noarg.out_lint1
-rw-r--r--regress/mdoc/D1/spacing.out_lint1
-rw-r--r--regress/mdoc/Db/args.out_lint1
-rw-r--r--regress/mdoc/Dd/badarg.out_lint1
-rw-r--r--regress/mdoc/Dd/dupe.out_lint1
-rw-r--r--regress/mdoc/Dd/late.out_lint1
-rw-r--r--regress/mdoc/Dd/long.out_lint1
-rw-r--r--regress/mdoc/Dd/manarg.out_lint1
-rw-r--r--regress/mdoc/Dd/noarg.out_lint1
-rw-r--r--regress/mdoc/Dd/order.out_lint1
-rw-r--r--regress/mdoc/Dl/spacing.out_lint1
-rw-r--r--regress/mdoc/Dq/empty.out_lint1
-rw-r--r--regress/mdoc/Dt/badsec.out_lint1
-rw-r--r--regress/mdoc/Dt/case.out_lint1
-rw-r--r--regress/mdoc/Dt/dupe.out_lint1
-rw-r--r--regress/mdoc/Dt/fourargs.out_lint1
-rw-r--r--regress/mdoc/Dt/late.out_lint1
-rw-r--r--regress/mdoc/Dt/missing.out_lint1
-rw-r--r--regress/mdoc/Dt/noarg.out_lint1
-rw-r--r--regress/mdoc/Dt/nobody.out_lint1
-rw-r--r--regress/mdoc/Dt/nosec.out_lint1
-rw-r--r--regress/mdoc/Dt/order.out_lint1
-rw-r--r--regress/mdoc/Dv/noarg.out_lint1
-rw-r--r--regress/mdoc/Em/noarg.out_lint1
-rw-r--r--regress/mdoc/Em/punct.out_lint1
-rw-r--r--regress/mdoc/Eo/break.out_lint1
-rw-r--r--regress/mdoc/Eo/obsolete.out_lint1
-rw-r--r--regress/mdoc/Eo/unclosed.out_lint1
-rw-r--r--regress/mdoc/Er/noarg.out_lint1
-rw-r--r--regress/mdoc/Ev/noarg.out_lint1
-rw-r--r--regress/mdoc/Ex/noname.out_lint1
-rw-r--r--regress/mdoc/Ex/nostd.out_lint1
-rw-r--r--regress/mdoc/Fd/empty.out_lint1
-rw-r--r--regress/mdoc/Fl/punct.out_lint1
-rw-r--r--regress/mdoc/Fo/noarg.out_lint1
-rw-r--r--regress/mdoc/Fo/nohead.out_lint1
-rw-r--r--regress/mdoc/Fo/obsolete.out_lint1
-rw-r--r--regress/mdoc/Fo/punct.out_lint1
-rw-r--r--regress/mdoc/Fo/warn.out_lint1
-rw-r--r--regress/mdoc/Ic/noarg.out_lint1
-rw-r--r--regress/mdoc/In/noarg.out_lint1
-rw-r--r--regress/mdoc/Lb/badargs.out_lint1
-rw-r--r--regress/mdoc/Li/punct.out_lint1
-rw-r--r--regress/mdoc/Lk/noarg.out_lint1
-rw-r--r--regress/mdoc/Ms/noarg.out_lint1
-rw-r--r--regress/mdoc/Mt/simple.out_lint1
-rw-r--r--regress/mdoc/Nd/broken.out_lint1
-rw-r--r--regress/mdoc/Nd/noarg.out_lint1
-rw-r--r--regress/mdoc/Nm/badNAME.out_lint1
-rw-r--r--regress/mdoc/Nm/badNAMEuse.out_lint1
-rw-r--r--regress/mdoc/Nm/break.out_lint1
-rw-r--r--regress/mdoc/Nm/broken.out_lint1
-rw-r--r--regress/mdoc/Nm/punct.out_lint1
-rw-r--r--regress/mdoc/No/punct.out_lint1
-rw-r--r--regress/mdoc/Ns/position.out_lint1
-rw-r--r--regress/mdoc/Oo/punct.out_lint1
-rw-r--r--regress/mdoc/Op/break.out_lint1
-rw-r--r--regress/mdoc/Op/broken.out_lint1
-rw-r--r--regress/mdoc/Op/punct.out_lint1
-rw-r--r--regress/mdoc/Os/dupe.out_lint1
-rw-r--r--regress/mdoc/Os/late.out_lint1
-rw-r--r--regress/mdoc/Pa/punct.out_lint1
-rw-r--r--regress/mdoc/Pf/spacing.out_lint1
-rw-r--r--regress/mdoc/Pp/arg.out_lint1
-rw-r--r--regress/mdoc/Qq/empty.out_lint1
-rw-r--r--regress/mdoc/Rs/allch.out_lint1
-rw-r--r--regress/mdoc/Rs/args.out_lint1
-rw-r--r--regress/mdoc/Rs/empty.out_lint1
-rw-r--r--regress/mdoc/Rv/noname.out_lint1
-rw-r--r--regress/mdoc/Rv/nostd.out_lint1
-rw-r--r--regress/mdoc/Sh/badNAME.out_lint1
-rw-r--r--regress/mdoc/Sh/before.out_lint1
-rw-r--r--regress/mdoc/Sh/empty.out_lint1
-rw-r--r--regress/mdoc/Sh/emptyNAME.out_lint1
-rw-r--r--regress/mdoc/Sh/first.out_lint1
-rw-r--r--regress/mdoc/Sh/nohead.out_lint1
-rw-r--r--regress/mdoc/Sh/order.out_lint1
-rw-r--r--regress/mdoc/Sh/orderNAME.out_lint1
-rw-r--r--regress/mdoc/Sh/parbefore.out_lint1
-rw-r--r--regress/mdoc/Sh/parborder.out_lint1
-rw-r--r--regress/mdoc/Sh/punctNAME.out_lint1
-rw-r--r--regress/mdoc/Sh/subbefore.out_lint1
-rw-r--r--regress/mdoc/Sm/badarg.out_lint1
-rw-r--r--regress/mdoc/Sm/twoarg.out_lint1
-rw-r--r--regress/mdoc/Sq/empty.out_lint1
-rw-r--r--regress/mdoc/St/badargs.out_lint1
-rw-r--r--regress/mdoc/St/call.out_lint1
-rw-r--r--regress/mdoc/Sx/noarg.out_lint1
-rw-r--r--regress/mdoc/Sy/noarg.out_lint1
-rw-r--r--regress/mdoc/Sy/punct.out_lint1
-rw-r--r--regress/mdoc/Tn/noarg.out_lint1
-rw-r--r--regress/mdoc/Ud/arg.out_lint1
-rw-r--r--regress/mdoc/Ux/punct.out_lint1
-rw-r--r--regress/mdoc/Va/noarg.out_lint1
-rw-r--r--regress/mdoc/Vt/noarg.out_lint1
-rw-r--r--regress/mdoc/Xr/args.out_lint1
-rw-r--r--regress/mdoc/blank/comment.out_lint1
-rw-r--r--regress/mdoc/blank/line.out_lint1
-rw-r--r--regress/mdoc/blank/list.out_lint1
-rw-r--r--regress/mdoc/break/brokenbreaker.out_lint1
-rw-r--r--regress/mdoc/break/notopen.out_lint1
-rw-r--r--regress/mdoc/break/tail.out_lint1
-rw-r--r--regress/mdoc/break/twice.out_lint1
-rw-r--r--regress/mdoc/break/two.out_lint1
-rw-r--r--regress/roff/args/man.in2
-rw-r--r--regress/roff/args/man.out_ascii2
-rw-r--r--regress/roff/args/man.out_lint1
-rw-r--r--regress/roff/args/mdoc.out_lint1
-rw-r--r--regress/roff/args/roff.in2
-rw-r--r--regress/roff/args/roff.out_ascii2
-rw-r--r--regress/roff/args/roff.out_lint1
-rw-r--r--regress/roff/br/args.out_lint1
-rw-r--r--regress/roff/cc/basic.out_lint1
-rw-r--r--regress/roff/cond/close.out_lint1
-rw-r--r--regress/roff/cond/if.out_lint1
-rw-r--r--regress/roff/de/escname.out_lint1
-rw-r--r--regress/roff/de/indir.out_lint1
-rw-r--r--regress/roff/de/infinite.out_lint1
-rw-r--r--regress/roff/esc/B.out_lint1
-rw-r--r--regress/roff/esc/h.out_lint1
-rw-r--r--regress/roff/esc/ignore.out_lint1
-rw-r--r--regress/roff/esc/l.out_lint1
-rw-r--r--regress/roff/esc/w.out_lint1
-rw-r--r--regress/roff/ft/badargs-mdoc.out_lint1
-rw-r--r--regress/roff/ft/badargs.out_lint1
-rw-r--r--regress/roff/ig/basic.out_lint1
-rw-r--r--regress/roff/it/badarg.out_lint1
-rw-r--r--regress/roff/nr/divzero.out_lint1
-rw-r--r--regress/roff/nr/escname.out_lint1
-rw-r--r--regress/roff/sp/badargs-man.out_lint1
-rw-r--r--regress/roff/string/escape.in2
-rw-r--r--regress/roff/string/escape.out_ascii2
-rw-r--r--regress/roff/string/name.out_lint1
-rw-r--r--regress/roff/string/zerolength.in2
-rw-r--r--regress/roff/string/zerolength.out_ascii2
-rw-r--r--regress/roff/tr/args.out_lint1
-rw-r--r--regress/tbl/data/block_unclosed.out_lint1
-rw-r--r--regress/tbl/data/empty.out_lint1
-rw-r--r--regress/tbl/layout/center.in2
-rw-r--r--regress/tbl/layout/center.out_ascii2
-rw-r--r--regress/tbl/layout/complex.out_lint1
-rw-r--r--regress/tbl/layout/empty.out_lint1
-rw-r--r--regress/tbl/layout/numbers.in2
-rw-r--r--regress/tbl/layout/numbers.out_ascii2
-rw-r--r--regress/tbl/layout/span.in2
-rw-r--r--regress/tbl/layout/span.out_ascii2
-rw-r--r--regress/tbl/macro/man.in2
-rw-r--r--regress/tbl/macro/man.out_ascii2
-rw-r--r--regress/tbl/macro/man.out_lint1
-rw-r--r--regress/tbl/macro/nested.in2
-rw-r--r--regress/tbl/macro/nested.out_ascii2
-rw-r--r--regress/tbl/macro/nested.out_lint1
-rw-r--r--regress/tbl/mod/badfont.out_lint1
-rw-r--r--regress/tbl/mod/font.out_lint1
-rw-r--r--regress/tbl/opt/box.in4
-rw-r--r--regress/tbl/opt/box.out_ascii6
-rw-r--r--regress/tbl/opt/invalid.out_lint1
-rw-r--r--roff.c20
-rw-r--r--roff.h3
243 files changed, 321 insertions, 33 deletions
diff --git a/man_validate.c b/man_validate.c
index 759c42ac..7426bfbb 100644
--- a/man_validate.c
+++ b/man_validate.c
@@ -170,6 +170,10 @@ check_root(CHKARGS)
man->meta.date = man->quick ? mandoc_strdup("") :
mandoc_normdate(man, NULL, n->line, n->pos);
}
+
+ if (man->meta.os_e &&
+ (man->meta.rcsids & (1 << man->meta.os_e)) == 0)
+ mandoc_msg(MANDOCERR_RCS_MISSING, man->parse, 0, 0, NULL);
}
static void
@@ -338,6 +342,10 @@ post_TH(CHKARGS)
man->meta.os = mandoc_strdup(n->string);
else if (man->defos != NULL)
man->meta.os = mandoc_strdup(man->defos);
+ man->meta.os_e = man->meta.os == NULL ? MDOC_OS_OTHER :
+ strstr(man->meta.os, "OpenBSD") != NULL ? MDOC_OS_OPENBSD :
+ strstr(man->meta.os, "NetBSD") != NULL ? MDOC_OS_NETBSD :
+ MDOC_OS_OTHER;
/* TITLE MSEC DATE OS ->VOL<- */
/* If missing, use the default VOL name for MSEC. */
diff --git a/mandoc.1 b/mandoc.1
index ae720082..1db087fa 100644
--- a/mandoc.1
+++ b/mandoc.1
@@ -1,4 +1,4 @@
-.\" $Id: mandoc.1,v 1.199 2017/06/13 15:06:56 schwarze Exp $
+.\" $Id: mandoc.1,v 1.200 2017/06/17 22:43:14 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 13 2017 $
+.Dd $Mdocdate: June 17 2017 $
.Dt MANDOC 1
.Os
.Sh NAME
@@ -757,6 +757,48 @@ of the
.Xr uname 3
function.
.Bl -ohang
+.It Sy "Mdocdate found"
+.Pq mdoc , Nx
+The
+.Ic \&Dd
+macro uses CVS
+.Ic Mdocdate
+keyword substitution, which is not supported by the
+.Nx
+base system.
+Consider using the conventional
+.Dq "Month dd, yyyy"
+format instead.
+.It Sy "Mdocdate missing"
+.Pq mdoc , Ox
+The
+.Ic \&Dd
+macro does not use CVS
+.Ic Mdocdate
+keyword substitution, but using it is conventionally expected in the
+.Ox
+base system.
+.It Sy "legacy man(7) date format"
+.Pq mdoc
+The
+.Ic \&Dd
+macro uses the legacy
+.Xr man 7
+date format
+.Dq yyyy-dd-mm .
+Consider using the conventional
+.Xr mdoc 7
+date format
+.Dq "Month dd, yyyy"
+instead.
+.It Sy "RCS id missing"
+.Pq Ox , Nx
+The manual page lacks the comment line with the RCS identifier
+generated by CVS
+.Ic OpenBSD
+or
+.Ic NetBSD
+keyword substitution as conventionally used in these operating systems.
.It Sy "useless macro"
.Pq mdoc
A
diff --git a/mandoc.h b/mandoc.h
index 3acebc36..d0b48552 100644
--- a/mandoc.h
+++ b/mandoc.h
@@ -1,4 +1,4 @@
-/* $Id: mandoc.h,v 1.230 2017/06/14 01:31:26 schwarze Exp $ */
+/* $Id: mandoc.h,v 1.231 2017/06/17 22:43:14 schwarze Exp $ */
/*
* Copyright (c) 2010, 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -49,6 +49,7 @@ enum mandocerr {
MANDOCERR_MDOCDATE, /* Mdocdate found: Dd ... */
MANDOCERR_MDOCDATE_MISSING, /* Mdocdate missing: Dd ... */
MANDOCERR_DATE_LEGACY, /* legacy man(7) date format: Dd ... */
+ MANDOCERR_RCS_MISSING, /* RCS id missing */
MANDOCERR_MACRO_USELESS, /* useless macro: macro */
MANDOCERR_BX, /* consider using OS macro: macro */
MANDOCERR_ER_ORDER, /* errnos out of order: Er ... */
diff --git a/mdoc_validate.c b/mdoc_validate.c
index a63810ce..24d8789a 100644
--- a/mdoc_validate.c
+++ b/mdoc_validate.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_validate.c,v 1.338 2017/06/11 20:03:02 schwarze Exp $ */
+/* $Id: mdoc_validate.c,v 1.339 2017/06/17 22:43:14 schwarze Exp $ */
/*
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -1806,7 +1806,10 @@ post_root(POST_ARGS)
mandoc_msg(MANDOCERR_OS_MISSING,
mdoc->parse, 0, 0, NULL);
mdoc->meta.os = mandoc_strdup("");
- }
+ } else if (mdoc->meta.os_e &&
+ (mdoc->meta.rcsids & (1 << mdoc->meta.os_e)) == 0)
+ mandoc_msg(MANDOCERR_RCS_MISSING,
+ mdoc->parse, 0, 0, NULL);
/* Check that we begin with a proper `Sh'. */
diff --git a/read.c b/read.c
index f86d5700..5e030f65 100644
--- a/read.c
+++ b/read.c
@@ -1,4 +1,4 @@
-/* $Id: read.c,v 1.176 2017/06/11 19:37:01 schwarze Exp $ */
+/* $Id: read.c,v 1.177 2017/06/17 22:43:14 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -91,6 +91,7 @@ static const char * const mandocerrs[MANDOCERR_MAX] = {
"Mdocdate found",
"Mdocdate missing",
"legacy man(7) date format",
+ "RCS id missing",
"useless macro",
"consider using OS macro",
"errnos out of order",
diff --git a/regress/char/space/esct-man.out_lint b/regress/char/space/esct-man.out_lint
index 815b68fb..396e4dc9 100644
--- a/regress/char/space/esct-man.out_lint
+++ b/regress/char/space/esct-man.out_lint
@@ -4,3 +4,4 @@ mandoc: esct-man.in:11:8: WARNING: tab in filled text
mandoc: esct-man.in:27:11: WARNING: tab in filled text
mandoc: esct-man.in:29:11: WARNING: tab in filled text
mandoc: esct-man.in:34:10: WARNING: tab in filled text
+mandoc: esct-man.in: STYLE: RCS id missing
diff --git a/regress/char/space/esct-mdoc.out_lint b/regress/char/space/esct-mdoc.out_lint
index 43ea2b9f..d34d8ac6 100644
--- a/regress/char/space/esct-mdoc.out_lint
+++ b/regress/char/space/esct-mdoc.out_lint
@@ -2,3 +2,4 @@ mandoc: esct-mdoc.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: esct-mdoc.in:10:7: WARNING: tab in filled text
mandoc: esct-mdoc.in:14:7: WARNING: tab in filled text
mandoc: esct-mdoc.in:14:8: WARNING: tab in filled text
+mandoc: esct-mdoc.in: STYLE: RCS id missing
diff --git a/regress/char/space/tab-man.out_lint b/regress/char/space/tab-man.out_lint
index a5796e1b..b3d14c9a 100644
--- a/regress/char/space/tab-man.out_lint
+++ b/regress/char/space/tab-man.out_lint
@@ -20,3 +20,4 @@ mandoc: tab-man.in:41:1: WARNING: tab in filled text
mandoc: tab-man.in:41:2: WARNING: tab in filled text
mandoc: tab-man.in:43:1: WARNING: tab in filled text
mandoc: tab-man.in:44:1: WARNING: tab in filled text
+mandoc: tab-man.in: STYLE: RCS id missing
diff --git a/regress/char/space/tab.out_lint b/regress/char/space/tab.out_lint
index c2f91ffa..fb654d20 100644
--- a/regress/char/space/tab.out_lint
+++ b/regress/char/space/tab.out_lint
@@ -41,3 +41,4 @@ mandoc: tab.in:81:7: WARNING: tab in filled text
mandoc: tab.in:83:1: WARNING: tab in filled text
mandoc: tab.in:85:1: WARNING: tab in filled text
mandoc: tab.in:85:2: WARNING: tab in filled text
+mandoc: tab.in: STYLE: RCS id missing
diff --git a/regress/char/space/trailing-mdoc.out_lint b/regress/char/space/trailing-mdoc.out_lint
index 364d3ad4..2b7062ba 100644
--- a/regress/char/space/trailing-mdoc.out_lint
+++ b/regress/char/space/trailing-mdoc.out_lint
@@ -2,3 +2,4 @@ mandoc: trailing-mdoc.in:8:16: WARNING: whitespace at end of input line
mandoc: trailing-mdoc.in:10:12: WARNING: whitespace at end of input line
mandoc: trailing-mdoc.in:11:27: WARNING: whitespace at end of input line
mandoc: trailing-mdoc.in:1:5: STYLE: Mdocdate missing: Dd December
+mandoc: trailing-mdoc.in: STYLE: RCS id missing
diff --git a/regress/char/unicode/input.out_lint b/regress/char/unicode/input.out_lint
index 8ac05edc..8b54d4c3 100644
--- a/regress/char/unicode/input.out_lint
+++ b/regress/char/unicode/input.out_lint
@@ -79,3 +79,4 @@ mandoc: input.in:66:35: ERROR: skipping bad character: 0x80
mandoc: input.in:66:36: ERROR: skipping bad character: 0x80
mandoc: input.in:66:37: ERROR: skipping bad character: 0x80
mandoc: input.in:66:23: WARNING: invalid escape sequence: \[u200000]
+mandoc: input.in: STYLE: RCS id missing
diff --git a/regress/char/unicode/invalid.out_lint b/regress/char/unicode/invalid.out_lint
index 3fd9e4bc..7fcee59e 100644
--- a/regress/char/unicode/invalid.out_lint
+++ b/regress/char/unicode/invalid.out_lint
@@ -8,3 +8,4 @@ mandoc: invalid.in:13:24: WARNING: invalid escape sequence: \[u200000]
mandoc: invalid.in:13:13: WARNING: invalid escape sequence: \[u110000]
mandoc: invalid.in:14:20: WARNING: invalid escape sequence: \[u1234g]
mandoc: invalid.in:1:5: STYLE: Mdocdate missing: Dd October
+mandoc: invalid.in: STYLE: RCS id missing
diff --git a/regress/eqn/define/infinite.out_lint b/regress/eqn/define/infinite.out_lint
index 1a0ca671..468843f0 100644
--- a/regress/eqn/define/infinite.out_lint
+++ b/regress/eqn/define/infinite.out_lint
@@ -3,3 +3,4 @@ mandoc: infinite.in:15:2: ERROR: input stack limit exceeded, infinite loop?
mandoc: infinite.in:21:2: ERROR: input stack limit exceeded, infinite loop?
mandoc: infinite.in:27:2: ERROR: input stack limit exceeded, infinite loop?
mandoc: infinite.in:1:5: STYLE: Mdocdate missing: Dd March
+mandoc: infinite.in: STYLE: RCS id missing
diff --git a/regress/eqn/define/invalid.out_lint b/regress/eqn/define/invalid.out_lint
index 27420ca8..5f31e474 100644
--- a/regress/eqn/define/invalid.out_lint
+++ b/regress/eqn/define/invalid.out_lint
@@ -4,3 +4,4 @@ mandoc: invalid.in:21:2: WARNING: skipping empty request: undef
mandoc: invalid.in:27:2: WARNING: skipping empty request: tdefine
mandoc: invalid.in:33:2: WARNING: skipping empty request: tdefine
mandoc: invalid.in:1:5: STYLE: Mdocdate missing: Dd January
+mandoc: invalid.in: STYLE: RCS id missing
diff --git a/regress/eqn/over/noarg.out_lint b/regress/eqn/over/noarg.out_lint
index c180e2e8..876e2874 100644
--- a/regress/eqn/over/noarg.out_lint
+++ b/regress/eqn/over/noarg.out_lint
@@ -1,2 +1,3 @@
mandoc: noarg.in:9:2: WARNING: missing eqn box, using "": over
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd January
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/man/B/args.out_lint b/regress/man/B/args.out_lint
index 0239c0a3..582eccb3 100644
--- a/regress/man/B/args.out_lint
+++ b/regress/man/B/args.out_lint
@@ -1 +1,2 @@
mandoc: args.in:20:2: WARNING: line scope broken: EOF breaks B
+mandoc: args.in: STYLE: RCS id missing
diff --git a/regress/man/B/blank.out_lint b/regress/man/B/blank.out_lint
index 22e683ea..7e31d57e 100644
--- a/regress/man/B/blank.out_lint
+++ b/regress/man/B/blank.out_lint
@@ -1 +1,2 @@
mandoc: blank.in:7:1: WARNING: skipping blank line in line scope
+mandoc: blank.in: STYLE: RCS id missing
diff --git a/regress/man/IP/empty.out_lint b/regress/man/IP/empty.out_lint
index 9f677652..fec81f2b 100644
--- a/regress/man/IP/empty.out_lint
+++ b/regress/man/IP/empty.out_lint
@@ -1,2 +1,3 @@
mandoc: empty.in:12:2: WARNING: skipping paragraph macro: IP empty
mandoc: empty.in:19:2: WARNING: skipping paragraph macro: IP empty
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/man/OP/args.out_lint b/regress/man/OP/args.out_lint
index c468d9d0..054132b6 100644
--- a/regress/man/OP/args.out_lint
+++ b/regress/man/OP/args.out_lint
@@ -1,2 +1,3 @@
mandoc: args.in:6:2: WARNING: missing option string, using "": OP
mandoc: args.in:12:13: ERROR: skipping excess arguments: OP ... bogus
+mandoc: args.in: STYLE: RCS id missing
diff --git a/regress/man/PD/args.out_lint b/regress/man/PD/args.out_lint
index 9e42b46e..b21abc12 100644
--- a/regress/man/PD/args.out_lint
+++ b/regress/man/PD/args.out_lint
@@ -1 +1,2 @@
mandoc: args.in:26:7: ERROR: skipping excess arguments: PD ... zzz
+mandoc: args.in: STYLE: RCS id missing
diff --git a/regress/man/PP/args.out_lint b/regress/man/PP/args.out_lint
index f2862245..12fc5673 100644
--- a/regress/man/PP/args.out_lint
+++ b/regress/man/PP/args.out_lint
@@ -1,3 +1,4 @@
mandoc: args.in:6:2: ERROR: skipping all arguments: PP arg
mandoc: args.in:8:2: ERROR: skipping all arguments: LP arg1 ...
mandoc: args.in:10:2: ERROR: skipping all arguments: P arg
+mandoc: args.in: STYLE: RCS id missing
diff --git a/regress/man/PP/empty.out_lint b/regress/man/PP/empty.out_lint
index 6af9e658..252920b9 100644
--- a/regress/man/PP/empty.out_lint
+++ b/regress/man/PP/empty.out_lint
@@ -1,3 +1,4 @@
mandoc: empty.in:7:2: WARNING: skipping paragraph macro: PP empty
mandoc: empty.in:10:2: WARNING: skipping paragraph macro: PP empty
mandoc: empty.in:13:2: WARNING: skipping paragraph macro: PP empty
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/man/RS/REarg.out_lint b/regress/man/RS/REarg.out_lint
index 3b516d96..b3f98297 100644
--- a/regress/man/RS/REarg.out_lint
+++ b/regress/man/RS/REarg.out_lint
@@ -5,3 +5,4 @@ mandoc: REarg.in:18:6: ERROR: skipping excess arguments: RE ... c
mandoc: REarg.in:24:6: ERROR: skipping excess arguments: RE ... d
mandoc: REarg.in:26:6: ERROR: skipping excess arguments: RE ... e
mandoc: REarg.in:26:2: ERROR: fewer RS blocks open, skipping: RE 1
+mandoc: REarg.in: STYLE: RCS id missing
diff --git a/regress/man/RS/empty.out_lint b/regress/man/RS/empty.out_lint
index fe983c38..ef5def54 100644
--- a/regress/man/RS/empty.out_lint
+++ b/regress/man/RS/empty.out_lint
@@ -1 +1,2 @@
mandoc: empty.in:7:2: WARNING: empty block: RS
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/man/RS/lonelyRE.out_lint b/regress/man/RS/lonelyRE.out_lint
index 8cb30028..346ec364 100644
--- a/regress/man/RS/lonelyRE.out_lint
+++ b/regress/man/RS/lonelyRE.out_lint
@@ -1,3 +1,4 @@
mandoc: lonelyRE.in:11:2: ERROR: skipping end of block that is not open: RE
mandoc: lonelyRE.in:15:2: ERROR: skipping end of block that is not open: RE
mandoc: lonelyRE.in:20:2: ERROR: skipping end of block that is not open: RE
+mandoc: lonelyRE.in: STYLE: RCS id missing
diff --git a/regress/man/RS/noRE.out_lint b/regress/man/RS/noRE.out_lint
index 3c4c0a13..94381088 100644
--- a/regress/man/RS/noRE.out_lint
+++ b/regress/man/RS/noRE.out_lint
@@ -1 +1,2 @@
mandoc: noRE.in:7:2: ERROR: appending missing end of block: RS
+mandoc: noRE.in: STYLE: RCS id missing
diff --git a/regress/man/SH/broken.out_lint b/regress/man/SH/broken.out_lint
index 70ab7537..3f390eb0 100644
--- a/regress/man/SH/broken.out_lint
+++ b/regress/man/SH/broken.out_lint
@@ -1 +1,2 @@
mandoc: broken.in:6:2: WARNING: line scope broken: EOF breaks SH
+mandoc: broken.in: STYLE: RCS id missing
diff --git a/regress/man/SH/broken_eline.out_lint b/regress/man/SH/broken_eline.out_lint
index 089bf875..b79446a1 100644
--- a/regress/man/SH/broken_eline.out_lint
+++ b/regress/man/SH/broken_eline.out_lint
@@ -1,2 +1,3 @@
mandoc: broken_eline.in:7:2: WARNING: line scope broken: EOF breaks B
mandoc: broken_eline.in:6:2: WARNING: line scope broken: EOF breaks SH
+mandoc: broken_eline.in: STYLE: RCS id missing
diff --git a/regress/man/SH/empty_before.out_lint b/regress/man/SH/empty_before.out_lint
index b10c421a..00de1862 100644
--- a/regress/man/SH/empty_before.out_lint
+++ b/regress/man/SH/empty_before.out_lint
@@ -1 +1,2 @@
mandoc: empty_before.in:2:2: WARNING: skipping paragraph macro: PP empty
+mandoc: empty_before.in: STYLE: RCS id missing
diff --git a/regress/man/SH/noarg.out_lint b/regress/man/SH/noarg.out_lint
index 3f9d130d..9a7c6c74 100644
--- a/regress/man/SH/noarg.out_lint
+++ b/regress/man/SH/noarg.out_lint
@@ -12,3 +12,4 @@ mandoc: noarg.in:34:2: WARNING: line scope broken: UE breaks SH
mandoc: noarg.in:35:2: ERROR: skipping end of block that is not open: UE
mandoc: noarg.in:41:2: WARNING: fill mode already enabled, skipping: fi
mandoc: noarg.in:44:1: WARNING: skipping blank line in line scope
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/man/SS/broken.out_lint b/regress/man/SS/broken.out_lint
index b3f7aea0..9c601048 100644
--- a/regress/man/SS/broken.out_lint
+++ b/regress/man/SS/broken.out_lint
@@ -1 +1,2 @@
mandoc: broken.in:6:2: WARNING: line scope broken: EOF breaks SS
+mandoc: broken.in: STYLE: RCS id missing
diff --git a/regress/man/SS/broken_eline.out_lint b/regress/man/SS/broken_eline.out_lint
index 1128b738..a1fec398 100644
--- a/regress/man/SS/broken_eline.out_lint
+++ b/regress/man/SS/broken_eline.out_lint
@@ -1,2 +1,3 @@
mandoc: broken_eline.in:7:2: WARNING: line scope broken: EOF breaks B
mandoc: broken_eline.in:6:2: WARNING: line scope broken: EOF breaks SS
+mandoc: broken_eline.in: STYLE: RCS id missing
diff --git a/regress/man/SS/noarg.out_lint b/regress/man/SS/noarg.out_lint
index 8af88544..30a5ea29 100644
--- a/regress/man/SS/noarg.out_lint
+++ b/regress/man/SS/noarg.out_lint
@@ -12,3 +12,4 @@ mandoc: noarg.in:34:2: WARNING: line scope broken: UE breaks SS
mandoc: noarg.in:35:2: ERROR: skipping end of block that is not open: UE
mandoc: noarg.in:41:2: WARNING: fill mode already enabled, skipping: fi
mandoc: noarg.in:44:1: WARNING: skipping blank line in line scope
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/man/TH/case.out_lint b/regress/man/TH/case.out_lint
index b154fc16..94d0fd0b 100644
--- a/regress/man/TH/case.out_lint
+++ b/regress/man/TH/case.out_lint
@@ -1 +1,2 @@
mandoc: case.in:1:8: WARNING: lower case character in document title: TH TH-case
+mandoc: case.in: STYLE: RCS id missing
diff --git a/regress/man/TH/nobody.out_lint b/regress/man/TH/nobody.out_lint
index f5439fcd..5a3f1c43 100644
--- a/regress/man/TH/nobody.out_lint
+++ b/regress/man/TH/nobody.out_lint
@@ -1 +1,2 @@
mandoc: nobody.in: WARNING: no document body
+mandoc: nobody.in: STYLE: RCS id missing
diff --git a/regress/man/TH/sixargs.out_lint b/regress/man/TH/sixargs.out_lint
index 9ac7a838..87f5f5c8 100644
--- a/regress/man/TH/sixargs.out_lint
+++ b/regress/man/TH/sixargs.out_lint
@@ -1 +1,2 @@
mandoc: sixargs.in:1:53: ERROR: skipping excess arguments: TH ... SIX
+mandoc: sixargs.in: STYLE: RCS id missing
diff --git a/regress/man/TP/broken.out_lint b/regress/man/TP/broken.out_lint
index 1a3a433b..9fbd74dc 100644
--- a/regress/man/TP/broken.out_lint
+++ b/regress/man/TP/broken.out_lint
@@ -1,2 +1,3 @@
mandoc: broken.in:10:2: WARNING: line scope broken: RE breaks TP
mandoc: broken.in:15:1: WARNING: skipping blank line in line scope
+mandoc: broken.in: STYLE: RCS id missing
diff --git a/regress/man/TP/double.out_lint b/regress/man/TP/double.out_lint
index 0ec1aa87..393c8dc4 100644
--- a/regress/man/TP/double.out_lint
+++ b/regress/man/TP/double.out_lint
@@ -3,3 +3,4 @@ mandoc: double.in:30:2: WARNING: line scope broken: PP breaks B
mandoc: double.in:32:2: WARNING: line scope broken: TP breaks TP
mandoc: double.in:20:2: WARNING: skipping paragraph macro: PP empty
mandoc: double.in:31:2: WARNING: skipping paragraph macro: PP empty
+mandoc: double.in: STYLE: RCS id missing
diff --git a/regress/man/TP/eof.out_lint b/regress/man/TP/eof.out_lint
index 62d6ff86..8da8f955 100644
--- a/regress/man/TP/eof.out_lint
+++ b/regress/man/TP/eof.out_lint
@@ -1 +1,2 @@
mandoc: eof.in:6:2: WARNING: line scope broken: EOF breaks TP
+mandoc: eof.in: STYLE: RCS id missing
diff --git a/regress/man/TS/break.out_lint b/regress/man/TS/break.out_lint
index 4bff2ea1..ce4abee5 100644
--- a/regress/man/TS/break.out_lint
+++ b/regress/man/TS/break.out_lint
@@ -2,3 +2,4 @@ mandoc: break.in:6:2: WARNING: line scope broken: TS breaks TP
mandoc: break.in:13:2: WARNING: line scope broken: TS breaks SH
mandoc: break.in:20:2: WARNING: line scope broken: TS breaks SS
mandoc: break.in:27:2: WARNING: line scope broken: TS breaks B
+mandoc: break.in: STYLE: RCS id missing
diff --git a/regress/man/TS/vspace.in b/regress/man/TS/vspace.in
index c3a2363f..3fbb0c94 100644
--- a/regress/man/TS/vspace.in
+++ b/regress/man/TS/vspace.in
@@ -1,4 +1,4 @@
-.TH TBL-VSPACE 1
+.TH TBL-VSPACE 1 "May 27, 2012" OpenBSD
.SH NAME
tbl-vspace \- vertical spacing around tables
.SH DESCRIPTION
diff --git a/regress/man/TS/vspace.out_ascii b/regress/man/TS/vspace.out_ascii
index 6f2feee1..b0122b91 100644
--- a/regress/man/TS/vspace.out_ascii
+++ b/regress/man/TS/vspace.out_ascii
@@ -39,4 +39,4 @@ DDEESSCCRRIIPPTTIIOONN
- TBL-VSPACE(1)
+OpenBSD May 27, 2012 TBL-VSPACE(1)
diff --git a/regress/man/UR/args.out_lint b/regress/man/UR/args.out_lint
index 3e7ef528..bbef2bc7 100644
--- a/regress/man/UR/args.out_lint
+++ b/regress/man/UR/args.out_lint
@@ -3,3 +3,4 @@ mandoc: args.in:26:11: ERROR: skipping excess arguments: UR ... second
mandoc: args.in:12:2: WARNING: empty block: UR
mandoc: args.in:16:2: WARNING: missing resource identifier, using "": UR
mandoc: args.in:26:2: WARNING: empty block: UR
+mandoc: args.in: STYLE: RCS id missing
diff --git a/regress/man/UR/noUE.out_lint b/regress/man/UR/noUE.out_lint
index d81fad0f..f1d7578a 100644
--- a/regress/man/UR/noUE.out_lint
+++ b/regress/man/UR/noUE.out_lint
@@ -1,2 +1,3 @@
mandoc: noUE.in:6:2: ERROR: skipping end of block that is not open: UE
mandoc: noUE.in:9:2: ERROR: appending missing end of block: UR
+mandoc: noUE.in: STYLE: RCS id missing
diff --git a/regress/man/blank/afterSH.out_lint b/regress/man/blank/afterSH.out_lint
index 0a77f218..f8ce9d3c 100644
--- a/regress/man/blank/afterSH.out_lint
+++ b/regress/man/blank/afterSH.out_lint
@@ -2,3 +2,4 @@ mandoc: afterSH.in:31:2: WARNING: skipping paragraph macro: br after SH
mandoc: afterSH.in:35:2: WARNING: skipping paragraph macro: sp after SH
mandoc: afterSH.in:71:2: WARNING: skipping paragraph macro: br after SH
mandoc: afterSH.in:76:2: WARNING: skipping paragraph macro: sp after SH
+mandoc: afterSH.in: STYLE: RCS id missing
diff --git a/regress/man/blank/afterSS.out_lint b/regress/man/blank/afterSS.out_lint
index 5129637c..da1de624 100644
--- a/regress/man/blank/afterSS.out_lint
+++ b/regress/man/blank/afterSS.out_lint
@@ -2,3 +2,4 @@ mandoc: afterSS.in:32:2: WARNING: skipping paragraph macro: br after SS
mandoc: afterSS.in:36:2: WARNING: skipping paragraph macro: sp after SS
mandoc: afterSS.in:72:2: WARNING: skipping paragraph macro: br after SS
mandoc: afterSS.in:77:2: WARNING: skipping paragraph macro: sp after SS
+mandoc: afterSS.in: STYLE: RCS id missing
diff --git a/regress/man/blank/line.out_lint b/regress/man/blank/line.out_lint
index cf3507f5..70c595da 100644
--- a/regress/man/blank/line.out_lint
+++ b/regress/man/blank/line.out_lint
@@ -6,3 +6,4 @@ mandoc: line.in:38:2: WARNING: skipping paragraph macro: sp after PP
mandoc: line.in:53:1: WARNING: skipping paragraph macro: sp after PP
mandoc: line.in:81:2: WARNING: skipping paragraph macro: sp after SH
mandoc: line.in:84:2: WARNING: skipping paragraph macro: sp after SS
+mandoc: line.in: STYLE: RCS id missing
diff --git a/regress/man/nf/args.out_lint b/regress/man/nf/args.out_lint
index dc11881a..8c9c437f 100644
--- a/regress/man/nf/args.out_lint
+++ b/regress/man/nf/args.out_lint
@@ -1,2 +1,3 @@
mandoc: args.in:7:5: ERROR: skipping all arguments: nf arg1 arg2 arg3
mandoc: args.in:10:5: ERROR: skipping all arguments: fi arg1 arg2 arg3
+mandoc: args.in: STYLE: RCS id missing
diff --git a/regress/man/nf/dupe.out_lint b/regress/man/nf/dupe.out_lint
index b33d44c6..5f627bc7 100644
--- a/regress/man/nf/dupe.out_lint
+++ b/regress/man/nf/dupe.out_lint
@@ -1,2 +1,3 @@
mandoc: dupe.in:7:2: WARNING: fill mode already enabled, skipping: fi
mandoc: dupe.in:14:2: WARNING: fill mode already disabled, skipping: nf
+mandoc: dupe.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Ad/noarg.out_lint b/regress/mdoc/Ad/noarg.out_lint
index 2ca0c2e2..56c4dd6a 100644
--- a/regress/mdoc/Ad/noarg.out_lint
+++ b/regress/mdoc/Ad/noarg.out_lint
@@ -1,3 +1,4 @@
mandoc: noarg.in:11:2: WARNING: skipping empty macro: Ad
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: noarg.in:9:10: STYLE: no blank before trailing delimiter: Ad 0x3bc.
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/An/break.out_lint b/regress/mdoc/An/break.out_lint
index 165a2267..a150a516 100644
--- a/regress/mdoc/An/break.out_lint
+++ b/regress/mdoc/An/break.out_lint
@@ -12,3 +12,4 @@ 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
+mandoc: break.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Aq/empty.out_lint b/regress/mdoc/Aq/empty.out_lint
index 7e74ce97..5f037720 100644
--- a/regress/mdoc/Aq/empty.out_lint
+++ b/regress/mdoc/Aq/empty.out_lint
@@ -1,3 +1,4 @@
mandoc: empty.in:1:5: STYLE: Mdocdate missing: Dd June
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:
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Ar/punct.out_lint b/regress/mdoc/Ar/punct.out_lint
index bf820be7..43c0d181 100644
--- a/regress/mdoc/Ar/punct.out_lint
+++ b/regress/mdoc/Ar/punct.out_lint
@@ -1,2 +1,3 @@
mandoc: punct.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: punct.in:45:8: STYLE: no blank before trailing delimiter: Ar arg.
+mandoc: punct.in: STYLE: RCS id missing
diff --git a/regress/mdoc/At/invalid.out_lint b/regress/mdoc/At/invalid.out_lint
index ab40693b..f0a5a637 100644
--- a/regress/mdoc/At/invalid.out_lint
+++ b/regress/mdoc/At/invalid.out_lint
@@ -1,2 +1,3 @@
mandoc: invalid.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: invalid.in:15:5: WARNING: unknown AT&T UNIX version: At murks
+mandoc: invalid.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bd/badargs.out_lint b/regress/mdoc/Bd/badargs.out_lint
index 44745f66..7ec1d457 100644
--- a/regress/mdoc/Bd/badargs.out_lint
+++ b/regress/mdoc/Bd/badargs.out_lint
@@ -11,3 +11,4 @@ mandoc: badargs.in:33:2: ERROR: NOT IMPLEMENTED: Bd -file
mandoc: badargs.in:38:2: ERROR: NOT IMPLEMENTED: Bd -file
mandoc: badargs.in:43:2: ERROR: NOT IMPLEMENTED: Bd -file
mandoc: badargs.in:48:2: ERROR: skipping display without arguments: Bd
+mandoc: badargs.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bd/beforeNAME.out_lint b/regress/mdoc/Bd/beforeNAME.out_lint
index cd7d5e8f..0161cd55 100644
--- a/regress/mdoc/Bd/beforeNAME.out_lint
+++ b/regress/mdoc/Bd/beforeNAME.out_lint
@@ -1,2 +1,3 @@
mandoc: beforeNAME.in:1:5: STYLE: Mdocdate missing: Dd July
+mandoc: beforeNAME.in: STYLE: RCS id missing
mandoc: beforeNAME.in:4:2: WARNING: content before first section header: Bd
diff --git a/regress/mdoc/Bd/blank.out_lint b/regress/mdoc/Bd/blank.out_lint
index 88d0fa85..d69d8687 100644
--- a/regress/mdoc/Bd/blank.out_lint
+++ b/regress/mdoc/Bd/blank.out_lint
@@ -7,3 +7,4 @@ mandoc: blank.in:23:32: WARNING: whitespace at end of input line
mandoc: blank.in:30:8: WARNING: whitespace at end of input line
mandoc: blank.in:1:5: STYLE: Mdocdate missing: Dd January
mandoc: blank.in:30:2: WARNING: empty block: Dl
+mandoc: blank.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bd/break.out_lint b/regress/mdoc/Bd/break.out_lint
index c97d00e1..782c834d 100644
--- a/regress/mdoc/Bd/break.out_lint
+++ b/regress/mdoc/Bd/break.out_lint
@@ -1,2 +1,3 @@
mandoc: break.in:12:2: WARNING: blocks badly nested: Bd breaks Bo
mandoc: break.in:1:5: STYLE: Mdocdate missing: Dd November
+mandoc: break.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bd/broken.out_lint b/regress/mdoc/Bd/broken.out_lint
index 41df6784..34802726 100644
--- a/regress/mdoc/Bd/broken.out_lint
+++ b/regress/mdoc/Bd/broken.out_lint
@@ -1,2 +1,3 @@
mandoc: broken.in:12:2: WARNING: blocks badly nested: Bo breaks Bd
mandoc: broken.in:1:5: STYLE: Mdocdate missing: Dd November
+mandoc: broken.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bd/nested.out_lint b/regress/mdoc/Bd/nested.out_lint
index 3616ae1f..74e08948 100644
--- a/regress/mdoc/Bd/nested.out_lint
+++ b/regress/mdoc/Bd/nested.out_lint
@@ -1,3 +1,4 @@
mandoc: nested.in:1:5: STYLE: Mdocdate missing: Dd November
mandoc: nested.in:13:2: WARNING: nested displays are not portable: Bd in Bd
mandoc: nested.in:24:2: WARNING: nested displays are not portable: Bd in Bd
+mandoc: nested.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bd/unclosed.out_lint b/regress/mdoc/Bd/unclosed.out_lint
index c379ecd5..774004f0 100644
--- a/regress/mdoc/Bd/unclosed.out_lint
+++ b/regress/mdoc/Bd/unclosed.out_lint
@@ -1,2 +1,3 @@
mandoc: unclosed.in:9:2: ERROR: appending missing end of block: Bd
mandoc: unclosed.in:1:5: STYLE: Mdocdate missing: Dd July
+mandoc: unclosed.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bf/badargs.out_lint b/regress/mdoc/Bf/badargs.out_lint
index 688ee4ba..2551d485 100644
--- a/regress/mdoc/Bf/badargs.out_lint
+++ b/regress/mdoc/Bf/badargs.out_lint
@@ -2,3 +2,4 @@ mandoc: badargs.in:17:2: ERROR: skipping all arguments: Ef tail argument
mandoc: badargs.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: badargs.in:11:2: WARNING: missing font type, using \fR: Bf
mandoc: badargs.in:15:5: WARNING: unknown font type, using \fR: Bf badarg
+mandoc: badargs.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bf/break.out_lint b/regress/mdoc/Bf/break.out_lint
index 49ee2144..3323b144 100644
--- a/regress/mdoc/Bf/break.out_lint
+++ b/regress/mdoc/Bf/break.out_lint
@@ -1,2 +1,3 @@
mandoc: break.in:13:2: WARNING: blocks badly nested: Bf breaks Bo
mandoc: break.in:1:5: STYLE: Mdocdate missing: Dd November
+mandoc: break.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bf/broken.out_lint b/regress/mdoc/Bf/broken.out_lint
index e977b06f..31711c34 100644
--- a/regress/mdoc/Bf/broken.out_lint
+++ b/regress/mdoc/Bf/broken.out_lint
@@ -1,2 +1,3 @@
mandoc: broken.in:12:2: WARNING: blocks badly nested: Bo breaks Bf
mandoc: broken.in:1:5: STYLE: Mdocdate missing: Dd November
+mandoc: broken.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bf/multiargs.out_lint b/regress/mdoc/Bf/multiargs.out_lint
index 6a140622..e095e561 100644
--- a/regress/mdoc/Bf/multiargs.out_lint
+++ b/regress/mdoc/Bf/multiargs.out_lint
@@ -4,3 +4,4 @@ mandoc: multiargs.in:17:15: ERROR: skipping excess arguments: Bf ... badarg
mandoc: multiargs.in:21:8: ERROR: skipping excess arguments: Bf ... -emphasis
mandoc: multiargs.in:25:8: ERROR: skipping excess arguments: Bf ... Em
mandoc: multiargs.in:29:8: ERROR: skipping excess arguments: Bf ... badarg
+mandoc: multiargs.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bk/badarg.out_lint b/regress/mdoc/Bk/badarg.out_lint
index b56bddee..bf52f2f5 100644
--- a/regress/mdoc/Bk/badarg.out_lint
+++ b/regress/mdoc/Bk/badarg.out_lint
@@ -5,3 +5,4 @@ mandoc: badarg.in:31:5: ERROR: skipping excess arguments: Bk ... -line
mandoc: badarg.in:49:12: ERROR: skipping excess arguments: Bk ... -murks
mandoc: badarg.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: badarg.in:54:2: WARNING: empty block: Bk
+mandoc: badarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bk/broken.out_lint b/regress/mdoc/Bk/broken.out_lint
index 4383d677..23a4cddf 100644
--- a/regress/mdoc/Bk/broken.out_lint
+++ b/regress/mdoc/Bk/broken.out_lint
@@ -1,3 +1,4 @@
mandoc: broken.in:10:2: ERROR: inserting missing end of block: Sh breaks Bk
mandoc: broken.in:1:5: STYLE: Mdocdate missing: Dd February
mandoc: broken.in:9:2: WARNING: empty block: Bk
+mandoc: broken.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/badargs.out_lint b/regress/mdoc/Bl/badargs.out_lint
index f4247a4a..a2f5a267 100644
--- a/regress/mdoc/Bl/badargs.out_lint
+++ b/regress/mdoc/Bl/badargs.out_lint
@@ -17,3 +17,4 @@ mandoc: badargs.in:70:20: ERROR: skipping excess arguments: Bl ... -bogus
mandoc: badargs.in:75:42: WARNING: duplicate argument: Bl -compact
mandoc: badargs.in:75:51: WARNING: duplicate argument: Bl -offset 2n
mandoc: badargs.in:75:62: WARNING: duplicate argument: Bl -width 6n
+mandoc: badargs.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/bareIt.out_lint b/regress/mdoc/Bl/bareIt.out_lint
index db7d0dcc..22636689 100644
--- a/regress/mdoc/Bl/bareIt.out_lint
+++ b/regress/mdoc/Bl/bareIt.out_lint
@@ -2,3 +2,4 @@ mandoc: bareIt.in:9:2: ERROR: skipping item outside list: It argument
mandoc: bareIt.in:14:2: ERROR: skipping item outside list: It argument
mandoc: bareIt.in:1:5: STYLE: Mdocdate missing: Dd August
mandoc: bareIt.in:9:2: WARNING: skipping paragraph macro: br before Bl
+mandoc: bareIt.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/bareTa.out_lint b/regress/mdoc/Bl/bareTa.out_lint
index 789daba7..4903456e 100644
--- a/regress/mdoc/Bl/bareTa.out_lint
+++ b/regress/mdoc/Bl/bareTa.out_lint
@@ -4,3 +4,4 @@ mandoc: bareTa.in:18:5: ERROR: skipping column outside column list: Ta
mandoc: bareTa.in:25:2: ERROR: skipping item outside list: It ignored arguments
mandoc: bareTa.in:1:5: STYLE: Mdocdate missing: Dd November
mandoc: bareTa.in:18:2: ERROR: skipping all arguments: It ignored arguments
+mandoc: bareTa.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/break.out_lint b/regress/mdoc/Bl/break.out_lint
index 4530b0ce..0e4c8b98 100644
--- a/regress/mdoc/Bl/break.out_lint
+++ b/regress/mdoc/Bl/break.out_lint
@@ -17,3 +17,4 @@ mandoc: break.in:74:2: ERROR: appending missing end of block: Bl
mandoc: break.in:1:5: STYLE: Mdocdate missing: Dd August
mandoc: break.in:75:2: WARNING: empty list item: Bl -enum It
mandoc: break.in:75:2: ERROR: skipping all arguments: It before broken block
+mandoc: break.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/breakingIt.out_lint b/regress/mdoc/Bl/breakingIt.out_lint
index c0744ad5..e3059ffc 100644
--- a/regress/mdoc/Bl/breakingIt.out_lint
+++ b/regress/mdoc/Bl/breakingIt.out_lint
@@ -15,3 +15,4 @@ mandoc: breakingIt.in:41:1: WARNING: moving content out of list: text
mandoc: breakingIt.in:42:2: WARNING: moving content out of list: Bd
mandoc: breakingIt.in:48:1: WARNING: moving content out of list: text
mandoc: breakingIt.in:49:2: WARNING: moving content out of list: Bd
+mandoc: breakingIt.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/broken.out_lint b/regress/mdoc/Bl/broken.out_lint
index 044cb1df..c5c27628 100644
--- a/regress/mdoc/Bl/broken.out_lint
+++ b/regress/mdoc/Bl/broken.out_lint
@@ -2,3 +2,4 @@ mandoc: broken.in:13:2: WARNING: blocks badly nested: Bo breaks Bl
mandoc: broken.in:23:2: WARNING: blocks badly nested: Bo breaks Bd
mandoc: broken.in:25:2: ERROR: inserting missing end of block: It breaks Bd
mandoc: broken.in:1:5: STYLE: Mdocdate missing: Dd February
+mandoc: broken.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/column.out_lint b/regress/mdoc/Bl/column.out_lint
index 3652fba1..5fb3e269 100644
--- a/regress/mdoc/Bl/column.out_lint
+++ b/regress/mdoc/Bl/column.out_lint
@@ -3,3 +3,4 @@ mandoc: column.in:71:2: WARNING: wrong number of cells: 2 columns, 1 cells
mandoc: column.in:74:2: WARNING: wrong number of cells: 2 columns, 4 cells
mandoc: column.in:75:2: WARNING: wrong number of cells: 2 columns, 5 cells
mandoc: column.in:103:18: WARNING: skipping -width argument: Bl -column
+mandoc: column.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/empty.out_lint b/regress/mdoc/Bl/empty.out_lint
index e415f2e0..bf6f0a50 100644
--- a/regress/mdoc/Bl/empty.out_lint
+++ b/regress/mdoc/Bl/empty.out_lint
@@ -10,3 +10,4 @@ mandoc: empty.in:30:2: WARNING: empty block: Bl
mandoc: empty.in:33:2: WARNING: empty block: Bl
mandoc: empty.in:36:2: WARNING: empty block: Bl
mandoc: empty.in:39:2: WARNING: empty block: Bl
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/emptyhead.out_lint b/regress/mdoc/Bl/emptyhead.out_lint
index 6b431c1e..a2e988ac 100644
--- a/regress/mdoc/Bl/emptyhead.out_lint
+++ b/regress/mdoc/Bl/emptyhead.out_lint
@@ -3,3 +3,4 @@ mandoc: emptyhead.in:12:2: WARNING: empty head in list item: Bl -hang It
mandoc: emptyhead.in:21:2: WARNING: empty head in list item: Bl -ohang It
mandoc: emptyhead.in:30:2: WARNING: empty head in list item: Bl -inset It
mandoc: emptyhead.in:39:2: WARNING: empty head in list item: Bl -diag It
+mandoc: emptyhead.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/emptyitem.out_lint b/regress/mdoc/Bl/emptyitem.out_lint
index fd43fac5..04094800 100644
--- a/regress/mdoc/Bl/emptyitem.out_lint
+++ b/regress/mdoc/Bl/emptyitem.out_lint
@@ -7,3 +7,4 @@ mandoc: emptyitem.in:28:2: WARNING: empty list item: Bl -enum It
mandoc: emptyitem.in:29:2: ERROR: skipping all arguments: It head argument
mandoc: emptyitem.in:34:2: ERROR: skipping all arguments: It Sy
mandoc: emptyitem.in:36:2: WARNING: empty list item: Bl -hyphen It
+mandoc: emptyitem.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/emptytag.out_lint b/regress/mdoc/Bl/emptytag.out_lint
index f45d01a2..b4a6a5a2 100644
--- a/regress/mdoc/Bl/emptytag.out_lint
+++ b/regress/mdoc/Bl/emptytag.out_lint
@@ -1,2 +1,3 @@
mandoc: emptytag.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: emptytag.in:12:2: WARNING: empty head in list item: Bl -tag It
+mandoc: emptytag.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/noIt.out_lint b/regress/mdoc/Bl/noIt.out_lint
index fed447e7..73bc1536 100644
--- a/regress/mdoc/Bl/noIt.out_lint
+++ b/regress/mdoc/Bl/noIt.out_lint
@@ -7,3 +7,4 @@ mandoc: noIt.in:17:2: WARNING: moving content out of list: Em
mandoc: noIt.in:17:10: WARNING: moving content out of list: Sy
mandoc: noIt.in:17:19: WARNING: moving content out of list: Em
mandoc: noIt.in:23:1: WARNING: moving content out of list: text
+mandoc: noIt.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/notype.out_lint b/regress/mdoc/Bl/notype.out_lint
index 1664a34e..e577a78b 100644
--- a/regress/mdoc/Bl/notype.out_lint
+++ b/regress/mdoc/Bl/notype.out_lint
@@ -4,3 +4,4 @@ mandoc: notype.in:9:2: WARNING: list type is not the first argument: Bl -offset
mandoc: notype.in:15:2: ERROR: missing list type, using -item: Bl
mandoc: notype.in:15:20: WARNING: skipping -width argument: Bl -item
mandoc: notype.in:21:2: ERROR: missing list type, using -item: Bl
+mandoc: notype.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bl/tag.out_lint b/regress/mdoc/Bl/tag.out_lint
index 284629f4..c8facb85 100644
--- a/regress/mdoc/Bl/tag.out_lint
+++ b/regress/mdoc/Bl/tag.out_lint
@@ -1,2 +1,3 @@
mandoc: tag.in:1:5: STYLE: Mdocdate missing: Dd September
mandoc: tag.in:131:2: WARNING: missing -width in -tag list, using 6n: Bl -tag
+mandoc: tag.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Brq/empty.out_lint b/regress/mdoc/Brq/empty.out_lint
index fc63637b..ad27b009 100644
--- a/regress/mdoc/Brq/empty.out_lint
+++ b/regress/mdoc/Brq/empty.out_lint
@@ -1,3 +1,4 @@
mandoc: empty.in:1:5: STYLE: Mdocdate missing: Dd June
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)
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Bx/args.out_lint b/regress/mdoc/Bx/args.out_lint
index 9ccc9a88..182f92ba 100644
--- a/regress/mdoc/Bx/args.out_lint
+++ b/regress/mdoc/Bx/args.out_lint
@@ -1,2 +1,3 @@
mandoc: args.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: args.in:15:9: STYLE: no blank before trailing delimiter: Bx nett.
+mandoc: args.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Cd/noarg.out_lint b/regress/mdoc/Cd/noarg.out_lint
index 1ec1484c..0503b8ea 100644
--- a/regress/mdoc/Cd/noarg.out_lint
+++ b/regress/mdoc/Cd/noarg.out_lint
@@ -1,2 +1,3 @@
mandoc: noarg.in:11:2: WARNING: skipping empty macro: Cd
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd January
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Cm/noarg.out_lint b/regress/mdoc/Cm/noarg.out_lint
index e7dc2932..88e134da 100644
--- a/regress/mdoc/Cm/noarg.out_lint
+++ b/regress/mdoc/Cm/noarg.out_lint
@@ -2,3 +2,4 @@ mandoc: noarg.in:9:23: WARNING: skipping empty macro: Cm
mandoc: noarg.in:12:13: WARNING: skipping empty macro: Cm
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: noarg.in:12:31: STYLE: no blank before trailing delimiter: Cm command.
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/D1/spacing.out_lint b/regress/mdoc/D1/spacing.out_lint
index cc3e4376..1e270d1f 100644
--- a/regress/mdoc/D1/spacing.out_lint
+++ b/regress/mdoc/D1/spacing.out_lint
@@ -1,2 +1,3 @@
mandoc: spacing.in:1:5: STYLE: Mdocdate missing: Dd February
mandoc: spacing.in:11:2: WARNING: empty block: D1
+mandoc: spacing.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Db/args.out_lint b/regress/mdoc/Db/args.out_lint
index b91a8ee3..41665017 100644
--- a/regress/mdoc/Db/args.out_lint
+++ b/regress/mdoc/Db/args.out_lint
@@ -2,3 +2,4 @@ mandoc: args.in:1:5: STYLE: Mdocdate missing: Dd November
mandoc: args.in:9:2: WARNING: obsolete macro: Db
mandoc: args.in:11:2: WARNING: obsolete macro: Db
mandoc: args.in:13:2: WARNING: obsolete macro: Db
+mandoc: args.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dd/badarg.out_lint b/regress/mdoc/Dd/badarg.out_lint
index 3ad546cf..c4ace062 100644
--- a/regress/mdoc/Dd/badarg.out_lint
+++ b/regress/mdoc/Dd/badarg.out_lint
@@ -1,2 +1,3 @@
mandoc: badarg.in:1:2: WARNING: cannot parse date, using it verbatim: bad date
mandoc: badarg.in:1:5: STYLE: Mdocdate missing: Dd bad date
+mandoc: badarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dd/dupe.out_lint b/regress/mdoc/Dd/dupe.out_lint
index 3b9a9751..c960b131 100644
--- a/regress/mdoc/Dd/dupe.out_lint
+++ b/regress/mdoc/Dd/dupe.out_lint
@@ -1,3 +1,4 @@
mandoc: dupe.in:1:5: STYLE: Mdocdate missing: Dd August
mandoc: dupe.in:4:2: WARNING: duplicate prologue macro: Dd
mandoc: dupe.in:10:2: WARNING: duplicate prologue macro: Dd
+mandoc: dupe.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dd/late.out_lint b/regress/mdoc/Dd/late.out_lint
index 07374131..26f1a49c 100644
--- a/regress/mdoc/Dd/late.out_lint
+++ b/regress/mdoc/Dd/late.out_lint
@@ -1 +1,2 @@
mandoc: late.in:8:2: WARNING: late prologue macro: Dd
+mandoc: late.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dd/long.out_lint b/regress/mdoc/Dd/long.out_lint
index ec549143..3c08dfc1 100644
--- a/regress/mdoc/Dd/long.out_lint
+++ b/regress/mdoc/Dd/long.out_lint
@@ -1,2 +1,3 @@
mandoc: long.in:1:2: WARNING: cannot parse date, using it verbatim: 1234567890123456789012345678901234567890123456789012345678901234567890123456789
mandoc: long.in:1:5: STYLE: Mdocdate missing: Dd 1234567890123456789012345678901234567890123456789012345678901234567890123456789
+mandoc: long.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dd/manarg.out_lint b/regress/mdoc/Dd/manarg.out_lint
index 3f3ecf71..bdf87370 100644
--- a/regress/mdoc/Dd/manarg.out_lint
+++ b/regress/mdoc/Dd/manarg.out_lint
@@ -1,2 +1,3 @@
mandoc: manarg.in:1:2: STYLE: legacy man(7) date format: Dd 2014-08-07
mandoc: manarg.in:1:5: STYLE: Mdocdate missing: Dd 2014-08-07
+mandoc: manarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dd/noarg.out_lint b/regress/mdoc/Dd/noarg.out_lint
index f2816336..273e6fa6 100644
--- a/regress/mdoc/Dd/noarg.out_lint
+++ b/regress/mdoc/Dd/noarg.out_lint
@@ -1 +1,2 @@
mandoc: noarg.in:1:2: WARNING: missing date, using today's date
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dd/order.out_lint b/regress/mdoc/Dd/order.out_lint
index 3f0cb911..36a360a4 100644
--- a/regress/mdoc/Dd/order.out_lint
+++ b/regress/mdoc/Dd/order.out_lint
@@ -1,2 +1,3 @@
mandoc: order.in:2:2: WARNING: prologue macros out of order: Dd after Dt
mandoc: order.in:2:5: STYLE: Mdocdate missing: Dd August
+mandoc: order.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dl/spacing.out_lint b/regress/mdoc/Dl/spacing.out_lint
index 7d87c4ff..35da576c 100644
--- a/regress/mdoc/Dl/spacing.out_lint
+++ b/regress/mdoc/Dl/spacing.out_lint
@@ -1,2 +1,3 @@
mandoc: spacing.in:1:5: STYLE: Mdocdate missing: Dd February
mandoc: spacing.in:11:2: WARNING: empty block: Dl
+mandoc: spacing.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dq/empty.out_lint b/regress/mdoc/Dq/empty.out_lint
index 5abe9323..193c54a7 100644
--- a/regress/mdoc/Dq/empty.out_lint
+++ b/regress/mdoc/Dq/empty.out_lint
@@ -1 +1,2 @@
mandoc: empty.in:1:5: STYLE: Mdocdate missing: Dd June
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dt/badsec.out_lint b/regress/mdoc/Dt/badsec.out_lint
index 3d469dee..88a8e0fb 100644
--- a/regress/mdoc/Dt/badsec.out_lint
+++ b/regress/mdoc/Dt/badsec.out_lint
@@ -1,2 +1,3 @@
mandoc: badsec.in:2:15: WARNING: unknown manual section: Dt ... foo
mandoc: badsec.in:1:5: STYLE: Mdocdate missing: Dd June
+mandoc: badsec.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dt/case.out_lint b/regress/mdoc/Dt/case.out_lint
index 921f8613..37e6392e 100644
--- a/regress/mdoc/Dt/case.out_lint
+++ b/regress/mdoc/Dt/case.out_lint
@@ -1,2 +1,3 @@
mandoc: case.in:2:6: WARNING: lower case character in document title: Dt Dt-case
mandoc: case.in:1:5: STYLE: Mdocdate missing: Dd June
+mandoc: case.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dt/dupe.out_lint b/regress/mdoc/Dt/dupe.out_lint
index e3e7d2e0..3eb38562 100644
--- a/regress/mdoc/Dt/dupe.out_lint
+++ b/regress/mdoc/Dt/dupe.out_lint
@@ -1,3 +1,4 @@
mandoc: dupe.in:1:5: STYLE: Mdocdate missing: Dd August
mandoc: dupe.in:4:2: WARNING: duplicate prologue macro: Dt
mandoc: dupe.in:10:2: WARNING: skipping late title macro: Dt
+mandoc: dupe.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dt/fourargs.out_lint b/regress/mdoc/Dt/fourargs.out_lint
index 4534bb2d..4937f537 100644
--- a/regress/mdoc/Dt/fourargs.out_lint
+++ b/regress/mdoc/Dt/fourargs.out_lint
@@ -1,2 +1,3 @@
mandoc: fourargs.in:2:25: ERROR: skipping excess arguments: Dt ... bogus
mandoc: fourargs.in:1:5: STYLE: Mdocdate missing: Dd February
+mandoc: fourargs.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dt/late.out_lint b/regress/mdoc/Dt/late.out_lint
index 2901bd51..d270b013 100644
--- a/regress/mdoc/Dt/late.out_lint
+++ b/regress/mdoc/Dt/late.out_lint
@@ -1,3 +1,4 @@
mandoc: late.in:1:5: STYLE: Mdocdate missing: Dd August
mandoc: late.in:8:2: WARNING: skipping late title macro: Dt
mandoc: late.in: WARNING: missing manual title, using UNTITLED: EOF
+mandoc: late.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dt/missing.out_lint b/regress/mdoc/Dt/missing.out_lint
index a7a3a5e3..88c3df07 100644
--- a/regress/mdoc/Dt/missing.out_lint
+++ b/regress/mdoc/Dt/missing.out_lint
@@ -1,2 +1,3 @@
mandoc: missing.in:1:5: STYLE: Mdocdate missing: Dd August
mandoc: missing.in: WARNING: missing manual title, using UNTITLED: EOF
+mandoc: missing.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dt/noarg.out_lint b/regress/mdoc/Dt/noarg.out_lint
index 2f060904..f3e6b8b9 100644
--- a/regress/mdoc/Dt/noarg.out_lint
+++ b/regress/mdoc/Dt/noarg.out_lint
@@ -1,3 +1,4 @@
mandoc: noarg.in:2:2: WARNING: missing manual title, using UNTITLED: Dt
mandoc: noarg.in:2:2: WARNING: missing manual section, using "": Dt UNTITLED
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd August
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dt/nobody.out_lint b/regress/mdoc/Dt/nobody.out_lint
index 3986d728..bc9c6c9c 100644
--- a/regress/mdoc/Dt/nobody.out_lint
+++ b/regress/mdoc/Dt/nobody.out_lint
@@ -1,2 +1,3 @@
mandoc: nobody.in:1:5: STYLE: Mdocdate missing: Dd June
+mandoc: nobody.in: STYLE: RCS id missing
mandoc: nobody.in: WARNING: no document body
diff --git a/regress/mdoc/Dt/nosec.out_lint b/regress/mdoc/Dt/nosec.out_lint
index 8cfbae81..08e37eda 100644
--- a/regress/mdoc/Dt/nosec.out_lint
+++ b/regress/mdoc/Dt/nosec.out_lint
@@ -1,2 +1,3 @@
mandoc: nosec.in:2:2: WARNING: missing manual section, using "": Dt DT-NOSEC
mandoc: nosec.in:1:5: STYLE: Mdocdate missing: Dd August
+mandoc: nosec.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dt/order.out_lint b/regress/mdoc/Dt/order.out_lint
index 60519940..718e3095 100644
--- a/regress/mdoc/Dt/order.out_lint
+++ b/regress/mdoc/Dt/order.out_lint
@@ -1,2 +1,3 @@
mandoc: order.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: order.in:3:2: WARNING: prologue macros out of order: Dt after Os
+mandoc: order.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Dv/noarg.out_lint b/regress/mdoc/Dv/noarg.out_lint
index bb59aad2..efea3f44 100644
--- a/regress/mdoc/Dv/noarg.out_lint
+++ b/regress/mdoc/Dv/noarg.out_lint
@@ -1,3 +1,4 @@
mandoc: noarg.in:11:2: WARNING: skipping empty macro: Dv
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: noarg.in:9:9: STYLE: no blank before trailing delimiter: Dv NULL.
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Em/noarg.out_lint b/regress/mdoc/Em/noarg.out_lint
index 64aec8d4..f850a862 100644
--- a/regress/mdoc/Em/noarg.out_lint
+++ b/regress/mdoc/Em/noarg.out_lint
@@ -1,2 +1,3 @@
mandoc: noarg.in:11:2: WARNING: skipping empty macro: Em
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd January
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Em/punct.out_lint b/regress/mdoc/Em/punct.out_lint
index 5209a7f3..df05892f 100644
--- a/regress/mdoc/Em/punct.out_lint
+++ b/regress/mdoc/Em/punct.out_lint
@@ -25,3 +25,4 @@ mandoc: punct.in:75:7: WARNING: skipping empty macro: Em
mandoc: punct.in:83:2: WARNING: skipping empty macro: Em
mandoc: punct.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: punct.in:86:6: STYLE: no blank before trailing delimiter: Em a.
+mandoc: punct.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Eo/break.out_lint b/regress/mdoc/Eo/break.out_lint
index 9df1a640..7f86b248 100644
--- a/regress/mdoc/Eo/break.out_lint
+++ b/regress/mdoc/Eo/break.out_lint
@@ -7,3 +7,4 @@ mandoc: break.in:51:2: WARNING: blocks badly nested: Bo breaks Eo
mandoc: break.in:59:2: WARNING: blocks badly nested: Bo breaks Eo
mandoc: break.in:66:2: WARNING: blocks badly nested: Bo breaks Eo
mandoc: break.in:1:5: STYLE: Mdocdate missing: Dd February
+mandoc: break.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Eo/obsolete.out_lint b/regress/mdoc/Eo/obsolete.out_lint
index 406a4b27..dc5b7509 100644
--- a/regress/mdoc/Eo/obsolete.out_lint
+++ b/regress/mdoc/Eo/obsolete.out_lint
@@ -5,3 +5,4 @@ mandoc: obsolete.in:12:2: WARNING: obsolete macro: En
mandoc: obsolete.in:14:2: WARNING: obsolete macro: En
mandoc: obsolete.in:17:2: WARNING: obsolete macro: Es
mandoc: obsolete.in:19:2: WARNING: obsolete macro: En
+mandoc: obsolete.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Eo/unclosed.out_lint b/regress/mdoc/Eo/unclosed.out_lint
index aea85636..2f631462 100644
--- a/regress/mdoc/Eo/unclosed.out_lint
+++ b/regress/mdoc/Eo/unclosed.out_lint
@@ -1,2 +1,3 @@
mandoc: unclosed.in:9:2: ERROR: appending missing end of block: Eo
mandoc: unclosed.in:1:5: STYLE: Mdocdate missing: Dd February
+mandoc: unclosed.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Er/noarg.out_lint b/regress/mdoc/Er/noarg.out_lint
index 7f454a5d..e042addf 100644
--- a/regress/mdoc/Er/noarg.out_lint
+++ b/regress/mdoc/Er/noarg.out_lint
@@ -1,3 +1,4 @@
mandoc: noarg.in:12:2: WARNING: skipping empty macro: Er
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: noarg.in:10:8: STYLE: no blank before trailing delimiter: Er EIO.
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Ev/noarg.out_lint b/regress/mdoc/Ev/noarg.out_lint
index 7377133d..9aa48210 100644
--- a/regress/mdoc/Ev/noarg.out_lint
+++ b/regress/mdoc/Ev/noarg.out_lint
@@ -1,3 +1,4 @@
mandoc: noarg.in:11:2: WARNING: skipping empty macro: Ev
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: noarg.in:9:9: STYLE: no blank before trailing delimiter: Ev HOME.
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Ex/noname.out_lint b/regress/mdoc/Ex/noname.out_lint
index c9cf240b..1e1291ba 100644
--- a/regress/mdoc/Ex/noname.out_lint
+++ b/regress/mdoc/Ex/noname.out_lint
@@ -1,3 +1,4 @@
mandoc: noname.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: noname.in:5:2: ERROR: missing manual name, using "": Nm
mandoc: noname.in:9:2: WARNING: missing utility name, using "": Ex
+mandoc: noname.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Ex/nostd.out_lint b/regress/mdoc/Ex/nostd.out_lint
index a19cce8f..e0fed16b 100644
--- a/regress/mdoc/Ex/nostd.out_lint
+++ b/regress/mdoc/Ex/nostd.out_lint
@@ -2,3 +2,4 @@ mandoc: nostd.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: nostd.in:9:2: WARNING: missing -std argument, adding it: Ex
mandoc: nostd.in:12:2: WARNING: missing -std argument, adding it: Ex
mandoc: nostd.in:15:2: WARNING: missing -std argument, adding it: Ex
+mandoc: nostd.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Fd/empty.out_lint b/regress/mdoc/Fd/empty.out_lint
index c0ffefcd..aa61bc26 100644
--- a/regress/mdoc/Fd/empty.out_lint
+++ b/regress/mdoc/Fd/empty.out_lint
@@ -1,3 +1,4 @@
mandoc: empty.in:9:2: WARNING: skipping empty macro: Fd
mandoc: empty.in:13:2: WARNING: skipping empty macro: Fd
mandoc: empty.in:1:5: STYLE: Mdocdate missing: Dd February
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Fl/punct.out_lint b/regress/mdoc/Fl/punct.out_lint
index 6da8a24a..4bd4cff2 100644
--- a/regress/mdoc/Fl/punct.out_lint
+++ b/regress/mdoc/Fl/punct.out_lint
@@ -1,2 +1,3 @@
mandoc: punct.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: punct.in:45:6: STYLE: no blank before trailing delimiter: Fl a.
+mandoc: punct.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Fo/noarg.out_lint b/regress/mdoc/Fo/noarg.out_lint
index d8317c9e..eb1a5dc8 100644
--- a/regress/mdoc/Fo/noarg.out_lint
+++ b/regress/mdoc/Fo/noarg.out_lint
@@ -9,3 +9,4 @@ mandoc: noarg.in:42:2: WARNING: skipping empty macro: Ft
mandoc: noarg.in:43:2: WARNING: skipping empty macro: Fn
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: noarg.in:12:10: ERROR: skipping excess arguments: Fo ... bogus
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Fo/nohead.out_lint b/regress/mdoc/Fo/nohead.out_lint
index 363e75b3..2023d0a0 100644
--- a/regress/mdoc/Fo/nohead.out_lint
+++ b/regress/mdoc/Fo/nohead.out_lint
@@ -1,2 +1,3 @@
mandoc: nohead.in:1:5: STYLE: Mdocdate missing: Dd February
mandoc: nohead.in:10:2: WARNING: missing function name, using "": Fo
+mandoc: nohead.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Fo/obsolete.out_lint b/regress/mdoc/Fo/obsolete.out_lint
index 20428eac..0748a447 100644
--- a/regress/mdoc/Fo/obsolete.out_lint
+++ b/regress/mdoc/Fo/obsolete.out_lint
@@ -1,3 +1,4 @@
mandoc: obsolete.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: obsolete.in:9:2: WARNING: obsolete macro: Ot
mandoc: obsolete.in:12:2: WARNING: obsolete macro: Fr
+mandoc: obsolete.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Fo/punct.out_lint b/regress/mdoc/Fo/punct.out_lint
index 1188d6c2..0ef4124c 100644
--- a/regress/mdoc/Fo/punct.out_lint
+++ b/regress/mdoc/Fo/punct.out_lint
@@ -2,3 +2,4 @@ mandoc: punct.in:1:5: STYLE: Mdocdate missing: Dd May
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:
+mandoc: punct.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Fo/warn.out_lint b/regress/mdoc/Fo/warn.out_lint
index e72e3390..39ddeeb2 100644
--- a/regress/mdoc/Fo/warn.out_lint
+++ b/regress/mdoc/Fo/warn.out_lint
@@ -1,3 +1,4 @@
mandoc: warn.in:1:5: STYLE: Mdocdate missing: Dd October
mandoc: warn.in:9:8: WARNING: parenthesis in function name: sin()
mandoc: warn.in:13:19: WARNING: comma in function argument: double y, double x
+mandoc: warn.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Ic/noarg.out_lint b/regress/mdoc/Ic/noarg.out_lint
index 99960de4..01931a83 100644
--- a/regress/mdoc/Ic/noarg.out_lint
+++ b/regress/mdoc/Ic/noarg.out_lint
@@ -1,3 +1,4 @@
mandoc: noarg.in:11:2: WARNING: skipping empty macro: Ic
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: noarg.in:9:7: STYLE: no blank before trailing delimiter: Ic ls.
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/In/noarg.out_lint b/regress/mdoc/In/noarg.out_lint
index 1782d643..f1a550cd 100644
--- a/regress/mdoc/In/noarg.out_lint
+++ b/regress/mdoc/In/noarg.out_lint
@@ -2,3 +2,4 @@ mandoc: noarg.in:11:2: WARNING: skipping empty macro: In
mandoc: noarg.in:18:2: WARNING: skipping empty macro: In
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd February
mandoc: noarg.in:15:11: STYLE: no blank before trailing delimiter: In math.h:
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Lb/badargs.out_lint b/regress/mdoc/Lb/badargs.out_lint
index 543fc3d2..b4832bf3 100644
--- a/regress/mdoc/Lb/badargs.out_lint
+++ b/regress/mdoc/Lb/badargs.out_lint
@@ -4,3 +4,4 @@ mandoc: badargs.in:8:10: STYLE: no blank before trailing delimiter: Lb murks.
mandoc: badargs.in:8:5: WARNING: unknown library name: Lb murks.
mandoc: badargs.in:10:18: STYLE: no blank before trailing delimiter: Lb ... another.
mandoc: badargs.in:10:5: WARNING: unknown library name: Lb mylib
+mandoc: badargs.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Li/punct.out_lint b/regress/mdoc/Li/punct.out_lint
index 333b25b6..13db2724 100644
--- a/regress/mdoc/Li/punct.out_lint
+++ b/regress/mdoc/Li/punct.out_lint
@@ -25,3 +25,4 @@ mandoc: punct.in:75:7: WARNING: skipping empty macro: Li
mandoc: punct.in:83:2: WARNING: skipping empty macro: Li
mandoc: punct.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: punct.in:86:6: STYLE: no blank before trailing delimiter: Li a.
+mandoc: punct.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Lk/noarg.out_lint b/regress/mdoc/Lk/noarg.out_lint
index 355a79e0..4a49a4f9 100644
--- a/regress/mdoc/Lk/noarg.out_lint
+++ b/regress/mdoc/Lk/noarg.out_lint
@@ -2,3 +2,4 @@ mandoc: noarg.in:16:2: WARNING: skipping empty macro: Lk
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd June
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/,
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Ms/noarg.out_lint b/regress/mdoc/Ms/noarg.out_lint
index 286f4f00..c1a4112a 100644
--- a/regress/mdoc/Ms/noarg.out_lint
+++ b/regress/mdoc/Ms/noarg.out_lint
@@ -1,3 +1,4 @@
mandoc: noarg.in:11:2: WARNING: skipping empty macro: Ms
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: noarg.in:9:10: STYLE: no blank before trailing delimiter: Ms alpha.
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Mt/simple.out_lint b/regress/mdoc/Mt/simple.out_lint
index 95edebdd..14aceb51 100644
--- a/regress/mdoc/Mt/simple.out_lint
+++ b/regress/mdoc/Mt/simple.out_lint
@@ -1,2 +1,3 @@
mandoc: simple.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: simple.in:12:26: STYLE: no blank before trailing delimiter: Mt punctuation@localhost.
+mandoc: simple.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Nd/broken.out_lint b/regress/mdoc/Nd/broken.out_lint
index c2a841a9..977ffbad 100644
--- a/regress/mdoc/Nd/broken.out_lint
+++ b/regress/mdoc/Nd/broken.out_lint
@@ -8,3 +8,4 @@ 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
+mandoc: broken.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Nd/noarg.out_lint b/regress/mdoc/Nd/noarg.out_lint
index 97f1c759..b5d85196 100644
--- a/regress/mdoc/Nd/noarg.out_lint
+++ b/regress/mdoc/Nd/noarg.out_lint
@@ -1,2 +1,3 @@
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd January
mandoc: noarg.in:6:2: WARNING: missing description line, using "": Nd
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Nm/badNAME.out_lint b/regress/mdoc/Nm/badNAME.out_lint
index a8a6c51b..e15a51ba 100644
--- a/regress/mdoc/Nm/badNAME.out_lint
+++ b/regress/mdoc/Nm/badNAME.out_lint
@@ -1,3 +1,4 @@
mandoc: badNAME.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: badNAME.in:5:2: ERROR: missing manual name, using "": Nm
mandoc: badNAME.in:5:5: WARNING: bad NAME section content: Bx
+mandoc: badNAME.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Nm/badNAMEuse.out_lint b/regress/mdoc/Nm/badNAMEuse.out_lint
index ec925e82..86eadb46 100644
--- a/regress/mdoc/Nm/badNAMEuse.out_lint
+++ b/regress/mdoc/Nm/badNAMEuse.out_lint
@@ -1,3 +1,4 @@
mandoc: badNAMEuse.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: badNAMEuse.in:5:2: ERROR: missing manual name, using "": Nm
mandoc: badNAMEuse.in:5:5: WARNING: bad NAME section content: Bx
+mandoc: badNAMEuse.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Nm/break.out_lint b/regress/mdoc/Nm/break.out_lint
index 79698c84..b3c6da7a 100644
--- a/regress/mdoc/Nm/break.out_lint
+++ b/regress/mdoc/Nm/break.out_lint
@@ -1,2 +1,3 @@
mandoc: break.in:9:2: ERROR: inserting missing end of block: Sh breaks Bo
mandoc: break.in:1:5: STYLE: Mdocdate missing: Dd August
+mandoc: break.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Nm/broken.out_lint b/regress/mdoc/Nm/broken.out_lint
index 828bcbc8..1d7a95b5 100644
--- a/regress/mdoc/Nm/broken.out_lint
+++ b/regress/mdoc/Nm/broken.out_lint
@@ -1,3 +1,4 @@
mandoc: broken.in:17:2: WARNING: blocks badly nested: Oo breaks Bk
mandoc: broken.in:1:5: STYLE: Mdocdate missing: Dd February
mandoc: broken.in:13:2: WARNING: moving content out of list: Oo
+mandoc: broken.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Nm/punct.out_lint b/regress/mdoc/Nm/punct.out_lint
index da4ba2d6..fb6b98b1 100644
--- a/regress/mdoc/Nm/punct.out_lint
+++ b/regress/mdoc/Nm/punct.out_lint
@@ -1,2 +1,3 @@
mandoc: punct.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: punct.in:42:13: STYLE: no blank before trailing delimiter: Nm Nm-punct.
+mandoc: punct.in: STYLE: RCS id missing
diff --git a/regress/mdoc/No/punct.out_lint b/regress/mdoc/No/punct.out_lint
index e5afc385..b816b739 100644
--- a/regress/mdoc/No/punct.out_lint
+++ b/regress/mdoc/No/punct.out_lint
@@ -24,3 +24,4 @@ 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:1:5: STYLE: Mdocdate missing: Dd June
+mandoc: punct.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Ns/position.out_lint b/regress/mdoc/Ns/position.out_lint
index fd306e26..2137914d 100644
--- a/regress/mdoc/Ns/position.out_lint
+++ b/regress/mdoc/Ns/position.out_lint
@@ -1,2 +1,3 @@
mandoc: position.in:1:5: STYLE: Mdocdate missing: Dd September
mandoc: position.in:10:2: WARNING: skipping no-space macro
+mandoc: position.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Oo/punct.out_lint b/regress/mdoc/Oo/punct.out_lint
index f2bdac03..43365184 100644
--- a/regress/mdoc/Oo/punct.out_lint
+++ b/regress/mdoc/Oo/punct.out_lint
@@ -1,2 +1,3 @@
mandoc: punct.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: punct.in:26:6: STYLE: no blank before trailing delimiter: Oo a.
+mandoc: punct.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Op/break.out_lint b/regress/mdoc/Op/break.out_lint
index 9ac3ad69..bd010c5e 100644
--- a/regress/mdoc/Op/break.out_lint
+++ b/regress/mdoc/Op/break.out_lint
@@ -2,3 +2,4 @@ mandoc: break.in:9:2: WARNING: blocks badly nested: Op breaks Do
mandoc: break.in:15:7: WARNING: blocks badly nested: Op breaks Do
mandoc: break.in:15:2: WARNING: blocks badly nested: Op breaks Do
mandoc: break.in:1:5: STYLE: Mdocdate missing: Dd July
+mandoc: break.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Op/broken.out_lint b/regress/mdoc/Op/broken.out_lint
index b33fb668..409d339e 100644
--- a/regress/mdoc/Op/broken.out_lint
+++ b/regress/mdoc/Op/broken.out_lint
@@ -1,3 +1,4 @@
mandoc: broken.in:10:17: WARNING: blocks badly nested: Do breaks Op
mandoc: broken.in:15:15: WARNING: blocks badly nested: Do breaks Op
mandoc: broken.in:1:5: STYLE: Mdocdate missing: Dd July
+mandoc: broken.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Op/punct.out_lint b/regress/mdoc/Op/punct.out_lint
index e4c3b3f9..a8e2e90e 100644
--- a/regress/mdoc/Op/punct.out_lint
+++ b/regress/mdoc/Op/punct.out_lint
@@ -1,2 +1,3 @@
mandoc: punct.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: punct.in:34:6: STYLE: no blank before trailing delimiter: Op a.
+mandoc: punct.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Os/dupe.out_lint b/regress/mdoc/Os/dupe.out_lint
index 364b7a6e..a28817ec 100644
--- a/regress/mdoc/Os/dupe.out_lint
+++ b/regress/mdoc/Os/dupe.out_lint
@@ -1,3 +1,4 @@
mandoc: dupe.in:3:2: WARNING: prologue macros out of order: Dt after Os
mandoc: dupe.in:4:2: WARNING: duplicate prologue macro: Os
mandoc: dupe.in:10:2: WARNING: duplicate prologue macro: Os
+mandoc: dupe.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Os/late.out_lint b/regress/mdoc/Os/late.out_lint
index 8b0e2f76..55a4e830 100644
--- a/regress/mdoc/Os/late.out_lint
+++ b/regress/mdoc/Os/late.out_lint
@@ -1 +1,2 @@
mandoc: late.in:8:2: WARNING: late prologue macro: Os
+mandoc: late.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Pa/punct.out_lint b/regress/mdoc/Pa/punct.out_lint
index 8fa38b4d..50fb6767 100644
--- a/regress/mdoc/Pa/punct.out_lint
+++ b/regress/mdoc/Pa/punct.out_lint
@@ -1,2 +1,3 @@
mandoc: punct.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: punct.in:45:6: STYLE: no blank before trailing delimiter: Pa a.
+mandoc: punct.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Pf/spacing.out_lint b/regress/mdoc/Pf/spacing.out_lint
index ccc98067..f77cb443 100644
--- a/regress/mdoc/Pf/spacing.out_lint
+++ b/regress/mdoc/Pf/spacing.out_lint
@@ -2,3 +2,4 @@ mandoc: spacing.in:24:2: WARNING: nothing follows prefix: Pf prefixed
mandoc: spacing.in:27:9: WARNING: nothing follows prefix: Pf .
mandoc: spacing.in:31:9: WARNING: nothing follows prefix: Pf at eol
mandoc: spacing.in:1:5: STYLE: Mdocdate missing: Dd November
+mandoc: spacing.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Pp/arg.out_lint b/regress/mdoc/Pp/arg.out_lint
index 135e39f6..442f7362 100644
--- a/regress/mdoc/Pp/arg.out_lint
+++ b/regress/mdoc/Pp/arg.out_lint
@@ -2,3 +2,4 @@ mandoc: arg.in:11:5: ERROR: skipping all arguments: br drop this
mandoc: arg.in:13:8: ERROR: skipping excess arguments: sp ... drop this
mandoc: arg.in:1:5: STYLE: Mdocdate missing: Dd February
mandoc: arg.in:9:2: ERROR: skipping all arguments: Pp drop
+mandoc: arg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Qq/empty.out_lint b/regress/mdoc/Qq/empty.out_lint
index 1e1ce1a8..9b1eb493 100644
--- a/regress/mdoc/Qq/empty.out_lint
+++ b/regress/mdoc/Qq/empty.out_lint
@@ -1,3 +1,4 @@
mandoc: empty.in:1:5: STYLE: Mdocdate missing: Dd June
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)
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Rs/allch.out_lint b/regress/mdoc/Rs/allch.out_lint
index 08c3b9a1..543d7463 100644
--- a/regress/mdoc/Rs/allch.out_lint
+++ b/regress/mdoc/Rs/allch.out_lint
@@ -5,3 +5,4 @@ mandoc: allch.in:20:1: WARNING: invalid content in Rs block: text
mandoc: allch.in:35:1: WARNING: invalid content in Rs block: text
mandoc: allch.in:36:2: WARNING: invalid content in Rs block: Em
mandoc: allch.in:41:1: WARNING: invalid content in Rs block: text
+mandoc: allch.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Rs/args.out_lint b/regress/mdoc/Rs/args.out_lint
index 796b893b..b9000151 100644
--- a/regress/mdoc/Rs/args.out_lint
+++ b/regress/mdoc/Rs/args.out_lint
@@ -1,3 +1,4 @@
mandoc: args.in:9:5: ERROR: skipping all arguments: Rs bogus
mandoc: args.in:14:5: ERROR: skipping all arguments: Rs Sy
mandoc: args.in:1:5: STYLE: Mdocdate missing: Dd February
+mandoc: args.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Rs/empty.out_lint b/regress/mdoc/Rs/empty.out_lint
index a83fa520..01216631 100644
--- a/regress/mdoc/Rs/empty.out_lint
+++ b/regress/mdoc/Rs/empty.out_lint
@@ -1,3 +1,4 @@
mandoc: empty.in:1:5: STYLE: Mdocdate missing: Dd February
mandoc: empty.in:9:2: WARNING: empty reference block: Rs
mandoc: empty.in:14:2: WARNING: empty reference block: Rs
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Rv/noname.out_lint b/regress/mdoc/Rv/noname.out_lint
index 13baf647..22c61e44 100644
--- a/regress/mdoc/Rv/noname.out_lint
+++ b/regress/mdoc/Rv/noname.out_lint
@@ -1,2 +1,3 @@
mandoc: noname.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: noname.in:5:2: ERROR: missing manual name, using "": Nm
+mandoc: noname.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Rv/nostd.out_lint b/regress/mdoc/Rv/nostd.out_lint
index 16acaba6..5337e00d 100644
--- a/regress/mdoc/Rv/nostd.out_lint
+++ b/regress/mdoc/Rv/nostd.out_lint
@@ -2,3 +2,4 @@ mandoc: nostd.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: nostd.in:9:2: WARNING: missing -std argument, adding it: Rv
mandoc: nostd.in:12:2: WARNING: missing -std argument, adding it: Rv
mandoc: nostd.in:15:2: WARNING: missing -std argument, adding it: Rv
+mandoc: nostd.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sh/badNAME.out_lint b/regress/mdoc/Sh/badNAME.out_lint
index 9f008a18..8ea4f1c0 100644
--- a/regress/mdoc/Sh/badNAME.out_lint
+++ b/regress/mdoc/Sh/badNAME.out_lint
@@ -1,3 +1,4 @@
mandoc: badNAME.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: badNAME.in:5:2: WARNING: bad NAME section content: Em
mandoc: badNAME.in:4:2: WARNING: NAME section without description
+mandoc: badNAME.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sh/before.out_lint b/regress/mdoc/Sh/before.out_lint
index 7cfe763e..b0a48836 100644
--- a/regress/mdoc/Sh/before.out_lint
+++ b/regress/mdoc/Sh/before.out_lint
@@ -1,2 +1,3 @@
mandoc: before.in:1:5: STYLE: Mdocdate missing: Dd July
+mandoc: before.in: STYLE: RCS id missing
mandoc: before.in:4:1: WARNING: content before first section header: text
diff --git a/regress/mdoc/Sh/empty.out_lint b/regress/mdoc/Sh/empty.out_lint
index 1672d581..8f3b54fc 100644
--- a/regress/mdoc/Sh/empty.out_lint
+++ b/regress/mdoc/Sh/empty.out_lint
@@ -1,2 +1,3 @@
mandoc: empty.in:9:2: ERROR: inserting missing end of block: Sh breaks Xo
mandoc: empty.in:1:5: STYLE: Mdocdate missing: Dd November
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sh/emptyNAME.out_lint b/regress/mdoc/Sh/emptyNAME.out_lint
index 45804744..f817d3dd 100644
--- a/regress/mdoc/Sh/emptyNAME.out_lint
+++ b/regress/mdoc/Sh/emptyNAME.out_lint
@@ -1,3 +1,4 @@
mandoc: emptyNAME.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: emptyNAME.in:4:2: WARNING: NAME section without Nm before Nd
mandoc: emptyNAME.in:4:2: WARNING: NAME section without description
+mandoc: emptyNAME.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sh/first.out_lint b/regress/mdoc/Sh/first.out_lint
index c19ec77d..87169e58 100644
--- a/regress/mdoc/Sh/first.out_lint
+++ b/regress/mdoc/Sh/first.out_lint
@@ -1,2 +1,3 @@
mandoc: first.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: first.in:4:2: WARNING: first section is not "NAME": Sh DESCRIPTION
+mandoc: first.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sh/nohead.out_lint b/regress/mdoc/Sh/nohead.out_lint
index 78e046c6..c40bf929 100644
--- a/regress/mdoc/Sh/nohead.out_lint
+++ b/regress/mdoc/Sh/nohead.out_lint
@@ -1,3 +1,4 @@
mandoc: nohead.in:9:2: WARNING: skipping empty macro: Sh
mandoc: nohead.in:11:2: WARNING: skipping empty macro: Ss
mandoc: nohead.in:1:5: STYLE: Mdocdate missing: Dd February
+mandoc: nohead.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sh/order.out_lint b/regress/mdoc/Sh/order.out_lint
index 52f42595..33ca5b26 100644
--- a/regress/mdoc/Sh/order.out_lint
+++ b/regress/mdoc/Sh/order.out_lint
@@ -2,3 +2,4 @@ mandoc: order.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: order.in:9:2: WARNING: sections out of conventional order: Sh SYNOPSIS
mandoc: order.in:10:2: WARNING: duplicate section title: Sh SYNOPSIS
mandoc: order.in:11:2: WARNING: unexpected section: Sh ERRORS for 2, 3, 4, 9 only
+mandoc: order.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sh/orderNAME.out_lint b/regress/mdoc/Sh/orderNAME.out_lint
index 5b3a88cd..269761ef 100644
--- a/regress/mdoc/Sh/orderNAME.out_lint
+++ b/regress/mdoc/Sh/orderNAME.out_lint
@@ -1,3 +1,4 @@
mandoc: orderNAME.in:1:5: STYLE: Mdocdate missing: Dd January
mandoc: orderNAME.in:5:2: WARNING: description not at the end of NAME
mandoc: orderNAME.in:4:2: WARNING: NAME section without Nm before Nd
+mandoc: orderNAME.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sh/parbefore.out_lint b/regress/mdoc/Sh/parbefore.out_lint
index 86e6c69d..bbb4ec84 100644
--- a/regress/mdoc/Sh/parbefore.out_lint
+++ b/regress/mdoc/Sh/parbefore.out_lint
@@ -1,2 +1,3 @@
mandoc: parbefore.in:1:5: STYLE: Mdocdate missing: Dd April
mandoc: parbefore.in:4:2: WARNING: skipping paragraph macro: Pp before Sh
+mandoc: parbefore.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sh/parborder.out_lint b/regress/mdoc/Sh/parborder.out_lint
index 60404cab..c6a32d8f 100644
--- a/regress/mdoc/Sh/parborder.out_lint
+++ b/regress/mdoc/Sh/parborder.out_lint
@@ -6,3 +6,4 @@ mandoc: parborder.in:16:2: WARNING: skipping paragraph macro: Pp after Ss
mandoc: parborder.in:18:2: WARNING: skipping paragraph macro: Pp at the end of Ss
mandoc: parborder.in:14:2: WARNING: skipping paragraph macro: Pp before Ss
mandoc: parborder.in:21:2: WARNING: skipping paragraph macro: Pp at the end of Ss
+mandoc: parborder.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sh/punctNAME.out_lint b/regress/mdoc/Sh/punctNAME.out_lint
index 36ea06c2..845c22d9 100644
--- a/regress/mdoc/Sh/punctNAME.out_lint
+++ b/regress/mdoc/Sh/punctNAME.out_lint
@@ -3,3 +3,4 @@ mandoc: punctNAME.in:6:2: WARNING: missing comma before name: Nm second_name
mandoc: punctNAME.in:6:17: WARNING: bad NAME section content: text
mandoc: punctNAME.in:7:2: WARNING: missing comma before name: Nm third_name
mandoc: punctNAME.in:7:16: WARNING: bad NAME section content: text
+mandoc: punctNAME.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sh/subbefore.out_lint b/regress/mdoc/Sh/subbefore.out_lint
index 7200899f..94164e51 100644
--- a/regress/mdoc/Sh/subbefore.out_lint
+++ b/regress/mdoc/Sh/subbefore.out_lint
@@ -1,2 +1,3 @@
mandoc: subbefore.in:1:5: STYLE: Mdocdate missing: Dd July
+mandoc: subbefore.in: STYLE: RCS id missing
mandoc: subbefore.in:4:2: WARNING: content before first section header: Ss
diff --git a/regress/mdoc/Sm/badarg.out_lint b/regress/mdoc/Sm/badarg.out_lint
index e355625c..ade29650 100644
--- a/regress/mdoc/Sm/badarg.out_lint
+++ b/regress/mdoc/Sm/badarg.out_lint
@@ -1,3 +1,4 @@
mandoc: badarg.in:1:5: STYLE: Mdocdate missing: Dd July
mandoc: badarg.in:11:5: WARNING: invalid Boolean argument: Sm bad
mandoc: badarg.in:13:5: WARNING: invalid Boolean argument: Sm bad
+mandoc: badarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sm/twoarg.out_lint b/regress/mdoc/Sm/twoarg.out_lint
index ff639a7a..a65f88a6 100644
--- a/regress/mdoc/Sm/twoarg.out_lint
+++ b/regress/mdoc/Sm/twoarg.out_lint
@@ -1,2 +1,3 @@
mandoc: twoarg.in:1:5: STYLE: Mdocdate missing: Dd November
mandoc: twoarg.in:16:5: WARNING: invalid Boolean argument: Sm bad
+mandoc: twoarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sq/empty.out_lint b/regress/mdoc/Sq/empty.out_lint
index 27efbfd8..e2edf0c8 100644
--- a/regress/mdoc/Sq/empty.out_lint
+++ b/regress/mdoc/Sq/empty.out_lint
@@ -1,3 +1,4 @@
mandoc: empty.in:1:5: STYLE: Mdocdate missing: Dd June
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)
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/mdoc/St/badargs.out_lint b/regress/mdoc/St/badargs.out_lint
index 02904eac..91b756d2 100644
--- a/regress/mdoc/St/badargs.out_lint
+++ b/regress/mdoc/St/badargs.out_lint
@@ -1,3 +1,4 @@
mandoc: badargs.in:15:2: WARNING: skipping empty macro: St
mandoc: badargs.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: badargs.in:12:5: ERROR: unknown standard specifier: St -murks
+mandoc: badargs.in: STYLE: RCS id missing
diff --git a/regress/mdoc/St/call.out_lint b/regress/mdoc/St/call.out_lint
index 1a51ebc8..c92fffcc 100644
--- a/regress/mdoc/St/call.out_lint
+++ b/regress/mdoc/St/call.out_lint
@@ -1,2 +1,3 @@
mandoc: call.in:9:2: WARNING: skipping empty macro: St
mandoc: call.in:1:5: STYLE: Mdocdate missing: Dd February
+mandoc: call.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sx/noarg.out_lint b/regress/mdoc/Sx/noarg.out_lint
index 9c420488..f2bd60f0 100644
--- a/regress/mdoc/Sx/noarg.out_lint
+++ b/regress/mdoc/Sx/noarg.out_lint
@@ -1,2 +1,3 @@
mandoc: noarg.in:11:2: WARNING: skipping empty macro: Sx
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd January
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sy/noarg.out_lint b/regress/mdoc/Sy/noarg.out_lint
index 1fd12f57..d51488d3 100644
--- a/regress/mdoc/Sy/noarg.out_lint
+++ b/regress/mdoc/Sy/noarg.out_lint
@@ -1,2 +1,3 @@
mandoc: noarg.in:11:2: WARNING: skipping empty macro: Sy
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd January
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Sy/punct.out_lint b/regress/mdoc/Sy/punct.out_lint
index 2aa1fe34..0339065d 100644
--- a/regress/mdoc/Sy/punct.out_lint
+++ b/regress/mdoc/Sy/punct.out_lint
@@ -25,3 +25,4 @@ mandoc: punct.in:75:7: WARNING: skipping empty macro: Sy
mandoc: punct.in:83:2: WARNING: skipping empty macro: Sy
mandoc: punct.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: punct.in:86:6: STYLE: no blank before trailing delimiter: Sy a.
+mandoc: punct.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Tn/noarg.out_lint b/regress/mdoc/Tn/noarg.out_lint
index a2980eca..07ebd6c9 100644
--- a/regress/mdoc/Tn/noarg.out_lint
+++ b/regress/mdoc/Tn/noarg.out_lint
@@ -1,3 +1,4 @@
mandoc: noarg.in:11:2: WARNING: skipping empty macro: Tn
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd January
mandoc: noarg.in:9:2: STYLE: useless macro: Tn
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Ud/arg.out_lint b/regress/mdoc/Ud/arg.out_lint
index cb1e4188..d146f650 100644
--- a/regress/mdoc/Ud/arg.out_lint
+++ b/regress/mdoc/Ud/arg.out_lint
@@ -9,3 +9,4 @@ mandoc: arg.in:17:2: STYLE: useless macro: Ud
mandoc: arg.in:17:2: ERROR: skipping all arguments: Ud one
mandoc: arg.in:18:2: STYLE: useless macro: Bt
mandoc: arg.in:18:2: ERROR: skipping all arguments: Bt one
+mandoc: arg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Ux/punct.out_lint b/regress/mdoc/Ux/punct.out_lint
index 7037ae94..9aa26936 100644
--- a/regress/mdoc/Ux/punct.out_lint
+++ b/regress/mdoc/Ux/punct.out_lint
@@ -4,3 +4,4 @@ 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.
+mandoc: punct.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Va/noarg.out_lint b/regress/mdoc/Va/noarg.out_lint
index b8334764..dc7dad6b 100644
--- a/regress/mdoc/Va/noarg.out_lint
+++ b/regress/mdoc/Va/noarg.out_lint
@@ -1,3 +1,4 @@
mandoc: noarg.in:12:2: WARNING: skipping empty macro: Va
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: noarg.in:10:10: STYLE: no blank before trailing delimiter: Va errno.
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Vt/noarg.out_lint b/regress/mdoc/Vt/noarg.out_lint
index 64f3a0c5..bdc95705 100644
--- a/regress/mdoc/Vt/noarg.out_lint
+++ b/regress/mdoc/Vt/noarg.out_lint
@@ -1,3 +1,4 @@
mandoc: noarg.in:11:2: WARNING: skipping empty macro: Vt
mandoc: noarg.in:1:5: STYLE: Mdocdate missing: Dd June
mandoc: noarg.in:9:15: STYLE: no blank before trailing delimiter: Vt ... int.
+mandoc: noarg.in: STYLE: RCS id missing
diff --git a/regress/mdoc/Xr/args.out_lint b/regress/mdoc/Xr/args.out_lint
index c88a40ac..6a1b71db 100644
--- a/regress/mdoc/Xr/args.out_lint
+++ b/regress/mdoc/Xr/args.out_lint
@@ -5,3 +5,4 @@ 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,
+mandoc: args.in: STYLE: RCS id missing
diff --git a/regress/mdoc/blank/comment.out_lint b/regress/mdoc/blank/comment.out_lint
index 8234dd2b..bbecdd2d 100644
--- a/regress/mdoc/blank/comment.out_lint
+++ b/regress/mdoc/blank/comment.out_lint
@@ -1,2 +1,3 @@
mandoc: comment.in:11:3: WARNING: bad comment style
mandoc: comment.in:1:5: STYLE: Mdocdate missing: Dd February
+mandoc: comment.in: STYLE: RCS id missing
diff --git a/regress/mdoc/blank/line.out_lint b/regress/mdoc/blank/line.out_lint
index 14678b54..b427a12a 100644
--- a/regress/mdoc/blank/line.out_lint
+++ b/regress/mdoc/blank/line.out_lint
@@ -22,3 +22,4 @@ mandoc: line.in:83:2: WARNING: skipping paragraph macro: Pp at the end of Sh
mandoc: line.in:85:2: WARNING: skipping paragraph macro: Pp after Sh
mandoc: line.in:88:2: WARNING: skipping paragraph macro: Pp after Ss
mandoc: line.in:90:2: WARNING: skipping paragraph macro: Pp at the end of Ss
+mandoc: line.in: STYLE: RCS id missing
diff --git a/regress/mdoc/blank/list.out_lint b/regress/mdoc/blank/list.out_lint
index 084d20fe..f49f5f65 100644
--- a/regress/mdoc/blank/list.out_lint
+++ b/regress/mdoc/blank/list.out_lint
@@ -6,3 +6,4 @@ mandoc: list.in:34:2: WARNING: skipping paragraph macro: Pp before Pp
mandoc: list.in:51:2: WARNING: moving paragraph macro out of list: Pp
mandoc: list.in:63:2: WARNING: moving paragraph macro out of list: Pp
mandoc: list.in:63:2: WARNING: skipping paragraph macro: Pp before Pp
+mandoc: list.in: STYLE: RCS id missing
diff --git a/regress/mdoc/break/brokenbreaker.out_lint b/regress/mdoc/break/brokenbreaker.out_lint
index a52459a1..736b2539 100644
--- a/regress/mdoc/break/brokenbreaker.out_lint
+++ b/regress/mdoc/break/brokenbreaker.out_lint
@@ -2,3 +2,4 @@ mandoc: brokenbreaker.in:10:2: WARNING: blocks badly nested: Po breaks Ao
mandoc: brokenbreaker.in:12:2: ERROR: skipping end of block that is not open: Pc
mandoc: brokenbreaker.in:13:2: WARNING: blocks badly nested: Ao breaks Bo
mandoc: brokenbreaker.in:1:5: STYLE: Mdocdate missing: Dd December
+mandoc: brokenbreaker.in: STYLE: RCS id missing
diff --git a/regress/mdoc/break/notopen.out_lint b/regress/mdoc/break/notopen.out_lint
index 6faaf818..690c295c 100644
--- a/regress/mdoc/break/notopen.out_lint
+++ b/regress/mdoc/break/notopen.out_lint
@@ -1,2 +1,3 @@
mandoc: notopen.in:10:2: ERROR: skipping end of block that is not open: Pc
mandoc: notopen.in:1:5: STYLE: Mdocdate missing: Dd August
+mandoc: notopen.in: STYLE: RCS id missing
diff --git a/regress/mdoc/break/tail.out_lint b/regress/mdoc/break/tail.out_lint
index 1ab147d9..5864cc9d 100644
--- a/regress/mdoc/break/tail.out_lint
+++ b/regress/mdoc/break/tail.out_lint
@@ -4,3 +4,4 @@ mandoc: tail.in:20:2: WARNING: blocks badly nested: Aq breaks Bo
mandoc: tail.in:22:2: WARNING: blocks badly nested: Aq breaks Bo
mandoc: tail.in:46:2: WARNING: blocks badly nested: Bro breaks Po
mandoc: tail.in:1:5: STYLE: Mdocdate missing: Dd February
+mandoc: tail.in: STYLE: RCS id missing
diff --git a/regress/mdoc/break/twice.out_lint b/regress/mdoc/break/twice.out_lint
index 01e818c2..8179ff3b 100644
--- a/regress/mdoc/break/twice.out_lint
+++ b/regress/mdoc/break/twice.out_lint
@@ -10,3 +10,4 @@ mandoc: twice.in:36:8: WARNING: blocks badly nested: Bq breaks Po
mandoc: twice.in:36:2: WARNING: blocks badly nested: Aq breaks Po
mandoc: twice.in:1:5: STYLE: Mdocdate missing: Dd February
mandoc: twice.in:36:2: WARNING: moving content out of list: Aq
+mandoc: twice.in: STYLE: RCS id missing
diff --git a/regress/mdoc/break/two.out_lint b/regress/mdoc/break/two.out_lint
index eb67d6c0..a77ded9d 100644
--- a/regress/mdoc/break/two.out_lint
+++ b/regress/mdoc/break/two.out_lint
@@ -7,3 +7,4 @@ mandoc: two.in:30:2: WARNING: blocks badly nested: Bo breaks Bro
mandoc: two.in:36:2: WARNING: blocks badly nested: Ao breaks Bo
mandoc: two.in:41:2: WARNING: blocks badly nested: Aq breaks Bo
mandoc: two.in:1:5: STYLE: Mdocdate missing: Dd February
+mandoc: two.in: STYLE: RCS id missing
diff --git a/regress/roff/args/man.in b/regress/roff/args/man.in
index 36ce992f..527f1e85 100644
--- a/regress/roff/args/man.in
+++ b/regress/roff/args/man.in
@@ -1,4 +1,4 @@
-.TH ARGS-MAN 1 "November 19, 2014"
+.TH ARGS-MAN 1 "November 19, 2014" OpenBSD
.SH NAME
args-man - arguments to man macros
.SH DESCRIPTION
diff --git a/regress/roff/args/man.out_ascii b/regress/roff/args/man.out_ascii
index b936b45f..20d5c73a 100644
--- a/regress/roff/args/man.out_ascii
+++ b/regress/roff/args/man.out_ascii
@@ -35,4 +35,4 @@ DDEESSCCRRIIPPTTIIOONN
- November 19, 2014 ARGS-MAN(1)
+OpenBSD November 19, 2014 ARGS-MAN(1)
diff --git a/regress/roff/args/man.out_lint b/regress/roff/args/man.out_lint
index 68b4ec9f..aac49c8a 100644
--- a/regress/roff/args/man.out_lint
+++ b/regress/roff/args/man.out_lint
@@ -7,3 +7,4 @@ mandoc: man.in:90:27: WARNING: whitespace at end of input line
mandoc: man.in:103:5: WARNING: unterminated quoted argument
mandoc: man.in:106:9: WARNING: unterminated quoted argument
mandoc: man.in:130:1: ERROR: escaped character not allowed in a name: IB\(
+mandoc: man.in: STYLE: RCS id missing
diff --git a/regress/roff/args/mdoc.out_lint b/regress/roff/args/mdoc.out_lint
index a9b014fc..7c5d10b9 100644
--- a/regress/roff/args/mdoc.out_lint
+++ b/regress/roff/args/mdoc.out_lint
@@ -12,3 +12,4 @@ mandoc: mdoc.in:111:11: WARNING: unterminated quoted argument
mandoc: mdoc.in:112:15: WARNING: unterminated quoted argument
mandoc: mdoc.in:120:1: ERROR: escaped character not allowed in a name: Fl\(
mandoc: mdoc.in:1:5: STYLE: Mdocdate missing: Dd November
+mandoc: mdoc.in: STYLE: RCS id missing
diff --git a/regress/roff/args/roff.in b/regress/roff/args/roff.in
index 0f4039dc..070e4255 100644
--- a/regress/roff/args/roff.in
+++ b/regress/roff/args/roff.in
@@ -1,4 +1,4 @@
-.TH ARGS-ROFF 1 "February 21, 2015"
+.TH ARGS-ROFF 1 "February 21, 2015" OpenBSD
.SH NAME
args-roff - arguments to roff macros
.SH DESCRIPTION
diff --git a/regress/roff/args/roff.out_ascii b/regress/roff/args/roff.out_ascii
index eb0b5323..70eaf6b2 100644
--- a/regress/roff/args/roff.out_ascii
+++ b/regress/roff/args/roff.out_ascii
@@ -40,4 +40,4 @@ DDEESSCCRRIIPPTTIIOONN
- February 21, 2015 ARGS-ROFF(1)
+OpenBSD February 21, 2015 ARGS-ROFF(1)
diff --git a/regress/roff/args/roff.out_lint b/regress/roff/args/roff.out_lint
index df08f6f6..e362a4ae 100644
--- a/regress/roff/args/roff.out_lint
+++ b/regress/roff/args/roff.out_lint
@@ -14,3 +14,4 @@ mandoc: roff.in:68:7: WARNING: unterminated quoted argument
mandoc: roff.in:68:13: WARNING: whitespace at end of input line
mandoc: roff.in:69:11: WARNING: unterminated quoted argument
mandoc: roff.in:69:17: WARNING: whitespace at end of input line
+mandoc: roff.in: STYLE: RCS id missing
diff --git a/regress/roff/br/args.out_lint b/regress/roff/br/args.out_lint
index e9a03ad5..a68c3dca 100644
--- a/regress/roff/br/args.out_lint
+++ b/regress/roff/br/args.out_lint
@@ -1 +1,2 @@
mandoc: args.in:7:5: ERROR: skipping all arguments: br arg1 arg2 arg3
+mandoc: args.in: STYLE: RCS id missing
diff --git a/regress/roff/cc/basic.out_lint b/regress/roff/cc/basic.out_lint
index f091c585..ac4e7430 100644
--- a/regress/roff/cc/basic.out_lint
+++ b/regress/roff/cc/basic.out_lint
@@ -1 +1,2 @@
mandoc: basic.in:12:6: ERROR: skipping excess arguments: cc ... bogus
+mandoc: basic.in: STYLE: RCS id missing
diff --git a/regress/roff/cond/close.out_lint b/regress/roff/cond/close.out_lint
index 4800694a..0c351422 100644
--- a/regress/roff/cond/close.out_lint
+++ b/regress/roff/cond/close.out_lint
@@ -1,2 +1,3 @@
mandoc: close.in:14:2: ERROR: appending missing end of block: if
mandoc: close.in:14:9: WARNING: skipping paragraph macro: sp after PP
+mandoc: close.in: STYLE: RCS id missing
diff --git a/regress/roff/cond/if.out_lint b/regress/roff/cond/if.out_lint
index 22f112d5..1b0d70f8 100644
--- a/regress/roff/cond/if.out_lint
+++ b/regress/roff/cond/if.out_lint
@@ -1,2 +1,3 @@
mandoc: if.in:14:2: WARNING: conditional request controls empty scope: if
mandoc: if.in:16:2: WARNING: conditional request controls empty scope: if
+mandoc: if.in: STYLE: RCS id missing
diff --git a/regress/roff/de/escname.out_lint b/regress/roff/de/escname.out_lint
index eb454210..8805b9d5 100644
--- a/regress/roff/de/escname.out_lint
+++ b/regress/roff/de/escname.out_lint
@@ -7,3 +7,4 @@ mandoc: escname.in:40:1: ERROR: escaped character not allowed in a name: witharg
mandoc: escname.in:42:1: ERROR: escaped character not allowed in a name: de\e
mandoc: escname.in:42:2: WARNING: skipping empty request: de
mandoc: escname.in:1:5: STYLE: Mdocdate missing: Dd June
+mandoc: escname.in: STYLE: RCS id missing
diff --git a/regress/roff/de/indir.out_lint b/regress/roff/de/indir.out_lint
index 5cb1bd84..ef900e60 100644
--- a/regress/roff/de/indir.out_lint
+++ b/regress/roff/de/indir.out_lint
@@ -3,3 +3,4 @@ mandoc: indir.in:25:6: WARNING: undefined string, using "": myim
mandoc: indir.in:25:2: WARNING: skipping empty request: dei
mandoc: indir.in:29:2: WARNING: skipping empty request: dei
mandoc: indir.in:1:5: STYLE: Mdocdate missing: Dd July
+mandoc: indir.in: STYLE: RCS id missing
diff --git a/regress/roff/de/infinite.out_lint b/regress/roff/de/infinite.out_lint
index 59a19713..2102dbd2 100644
--- a/regress/roff/de/infinite.out_lint
+++ b/regress/roff/de/infinite.out_lint
@@ -1,3 +1,4 @@
mandoc: infinite.in:13:5: ERROR: input stack limit exceeded, infinite loop?
mandoc: infinite.in:19:5: ERROR: input stack limit exceeded, infinite loop?
mandoc: infinite.in:1:5: STYLE: Mdocdate missing: Dd March
+mandoc: infinite.in: STYLE: RCS id missing
diff --git a/regress/roff/esc/B.out_lint b/regress/roff/esc/B.out_lint
index f7ddc99f..0bd7be65 100644
--- a/regress/roff/esc/B.out_lint
+++ b/regress/roff/esc/B.out_lint
@@ -1,2 +1,3 @@
mandoc: B.in:36:23: WARNING: invalid escape sequence: \B'1+1
mandoc: B.in:1:5: STYLE: Mdocdate missing: Dd July
+mandoc: B.in: STYLE: RCS id missing
diff --git a/regress/roff/esc/h.out_lint b/regress/roff/esc/h.out_lint
index 23ff9ce8..5a12330d 100644
--- a/regress/roff/esc/h.out_lint
+++ b/regress/roff/esc/h.out_lint
@@ -1,2 +1,3 @@
mandoc: h.in:22:21: WARNING: invalid escape sequence: \h-
mandoc: h.in:1:5: STYLE: Mdocdate missing: Dd May
+mandoc: h.in: STYLE: RCS id missing
diff --git a/regress/roff/esc/ignore.out_lint b/regress/roff/esc/ignore.out_lint
index 688685f5..38541635 100644
--- a/regress/roff/esc/ignore.out_lint
+++ b/regress/roff/esc/ignore.out_lint
@@ -1,2 +1,3 @@
mandoc: ignore.in:14:60: WARNING: invalid escape sequence: \s-
mandoc: ignore.in:1:5: STYLE: Mdocdate missing: Dd January
+mandoc: ignore.in: STYLE: RCS id missing
diff --git a/regress/roff/esc/l.out_lint b/regress/roff/esc/l.out_lint
index 2141ef41..b755b42a 100644
--- a/regress/roff/esc/l.out_lint
+++ b/regress/roff/esc/l.out_lint
@@ -1,2 +1,3 @@
mandoc: l.in:22:21: WARNING: invalid escape sequence: \h-
mandoc: l.in:1:5: STYLE: Mdocdate missing: Dd June
+mandoc: l.in: STYLE: RCS id missing
diff --git a/regress/roff/esc/w.out_lint b/regress/roff/esc/w.out_lint
index 1dc300e0..89073dc7 100644
--- a/regress/roff/esc/w.out_lint
+++ b/regress/roff/esc/w.out_lint
@@ -1,2 +1,3 @@
mandoc: w.in:16:15: WARNING: invalid escape sequence: \w'foo
mandoc: w.in:1:5: STYLE: Mdocdate missing: Dd April
+mandoc: w.in: STYLE: RCS id missing
diff --git a/regress/roff/ft/badargs-mdoc.out_lint b/regress/roff/ft/badargs-mdoc.out_lint
index d3da07f6..32f62e21 100644
--- a/regress/roff/ft/badargs-mdoc.out_lint
+++ b/regress/roff/ft/badargs-mdoc.out_lint
@@ -1,3 +1,4 @@
mandoc: badargs-mdoc.in:13:7: ERROR: skipping excess arguments: ft ... bogus
mandoc: badargs-mdoc.in:1:5: STYLE: Mdocdate missing: Dd May
mandoc: badargs-mdoc.in:11:2: WARNING: unknown font, skipping request: ft foo
+mandoc: badargs-mdoc.in: STYLE: RCS id missing
diff --git a/regress/roff/ft/badargs.out_lint b/regress/roff/ft/badargs.out_lint
index f84d7ea9..2def370d 100644
--- a/regress/roff/ft/badargs.out_lint
+++ b/regress/roff/ft/badargs.out_lint
@@ -1,2 +1,3 @@
mandoc: badargs.in:10:7: ERROR: skipping excess arguments: ft ... bogus
mandoc: badargs.in:8:2: WARNING: unknown font, skipping request: ft foo
+mandoc: badargs.in: STYLE: RCS id missing
diff --git a/regress/roff/ig/basic.out_lint b/regress/roff/ig/basic.out_lint
index 026e3726..fad0e38f 100644
--- a/regress/roff/ig/basic.out_lint
+++ b/regress/roff/ig/basic.out_lint
@@ -2,3 +2,4 @@ mandoc: basic.in:19:5: ERROR: skipping excess arguments: .ig ... excess
mandoc: basic.in:24:2: ERROR: skipping end of block that is not open: ..
mandoc: basic.in:26:2: ERROR: appending missing end of block: ig
mandoc: basic.in:1:5: STYLE: Mdocdate missing: Dd July
+mandoc: basic.in: STYLE: RCS id missing
diff --git a/regress/roff/it/badarg.out_lint b/regress/roff/it/badarg.out_lint
index c553000b..1c5bc812 100644
--- a/regress/roff/it/badarg.out_lint
+++ b/regress/roff/it/badarg.out_lint
@@ -1,3 +1,4 @@
mandoc: badarg.in:12:2: ERROR: skipping request without numeric argument: it mytrap
mandoc: badarg.in:15:2: ERROR: skipping request without numeric argument: it
mandoc: badarg.in:1:5: STYLE: Mdocdate missing: Dd July
+mandoc: badarg.in: STYLE: RCS id missing
diff --git a/regress/roff/nr/divzero.out_lint b/regress/roff/nr/divzero.out_lint
index 8177c0b8..255f24f7 100644
--- a/regress/roff/nr/divzero.out_lint
+++ b/regress/roff/nr/divzero.out_lint
@@ -1,2 +1,3 @@
mandoc: divzero.in:6:4: ERROR: divide by zero: 1/0
mandoc: divzero.in:7:4: ERROR: divide by zero: 1%0
+mandoc: divzero.in: STYLE: RCS id missing
diff --git a/regress/roff/nr/escname.out_lint b/regress/roff/nr/escname.out_lint
index 66bfad35..58188fd4 100644
--- a/regress/roff/nr/escname.out_lint
+++ b/regress/roff/nr/escname.out_lint
@@ -2,3 +2,4 @@ mandoc: escname.in:8:5: ERROR: escaped character not allowed in a name: first\e
mandoc: escname.in:11:5: ERROR: escaped character not allowed in a name: first\e
mandoc: escname.in:17:13: WARNING: invalid escape sequence: \n[second
mandoc: escname.in:17:12: WARNING: whitespace at end of input line
+mandoc: escname.in: STYLE: RCS id missing
diff --git a/regress/roff/sp/badargs-man.out_lint b/regress/roff/sp/badargs-man.out_lint
index d38502dd..35e0826d 100644
--- a/regress/roff/sp/badargs-man.out_lint
+++ b/regress/roff/sp/badargs-man.out_lint
@@ -1 +1,2 @@
mandoc: badargs-man.in:10:8: ERROR: skipping excess arguments: sp ... 2i
+mandoc: badargs-man.in: STYLE: RCS id missing
diff --git a/regress/roff/string/escape.in b/regress/roff/string/escape.in
index 05a271e8..6f31ccb0 100644
--- a/regress/roff/string/escape.in
+++ b/regress/roff/string/escape.in
@@ -1,4 +1,4 @@
-.TH STRING-ESCAPE 1 "December 3, 2010"
+.TH STRING-ESCAPE 1 "December 3, 2010" OpenBSD
.SH NAME
string-escape - preventing string interpolation
.SH DESCRIPTION
diff --git a/regress/roff/string/escape.out_ascii b/regress/roff/string/escape.out_ascii
index fc8021aa..8b00abaf 100644
--- a/regress/roff/string/escape.out_ascii
+++ b/regress/roff/string/escape.out_ascii
@@ -28,4 +28,4 @@ DDEESSCCRRIIPPTTIIOONN
- December 3, 2010 STRING-ESCAPE(1)
+OpenBSD December 3, 2010 STRING-ESCAPE(1)
diff --git a/regress/roff/string/name.out_lint b/regress/roff/string/name.out_lint
index 1468df4b..ac57dd12 100644
--- a/regress/roff/string/name.out_lint
+++ b/regress/roff/string/name.out_lint
@@ -16,3 +16,4 @@ mandoc: name.in:33:5: WARNING: whitespace at end of input line
mandoc: name.in:35:5: WARNING: undefined string, using "": bl
mandoc: name.in:35:4: WARNING: whitespace at end of input line
mandoc: name.in:1:5: STYLE: Mdocdate missing: Dd January
+mandoc: name.in: STYLE: RCS id missing
diff --git a/regress/roff/string/zerolength.in b/regress/roff/string/zerolength.in
index 0d4d9bac..d0d3217d 100644
--- a/regress/roff/string/zerolength.in
+++ b/regress/roff/string/zerolength.in
@@ -1,4 +1,4 @@
-.TH STRING-ZEROLENGTH 1 "December 19, 2010"
+.TH STRING-ZEROLENGTH 1 "December 19, 2010" OpenBSD
.SH NAME
string-zerolength - handling of zero-length user-defined strings
.SH DESCRIPTION
diff --git a/regress/roff/string/zerolength.out_ascii b/regress/roff/string/zerolength.out_ascii
index ff9d2473..5ab80c5d 100644
--- a/regress/roff/string/zerolength.out_ascii
+++ b/regress/roff/string/zerolength.out_ascii
@@ -12,4 +12,4 @@ DDEESSCCRRIIPPTTIIOONN
- December 19, 2010 STRING-ZEROLENGTH(1)
+OpenBSD December 19, 2010 STRING-ZEROLENGTH(1)
diff --git a/regress/roff/tr/args.out_lint b/regress/roff/tr/args.out_lint
index e2883ef7..82d5963a 100644
--- a/regress/roff/tr/args.out_lint
+++ b/regress/roff/tr/args.out_lint
@@ -1,3 +1,4 @@
mandoc: args.in:6:2: WARNING: skipping empty request: tr
mandoc: args.in:8:5: WARNING: odd number of characters in request: tr x
mandoc: args.in:14:7: WARNING: odd number of characters in request: tr z
+mandoc: args.in: STYLE: RCS id missing
diff --git a/regress/tbl/data/block_unclosed.out_lint b/regress/tbl/data/block_unclosed.out_lint
index d1406948..14d78435 100644
--- a/regress/tbl/data/block_unclosed.out_lint
+++ b/regress/tbl/data/block_unclosed.out_lint
@@ -1,2 +1,3 @@
mandoc: block_unclosed.in:6:2: ERROR: data block open at end of tbl: TE
mandoc: block_unclosed.in:29:2: ERROR: data block open at end of tbl: T&
+mandoc: block_unclosed.in: STYLE: RCS id missing
diff --git a/regress/tbl/data/empty.out_lint b/regress/tbl/data/empty.out_lint
index 0244cdd7..e649a9ef 100644
--- a/regress/tbl/data/empty.out_lint
+++ b/regress/tbl/data/empty.out_lint
@@ -1 +1,2 @@
mandoc: empty.in:6:2: ERROR: tbl without any data cells
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/tbl/layout/center.in b/regress/tbl/layout/center.in
index 39533361..f4edc37d 100644
--- a/regress/tbl/layout/center.in
+++ b/regress/tbl/layout/center.in
@@ -1,4 +1,4 @@
-.TH TBL-LAYOUT-CENTER 1
+.TH TBL-LAYOUT-CENTER 1 "June 17, 2017" OpenBSD
.SH NAME
tbl-layout-center \- centering of table cells
.SH DESCRIPTION
diff --git a/regress/tbl/layout/center.out_ascii b/regress/tbl/layout/center.out_ascii
index a77bb7b4..3196fff6 100644
--- a/regress/tbl/layout/center.out_ascii
+++ b/regress/tbl/layout/center.out_ascii
@@ -22,4 +22,4 @@ DDEESSCCRRIIPPTTIIOONN
- TBL-LAYOUT-CENTER(1)
+OpenBSD June 17, 2017 TBL-LAYOUT-CENTER(1)
diff --git a/regress/tbl/layout/complex.out_lint b/regress/tbl/layout/complex.out_lint
index a72604fb..cff7fe19 100644
--- a/regress/tbl/layout/complex.out_lint
+++ b/regress/tbl/layout/complex.out_lint
@@ -3,3 +3,4 @@ mandoc: complex.in:8:28: WARNING: skipping vertical bar in tbl layout
mandoc: complex.in:10:7: ERROR: ignoring data in spanned tbl cell: h
mandoc: complex.in:16:3: WARNING: tbl column starts with span
mandoc: complex.in:18:3: ERROR: ignoring data in spanned tbl cell: b
+mandoc: complex.in: STYLE: RCS id missing
diff --git a/regress/tbl/layout/empty.out_lint b/regress/tbl/layout/empty.out_lint
index 20ae24a5..e54db3a0 100644
--- a/regress/tbl/layout/empty.out_lint
+++ b/regress/tbl/layout/empty.out_lint
@@ -1,2 +1,3 @@
mandoc: empty.in:7:2: ERROR: empty tbl layout
mandoc: empty.in:12:3: ERROR: empty tbl layout
+mandoc: empty.in: STYLE: RCS id missing
diff --git a/regress/tbl/layout/numbers.in b/regress/tbl/layout/numbers.in
index 24f1cada..591b5ff2 100644
--- a/regress/tbl/layout/numbers.in
+++ b/regress/tbl/layout/numbers.in
@@ -1,4 +1,4 @@
-.TH TBL-LAYOUT-NUMBERS 1
+.TH TBL-LAYOUT-NUMBERS 1 "January 29, 2017" OpenBSD
.SH NAME
tbl-layout-numbers \- alignment of numbers in tables
.SH DESCRIPTION
diff --git a/regress/tbl/layout/numbers.out_ascii b/regress/tbl/layout/numbers.out_ascii
index c93d12b0..b3b8bdfc 100644
--- a/regress/tbl/layout/numbers.out_ascii
+++ b/regress/tbl/layout/numbers.out_ascii
@@ -15,4 +15,4 @@ DDEESSCCRRIIPPTTIIOONN
+---++-------+--------+
- TBL-LAYOUT-NUMBERS(1)
+OpenBSD January 29, 2017 TBL-LAYOUT-NUMBERS(1)
diff --git a/regress/tbl/layout/span.in b/regress/tbl/layout/span.in
index d5fef0c7..9b2d7db7 100644
--- a/regress/tbl/layout/span.in
+++ b/regress/tbl/layout/span.in
@@ -1,4 +1,4 @@
-.TH TBL-LAYOUT-SPAN 1
+.TH TBL-LAYOUT-SPAN 1 "June 17, 2017" OpenBSD
.SH NAME
tbl-layout-span \- alignment of spanned cells
.SH DESCRIPTION
diff --git a/regress/tbl/layout/span.out_ascii b/regress/tbl/layout/span.out_ascii
index e439a766..bc4badca 100644
--- a/regress/tbl/layout/span.out_ascii
+++ b/regress/tbl/layout/span.out_ascii
@@ -41,4 +41,4 @@ DDEESSCCRRIIPPTTIIOONN
- TBL-LAYOUT-SPAN(1)
+OpenBSD June 17, 2017 TBL-LAYOUT-SPAN(1)
diff --git a/regress/tbl/macro/man.in b/regress/tbl/macro/man.in
index 36e39569..3ce5bd0d 100644
--- a/regress/tbl/macro/man.in
+++ b/regress/tbl/macro/man.in
@@ -1,4 +1,4 @@
-.TH TBL-MACRO-MAN 1 "December 16, 2014"
+.TH TBL-MACRO-MAN 1 "December 16, 2014" OpenBSD
.SH NAME
tbl-macro-man \- man macro in a table
.SH DESCRIPTION
diff --git a/regress/tbl/macro/man.out_ascii b/regress/tbl/macro/man.out_ascii
index 2a96f0b7..207347a0 100644
--- a/regress/tbl/macro/man.out_ascii
+++ b/regress/tbl/macro/man.out_ascii
@@ -17,4 +17,4 @@ DDEESSCCRRIIPPTTIIOONN
- December 16, 2014 TBL-MACRO-MAN(1)
+OpenBSD December 16, 2014 TBL-MACRO-MAN(1)
diff --git a/regress/tbl/macro/man.out_lint b/regress/tbl/macro/man.out_lint
index 292af268..a7392ef0 100644
--- a/regress/tbl/macro/man.out_lint
+++ b/regress/tbl/macro/man.out_lint
@@ -1,2 +1,3 @@
mandoc: man.in:9:5: ERROR: ignoring extra tbl data cells: stray
mandoc: man.in:12:2: UNSUPP: ignoring macro in table: SM d
+mandoc: man.in: STYLE: RCS id missing
diff --git a/regress/tbl/macro/nested.in b/regress/tbl/macro/nested.in
index 35844eb5..09383f6f 100644
--- a/regress/tbl/macro/nested.in
+++ b/regress/tbl/macro/nested.in
@@ -1,4 +1,4 @@
-.TH TBL-MACRO-NESTED 1 "December 16, 2014"
+.TH TBL-MACRO-NESTED 1 "December 16, 2014" OpenBSD
.SH NAME
tbl-macro-nested \- nested table
.SH DESCRIPTION
diff --git a/regress/tbl/macro/nested.out_ascii b/regress/tbl/macro/nested.out_ascii
index 24a5c17a..2c5dce77 100644
--- a/regress/tbl/macro/nested.out_ascii
+++ b/regress/tbl/macro/nested.out_ascii
@@ -18,4 +18,4 @@ DDEESSCCRRIIPPTTIIOONN
- December 16, 2014 TBL-MACRO-NESTED(1)
+OpenBSD December 16, 2014 TBL-MACRO-NESTED(1)
diff --git a/regress/tbl/macro/nested.out_lint b/regress/tbl/macro/nested.out_lint
index 0f650c85..1a3ac729 100644
--- a/regress/tbl/macro/nested.out_lint
+++ b/regress/tbl/macro/nested.out_lint
@@ -1 +1,2 @@
mandoc: nested.in:12:4: UNSUPP: ignoring macro in table: TS
+mandoc: nested.in: STYLE: RCS id missing
diff --git a/regress/tbl/mod/badfont.out_lint b/regress/tbl/mod/badfont.out_lint
index 0882648c..d12bd51d 100644
--- a/regress/tbl/mod/badfont.out_lint
+++ b/regress/tbl/mod/badfont.out_lint
@@ -1,2 +1,3 @@
mandoc: badfont.in:8:7: WARNING: unknown font, skipping request: TS f
mandoc: badfont.in:9:7: WARNING: unknown font, skipping request: TS f.
+mandoc: badfont.in: STYLE: RCS id missing
diff --git a/regress/tbl/mod/font.out_lint b/regress/tbl/mod/font.out_lint
index d45d1896..de4cf571 100644
--- a/regress/tbl/mod/font.out_lint
+++ b/regress/tbl/mod/font.out_lint
@@ -3,3 +3,4 @@ mandoc: font.in:18:2: WARNING: tab in filled text
mandoc: font.in:18:4: WARNING: tab in filled text
mandoc: font.in:18:6: WARNING: tab in filled text
mandoc: font.in:18:8: WARNING: tab in filled text
+mandoc: font.in: STYLE: RCS id missing
diff --git a/regress/tbl/opt/box.in b/regress/tbl/opt/box.in
index 47b1bf87..ea255fdc 100644
--- a/regress/tbl/opt/box.in
+++ b/regress/tbl/opt/box.in
@@ -1,6 +1,6 @@
-.TH TBL-VERT 1
+.TH TBL-OPT-BOX 1 "June 12, 2017" OpenBSD
.SH NAME
-tbl-vert \- vertical lines
+tbl-opt-box \- box table options
.SH DESCRIPTION
no boxing:
.TS
diff --git a/regress/tbl/opt/box.out_ascii b/regress/tbl/opt/box.out_ascii
index d1051379..cef861c6 100644
--- a/regress/tbl/opt/box.out_ascii
+++ b/regress/tbl/opt/box.out_ascii
@@ -1,9 +1,9 @@
-TBL-VERT(1) General Commands Manual TBL-VERT(1)
+TBL-OPT-BOX(1) General Commands Manual TBL-OPT-BOX(1)
NNAAMMEE
- tbl-vert - vertical lines
+ tbl-opt-box - box table options
DDEESSCCRRIIPPTTIIOONN
no boxing:
@@ -51,4 +51,4 @@ DDEESSCCRRIIPPTTIIOONN
+--++--+
- TBL-VERT(1)
+OpenBSD June 12, 2017 TBL-OPT-BOX(1)
diff --git a/regress/tbl/opt/invalid.out_lint b/regress/tbl/opt/invalid.out_lint
index 56c65e47..db82c156 100644
--- a/regress/tbl/opt/invalid.out_lint
+++ b/regress/tbl/opt/invalid.out_lint
@@ -3,3 +3,4 @@ mandoc: invalid.in:7:19: ERROR: wrong tbl option argument size: decimalpoint wan
mandoc: invalid.in:7:23: ERROR: non-alphabetic character in tbl options: %
mandoc: invalid.in:7:24: ERROR: skipping unknown tbl option: foo
mandoc: invalid.in:15:21: UNSUPP: eqn delim option in tbl: $$
+mandoc: invalid.in: STYLE: RCS id missing
diff --git a/roff.c b/roff.c
index 1577a9b8..ce481526 100644
--- a/roff.c
+++ b/roff.c
@@ -1,4 +1,4 @@
-/* $Id: roff.c,v 1.312 2017/06/14 22:51:25 schwarze Exp $ */
+/* $Id: roff.c,v 1.313 2017/06/17 22:43:14 schwarze Exp $ */
/*
* Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -1166,6 +1166,7 @@ roff_res(struct roff *r, struct buf *buf, int ln, int pos)
size_t maxl; /* expected length of the escape name */
size_t naml; /* actual length of the escape name */
enum mandoc_esc esc; /* type of the escape sequence */
+ enum mdoc_os os_e; /* kind of RCS id seen */
int inaml; /* length returned from mandoc_escape() */
int expand_count; /* to avoid infinite loops */
int npos; /* position in numeric expression */
@@ -1183,6 +1184,23 @@ roff_res(struct roff *r, struct buf *buf, int ln, int pos)
stesc++;
if (*stesc != '"' && *stesc != '#')
continue;
+
+ /* Comment found, look for RCS id. */
+
+ if ((cp = strstr(stesc, "$" "OpenBSD")) != NULL) {
+ os_e = MDOC_OS_OPENBSD;
+ cp += 8;
+ } else if ((cp = strstr(stesc, "$" "NetBSD")) != NULL) {
+ os_e = MDOC_OS_NETBSD;
+ cp += 7;
+ }
+ if (cp != NULL &&
+ isalnum((unsigned char)*cp) == 0 &&
+ strchr(cp, '$') != NULL)
+ r->man->meta.rcsids |= 1 << os_e;
+
+ /* Handle trailing whitespace. */
+
cp = strchr(stesc--, '\0') - 1;
if (*cp == '\n') {
done = 1;
diff --git a/roff.h b/roff.h
index 8cc3c2eb..5260b42e 100644
--- a/roff.h
+++ b/roff.h
@@ -1,4 +1,4 @@
-/* $Id: roff.h,v 1.54 2017/06/14 22:51:25 schwarze Exp $ */
+/* $Id: roff.h,v 1.55 2017/06/17 22:43:15 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2013, 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -534,6 +534,7 @@ struct roff_meta {
char *name; /* Leading manual name. */
char *date; /* Normalized date. */
int hasbody; /* Document is not empty. */
+ int rcsids; /* Bits indexed by enum mdoc_os. */
enum mdoc_os os_e; /* Operating system. */
};