summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorschwarze <schwarze@openbsd.org>2020-04-04 20:23:06 +0000
committerschwarze <schwarze@openbsd.org>2020-04-04 20:23:06 +0000
commite9f36175dfbf22a58e6781c9fdf13f33ca379f4f (patch)
tree31adf1bcd7b5aba292faba9934e241f7965fe42c
parentPrevent the destruction of a session owned by another interface. (diff)
downloadwireguard-openbsd-e9f36175dfbf22a58e6781c9fdf13f33ca379f4f.tar.xz
wireguard-openbsd-e9f36175dfbf22a58e6781c9fdf13f33ca379f4f.zip
automatically tag .SH and .SS in man(7) terminal output
in the same way as it was done for .Sh and .Ss in mdoc(7)
-rw-r--r--regress/usr.bin/mandoc/man/IP/empty.out_tag2
-rw-r--r--regress/usr.bin/mandoc/man/IP/tag.out_tag2
-rw-r--r--regress/usr.bin/mandoc/man/SH/Makefile3
-rw-r--r--regress/usr.bin/mandoc/man/SH/paragraph.out_tag4
-rw-r--r--regress/usr.bin/mandoc/man/SS/Makefile3
-rw-r--r--regress/usr.bin/mandoc/man/SS/paragraph.out_tag4
-rw-r--r--regress/usr.bin/mandoc/man/TP/tag.out_tag2
-rw-r--r--usr.bin/mandoc/man_html.c3
-rw-r--r--usr.bin/mandoc/man_validate.c27
9 files changed, 44 insertions, 6 deletions
diff --git a/regress/usr.bin/mandoc/man/IP/empty.out_tag b/regress/usr.bin/mandoc/man/IP/empty.out_tag
index f35f112014e..081683cf456 100644
--- a/regress/usr.bin/mandoc/man/IP/empty.out_tag
+++ b/regress/usr.bin/mandoc/man/IP/empty.out_tag
@@ -1,3 +1,5 @@
+NAME 5
+DESCRIPTION 8
tag1 15
tag2 17
tag 21
diff --git a/regress/usr.bin/mandoc/man/IP/tag.out_tag b/regress/usr.bin/mandoc/man/IP/tag.out_tag
index 5be038dbbdb..13ec09aca17 100644
--- a/regress/usr.bin/mandoc/man/IP/tag.out_tag
+++ b/regress/usr.bin/mandoc/man/IP/tag.out_tag
@@ -1,2 +1,4 @@
+NAME 5
+DESCRIPTION 8
strong 13
weak 15
diff --git a/regress/usr.bin/mandoc/man/SH/Makefile b/regress/usr.bin/mandoc/man/SH/Makefile
index f42a85b23da..049680bcc20 100644
--- a/regress/usr.bin/mandoc/man/SH/Makefile
+++ b/regress/usr.bin/mandoc/man/SH/Makefile
@@ -1,8 +1,9 @@
-# $OpenBSD: Makefile,v 1.7 2020/02/27 01:25:58 schwarze Exp $
+# $OpenBSD: Makefile,v 1.8 2020/04/04 20:23:07 schwarze Exp $
REGRESS_TARGETS = broken broken_eline empty_before longarg noarg paragraph vert
LINT_TARGETS = broken broken_eline empty_before noarg
HTML_TARGETS = paragraph
+TAG_TARGETS = paragraph
# groff-1.22.3 defects:
# - .SH without args just before EOF causes two additional blank lines.
diff --git a/regress/usr.bin/mandoc/man/SH/paragraph.out_tag b/regress/usr.bin/mandoc/man/SH/paragraph.out_tag
new file mode 100644
index 00000000000..18a73f7c0f7
--- /dev/null
+++ b/regress/usr.bin/mandoc/man/SH/paragraph.out_tag
@@ -0,0 +1,4 @@
+NAME 5
+SYNOPSIS 8
+DESCRIPTION 11
+EXAMPLES 16
diff --git a/regress/usr.bin/mandoc/man/SS/Makefile b/regress/usr.bin/mandoc/man/SS/Makefile
index edbe4c2caa2..3a894af24cc 100644
--- a/regress/usr.bin/mandoc/man/SS/Makefile
+++ b/regress/usr.bin/mandoc/man/SS/Makefile
@@ -1,8 +1,9 @@
-# $OpenBSD: Makefile,v 1.5 2020/02/27 01:25:58 schwarze Exp $
+# $OpenBSD: Makefile,v 1.6 2020/04/04 20:23:07 schwarze Exp $
REGRESS_TARGETS = broken broken_eline longarg noarg paragraph vert
LINT_TARGETS = broken broken_eline noarg
HTML_TARGETS = paragraph
+TAG_TARGETS = paragraph
# groff-1.22.3 defects:
# - .SS without args just before EOF causes two additional blank lines.
diff --git a/regress/usr.bin/mandoc/man/SS/paragraph.out_tag b/regress/usr.bin/mandoc/man/SS/paragraph.out_tag
new file mode 100644
index 00000000000..15451212f29
--- /dev/null
+++ b/regress/usr.bin/mandoc/man/SS/paragraph.out_tag
@@ -0,0 +1,4 @@
+NAME 5
+DESCRIPTION 8
+First_subsection 11
+Second_subsection 16
diff --git a/regress/usr.bin/mandoc/man/TP/tag.out_tag b/regress/usr.bin/mandoc/man/TP/tag.out_tag
index 88f6cff83d0..14230d89980 100644
--- a/regress/usr.bin/mandoc/man/TP/tag.out_tag
+++ b/regress/usr.bin/mandoc/man/TP/tag.out_tag
@@ -1,3 +1,5 @@
+NAME 5
+DESCRIPTION 8
plain 13
strong 19
weak 21
diff --git a/usr.bin/mandoc/man_html.c b/usr.bin/mandoc/man_html.c
index dd360649d6d..a2a1b4d959c 100644
--- a/usr.bin/mandoc/man_html.c
+++ b/usr.bin/mandoc/man_html.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: man_html.c,v 1.130 2020/03/13 00:31:05 schwarze Exp $ */
+/* $OpenBSD: man_html.c,v 1.131 2020/04/04 20:23:06 schwarze Exp $ */
/*
* Copyright (c) 2013-2015, 2017-2020 Ingo Schwarze <schwarze@openbsd.org>
* Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
@@ -325,7 +325,6 @@ man_SH_pre(MAN_ARGS)
print_otag(h, TAG_SECTION, "c", class);
break;
case ROFFT_HEAD:
- n->flags |= NODE_ID;
print_otag_id(h, tag, class, n);
break;
case ROFFT_BODY:
diff --git a/usr.bin/mandoc/man_validate.c b/usr.bin/mandoc/man_validate.c
index 4ab8c2cce11..0b28fe4a173 100644
--- a/usr.bin/mandoc/man_validate.c
+++ b/usr.bin/mandoc/man_validate.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: man_validate.c,v 1.121 2020/03/13 00:31:05 schwarze Exp $ */
+/* $OpenBSD: man_validate.c,v 1.122 2020/04/04 20:23:07 schwarze Exp $ */
/*
* Copyright (c) 2010, 2012-2020 Ingo Schwarze <schwarze@openbsd.org>
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
@@ -309,9 +309,32 @@ static void
post_SH(CHKARGS)
{
struct roff_node *nc;
+ char *cp, *tag;
- if (n->type != ROFFT_BODY || (nc = n->child) == NULL)
+ nc = n->child;
+ switch (n->type) {
+ case ROFFT_HEAD:
+ tag = NULL;
+ deroff(&tag, n);
+ if (tag != NULL) {
+ for (cp = tag; *cp != '\0'; cp++)
+ if (*cp == ' ')
+ *cp = '_';
+ if (nc != NULL && nc->type == ROFFT_TEXT &&
+ strcmp(nc->string, tag) == 0)
+ tag_put(NULL, TAG_WEAK, n);
+ else
+ tag_put(tag, TAG_FALLBACK, n);
+ free(tag);
+ }
+ return;
+ case ROFFT_BODY:
+ if (nc != NULL)
+ break;
return;
+ default:
+ return;
+ }
if (nc->tok == MAN_PP && nc->body->child != NULL) {
while (nc->body->last != NULL) {