summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorschwarze <schwarze@openbsd.org>2011-01-17 00:15:19 +0000
committerschwarze <schwarze@openbsd.org>2011-01-17 00:15:19 +0000
commitea2002247d26596e8b1435c1c1499ef7ea1700f5 (patch)
tree6e86d49fc6c1fe09890a9b70b0eb31da68d0c96c
parentexplain various points in more detail, and some in easier or (diff)
downloadwireguard-openbsd-ea2002247d26596e8b1435c1c1499ef7ea1700f5.tar.xz
wireguard-openbsd-ea2002247d26596e8b1435c1c1499ef7ea1700f5.zip
Refrain from throwing fatal errors for
* .br .sp .nf .fi .na with arguments - just skip the arguments * .TH lacking arguments - use empty strings instead like groff * .TH with excessive arguments - skip those Reminded by Joerg Sonnenberger, ok kristaps@.
-rw-r--r--regress/usr.bin/mandoc/man/Makefile4
-rw-r--r--regress/usr.bin/mandoc/man/TH/Makefile6
-rw-r--r--regress/usr.bin/mandoc/man/TH/noarg.in5
-rw-r--r--regress/usr.bin/mandoc/man/TH/noarg.out_ascii12
-rw-r--r--regress/usr.bin/mandoc/man/TH/onearg.in5
-rw-r--r--regress/usr.bin/mandoc/man/TH/onearg.out_ascii12
-rw-r--r--regress/usr.bin/mandoc/man/TH/sixargs.in5
-rw-r--r--regress/usr.bin/mandoc/man/TH/sixargs.out_ascii12
-rw-r--r--regress/usr.bin/mandoc/man/nf/Makefile6
-rw-r--r--regress/usr.bin/mandoc/man/nf/args.in12
-rw-r--r--regress/usr.bin/mandoc/man/nf/args.out_ascii15
-rw-r--r--regress/usr.bin/mandoc/roff/Makefile4
-rw-r--r--regress/usr.bin/mandoc/roff/br/Makefile6
-rw-r--r--regress/usr.bin/mandoc/roff/br/args.in9
-rw-r--r--regress/usr.bin/mandoc/roff/br/args.out_ascii13
-rw-r--r--regress/usr.bin/mandoc/roff/na/Makefile6
-rw-r--r--regress/usr.bin/mandoc/roff/na/args.in9
-rw-r--r--regress/usr.bin/mandoc/roff/na/args.out_ascii12
-rw-r--r--regress/usr.bin/mandoc/roff/sp/Makefile6
-rw-r--r--regress/usr.bin/mandoc/roff/sp/badargs-man.in11
-rw-r--r--regress/usr.bin/mandoc/roff/sp/badargs-man.out_ascii21
-rw-r--r--regress/usr.bin/mandoc/roff/sp/badargs-mdoc.in14
-rw-r--r--regress/usr.bin/mandoc/roff/sp/badargs-mdoc.out_ascii17
-rw-r--r--usr.bin/mandoc/man_html.c6
-rw-r--r--usr.bin/mandoc/man_term.c6
-rw-r--r--usr.bin/mandoc/man_validate.c58
26 files changed, 245 insertions, 47 deletions
diff --git a/regress/usr.bin/mandoc/man/Makefile b/regress/usr.bin/mandoc/man/Makefile
index 9b7fe04580c..7f872dd8ba0 100644
--- a/regress/usr.bin/mandoc/man/Makefile
+++ b/regress/usr.bin/mandoc/man/Makefile
@@ -1,6 +1,6 @@
-# $OpenBSD: Makefile,v 1.2 2011/01/09 17:55:20 schwarze Exp $
+# $OpenBSD: Makefile,v 1.3 2011/01/17 00:15:19 schwarze Exp $
-SUBDIR= nf BI IP TP
+SUBDIR= nf BI IP TH TP
groff groff-clean: _SUBDIRUSE
diff --git a/regress/usr.bin/mandoc/man/TH/Makefile b/regress/usr.bin/mandoc/man/TH/Makefile
new file mode 100644
index 00000000000..97f70e88752
--- /dev/null
+++ b/regress/usr.bin/mandoc/man/TH/Makefile
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile,v 1.1 2011/01/17 00:15:19 schwarze Exp $
+
+REGRESS_TARGETS=noarg onearg sixargs
+GROFF_TARGETS=noarg onearg sixargs
+
+.include <bsd.regress.mk>
diff --git a/regress/usr.bin/mandoc/man/TH/noarg.in b/regress/usr.bin/mandoc/man/TH/noarg.in
new file mode 100644
index 00000000000..3c15e9428d3
--- /dev/null
+++ b/regress/usr.bin/mandoc/man/TH/noarg.in
@@ -0,0 +1,5 @@
+.TH
+.SH NAME
+TH-noarg \- no arguments to the TH macro
+.SH DESCRIPTION
+some text
diff --git a/regress/usr.bin/mandoc/man/TH/noarg.out_ascii b/regress/usr.bin/mandoc/man/TH/noarg.out_ascii
new file mode 100644
index 00000000000..0bbb7e0ccca
--- /dev/null
+++ b/regress/usr.bin/mandoc/man/TH/noarg.out_ascii
@@ -0,0 +1,12 @@
+() ()
+
+
+
+NNAAMMEE
+ TH-noarg - no arguments to the TH macro
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+
+
diff --git a/regress/usr.bin/mandoc/man/TH/onearg.in b/regress/usr.bin/mandoc/man/TH/onearg.in
new file mode 100644
index 00000000000..fe77903eb76
--- /dev/null
+++ b/regress/usr.bin/mandoc/man/TH/onearg.in
@@ -0,0 +1,5 @@
+.TH TH-ONEARG
+.SH NAME
+TH-onearg \- only one argument to the TH macro
+.SH DESCRIPTION
+some text
diff --git a/regress/usr.bin/mandoc/man/TH/onearg.out_ascii b/regress/usr.bin/mandoc/man/TH/onearg.out_ascii
new file mode 100644
index 00000000000..8ec0650ca96
--- /dev/null
+++ b/regress/usr.bin/mandoc/man/TH/onearg.out_ascii
@@ -0,0 +1,12 @@
+TH-ONEARG() TH-ONEARG()
+
+
+
+NNAAMMEE
+ TH-onearg - only one argument to the TH macro
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+
+
diff --git a/regress/usr.bin/mandoc/man/TH/sixargs.in b/regress/usr.bin/mandoc/man/TH/sixargs.in
new file mode 100644
index 00000000000..2357966612d
--- /dev/null
+++ b/regress/usr.bin/mandoc/man/TH/sixargs.in
@@ -0,0 +1,5 @@
+.TH TH-SIXARGS 1 2011-01-16 OpenBSD regress SIX
+.SH NAME
+TH-sixargs \- six arguments to the TH macro
+.SH DESCRIPTION
+some text
diff --git a/regress/usr.bin/mandoc/man/TH/sixargs.out_ascii b/regress/usr.bin/mandoc/man/TH/sixargs.out_ascii
new file mode 100644
index 00000000000..a2cf331f8d3
--- /dev/null
+++ b/regress/usr.bin/mandoc/man/TH/sixargs.out_ascii
@@ -0,0 +1,12 @@
+TH-SIXARGS(1) regress TH-SIXARGS(1)
+
+
+
+NNAAMMEE
+ TH-sixargs - six arguments to the TH macro
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+
+
+
diff --git a/regress/usr.bin/mandoc/man/nf/Makefile b/regress/usr.bin/mandoc/man/nf/Makefile
index 225c2b7b5dc..d32d34d7fb3 100644
--- a/regress/usr.bin/mandoc/man/nf/Makefile
+++ b/regress/usr.bin/mandoc/man/nf/Makefile
@@ -1,6 +1,6 @@
-# $OpenBSD: Makefile,v 1.1 2011/01/04 01:15:39 schwarze Exp $
+# $OpenBSD: Makefile,v 1.2 2011/01/17 00:15:19 schwarze Exp $
-REGRESS_TARGETS=indent
-GROFF_TARGETS=indent
+REGRESS_TARGETS=indent args
+GROFF_TARGETS=indent args
.include <bsd.regress.mk>
diff --git a/regress/usr.bin/mandoc/man/nf/args.in b/regress/usr.bin/mandoc/man/nf/args.in
new file mode 100644
index 00000000000..a8800882d23
--- /dev/null
+++ b/regress/usr.bin/mandoc/man/nf/args.in
@@ -0,0 +1,12 @@
+.TH NF-ARGS 1
+.SH NAME
+nf-args \- filling macros with arguments
+.SH DESCRIPTION
+regular
+text
+.nf arg1 arg2 arg3
+literal
+text
+.fi arg1 arg2 arg3
+regular
+text
diff --git a/regress/usr.bin/mandoc/man/nf/args.out_ascii b/regress/usr.bin/mandoc/man/nf/args.out_ascii
new file mode 100644
index 00000000000..fff94ca454b
--- /dev/null
+++ b/regress/usr.bin/mandoc/man/nf/args.out_ascii
@@ -0,0 +1,15 @@
+NF-ARGS(1) NF-ARGS(1)
+
+
+
+NNAAMMEE
+ nf-args - filling macros with arguments
+
+DDEESSCCRRIIPPTTIIOONN
+ regular text
+ literal
+ text
+ regular text
+
+
+
diff --git a/regress/usr.bin/mandoc/roff/Makefile b/regress/usr.bin/mandoc/roff/Makefile
index cf1cc6118cd..96d857a8c8d 100644
--- a/regress/usr.bin/mandoc/roff/Makefile
+++ b/regress/usr.bin/mandoc/roff/Makefile
@@ -1,6 +1,6 @@
-# $OpenBSD: Makefile,v 1.4 2011/01/12 20:56:40 schwarze Exp $
+# $OpenBSD: Makefile,v 1.5 2011/01/17 00:15:19 schwarze Exp $
-SUBDIR+= args cond string rm
+SUBDIR+= args cond string br na rm sp
groff groff-clean: _SUBDIRUSE
diff --git a/regress/usr.bin/mandoc/roff/br/Makefile b/regress/usr.bin/mandoc/roff/br/Makefile
new file mode 100644
index 00000000000..217ec06be4a
--- /dev/null
+++ b/regress/usr.bin/mandoc/roff/br/Makefile
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile,v 1.1 2011/01/17 00:15:19 schwarze Exp $
+
+REGRESS_TARGETS=args
+GROFF_TARGETS=args
+
+.include <bsd.regress.mk>
diff --git a/regress/usr.bin/mandoc/roff/br/args.in b/regress/usr.bin/mandoc/roff/br/args.in
new file mode 100644
index 00000000000..3726871e6e1
--- /dev/null
+++ b/regress/usr.bin/mandoc/roff/br/args.in
@@ -0,0 +1,9 @@
+.TH BR-ARGS 1
+.SH NAME
+br-args \- arguments to .br macros
+.SH DESCRIPTION
+some
+text
+.br arg1 arg2 arg3
+more
+text
diff --git a/regress/usr.bin/mandoc/roff/br/args.out_ascii b/regress/usr.bin/mandoc/roff/br/args.out_ascii
new file mode 100644
index 00000000000..211997f6eda
--- /dev/null
+++ b/regress/usr.bin/mandoc/roff/br/args.out_ascii
@@ -0,0 +1,13 @@
+BR-ARGS(1) BR-ARGS(1)
+
+
+
+NNAAMMEE
+ br-args - arguments to .br macros
+
+DDEESSCCRRIIPPTTIIOONN
+ some text
+ more text
+
+
+
diff --git a/regress/usr.bin/mandoc/roff/na/Makefile b/regress/usr.bin/mandoc/roff/na/Makefile
new file mode 100644
index 00000000000..217ec06be4a
--- /dev/null
+++ b/regress/usr.bin/mandoc/roff/na/Makefile
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile,v 1.1 2011/01/17 00:15:19 schwarze Exp $
+
+REGRESS_TARGETS=args
+GROFF_TARGETS=args
+
+.include <bsd.regress.mk>
diff --git a/regress/usr.bin/mandoc/roff/na/args.in b/regress/usr.bin/mandoc/roff/na/args.in
new file mode 100644
index 00000000000..6a3e8a55ead
--- /dev/null
+++ b/regress/usr.bin/mandoc/roff/na/args.in
@@ -0,0 +1,9 @@
+.TH NA-ARGS 1
+.SH NAME
+na-args \- arguments to .na macros
+.SH DESCRIPTION
+some
+text
+.na arg1 arg2 arg3
+more
+text
diff --git a/regress/usr.bin/mandoc/roff/na/args.out_ascii b/regress/usr.bin/mandoc/roff/na/args.out_ascii
new file mode 100644
index 00000000000..8851c325f20
--- /dev/null
+++ b/regress/usr.bin/mandoc/roff/na/args.out_ascii
@@ -0,0 +1,12 @@
+NA-ARGS(1) NA-ARGS(1)
+
+
+
+NNAAMMEE
+ na-args - arguments to .na macros
+
+DDEESSCCRRIIPPTTIIOONN
+ some text more text
+
+
+
diff --git a/regress/usr.bin/mandoc/roff/sp/Makefile b/regress/usr.bin/mandoc/roff/sp/Makefile
new file mode 100644
index 00000000000..5681ca5fe2e
--- /dev/null
+++ b/regress/usr.bin/mandoc/roff/sp/Makefile
@@ -0,0 +1,6 @@
+# $OpenBSD: Makefile,v 1.1 2011/01/17 00:15:19 schwarze Exp $
+
+REGRESS_TARGETS=badargs-mdoc badargs-man
+GROFF_TARGETS=badargs-mdoc badargs-man
+
+.include <bsd.regress.mk>
diff --git a/regress/usr.bin/mandoc/roff/sp/badargs-man.in b/regress/usr.bin/mandoc/roff/sp/badargs-man.in
new file mode 100644
index 00000000000..18e4575a511
--- /dev/null
+++ b/regress/usr.bin/mandoc/roff/sp/badargs-man.in
@@ -0,0 +1,11 @@
+.TH SP-BADARGS-MAN 1
+.SH NAME
+sp-badargs-man \- bad numbers of arguments to .sp macros in man(7)
+.SH DESCRIPTION
+no arguments:
+.sp
+one argument:
+.sp 2v
+two arguments:
+.sp 3v 2i
+end of test document
diff --git a/regress/usr.bin/mandoc/roff/sp/badargs-man.out_ascii b/regress/usr.bin/mandoc/roff/sp/badargs-man.out_ascii
new file mode 100644
index 00000000000..86865785ef7
--- /dev/null
+++ b/regress/usr.bin/mandoc/roff/sp/badargs-man.out_ascii
@@ -0,0 +1,21 @@
+SP-BADARGS-MAN(1) SP-BADARGS-MAN(1)
+
+
+
+NNAAMMEE
+ sp-badargs-man - bad numbers of arguments to .sp macros in man(7)
+
+DDEESSCCRRIIPPTTIIOONN
+ no arguments:
+
+ one argument:
+
+
+ two arguments:
+
+
+
+ end of test document
+
+
+
diff --git a/regress/usr.bin/mandoc/roff/sp/badargs-mdoc.in b/regress/usr.bin/mandoc/roff/sp/badargs-mdoc.in
new file mode 100644
index 00000000000..9f9d18fbcd2
--- /dev/null
+++ b/regress/usr.bin/mandoc/roff/sp/badargs-mdoc.in
@@ -0,0 +1,14 @@
+.Dd January 2, 2011
+.Dt SP-BADARGS-MDOC 1
+.Os
+.Sh NAME
+.Nm sp-badargs-mdoc
+.Nd bad numbers of arguments to .sp macros in mdoc(7)
+.Sh DESCRIPTION
+no arguments:
+.sp
+one argument:
+.sp 2v
+two arguments:
+.sp 3v 2i
+end of test document
diff --git a/regress/usr.bin/mandoc/roff/sp/badargs-mdoc.out_ascii b/regress/usr.bin/mandoc/roff/sp/badargs-mdoc.out_ascii
new file mode 100644
index 00000000000..92ca70ac2ab
--- /dev/null
+++ b/regress/usr.bin/mandoc/roff/sp/badargs-mdoc.out_ascii
@@ -0,0 +1,17 @@
+SP-BADARGS-MDOC(1) OpenBSD Reference Manual SP-BADARGS-MDOC(1)
+
+NNAAMMEE
+ sspp--bbaaddaarrggss--mmddoocc - bad numbers of arguments to .sp macros in mdoc(7)
+
+DDEESSCCRRIIPPTTIIOONN
+ no arguments:
+
+ one argument:
+
+
+ two arguments:
+
+
+
+ end of test document
+
diff --git a/usr.bin/mandoc/man_html.c b/usr.bin/mandoc/man_html.c
index e4ec6dcc6e0..046e22af34d 100644
--- a/usr.bin/mandoc/man_html.c
+++ b/usr.bin/mandoc/man_html.c
@@ -1,4 +1,4 @@
-/* $Id: man_html.c,v 1.33 2011/01/16 19:41:16 schwarze Exp $ */
+/* $Id: man_html.c,v 1.34 2011/01/17 00:15:19 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -96,7 +96,7 @@ static const struct htmlman mans[MAN_MAX] = {
{ man_I_pre, NULL }, /* I */
{ man_alt_pre, NULL }, /* IR */
{ man_alt_pre, NULL }, /* RI */
- { NULL, NULL }, /* na */
+ { man_ign_pre, NULL }, /* na */
{ man_br_pre, NULL }, /* sp */
{ man_literal_pre, NULL }, /* nf */
{ man_literal_pre, NULL }, /* fi */
@@ -649,7 +649,7 @@ man_literal_pre(MAN_ARGS)
} else
mh->fl &= ~MANH_LITERAL;
- return(1);
+ return(0);
}
diff --git a/usr.bin/mandoc/man_term.c b/usr.bin/mandoc/man_term.c
index fc319fcbcdc..700a3e17381 100644
--- a/usr.bin/mandoc/man_term.c
+++ b/usr.bin/mandoc/man_term.c
@@ -1,4 +1,4 @@
-/* $Id: man_term.c,v 1.61 2011/01/16 03:46:21 schwarze Exp $ */
+/* $Id: man_term.c,v 1.62 2011/01/17 00:15:19 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2011 Ingo Schwarze <schwarze@openbsd.org>
@@ -122,7 +122,7 @@ static const struct termact termacts[MAN_MAX] = {
{ pre_I, NULL, 0 }, /* I */
{ pre_alternate, NULL, 0 }, /* IR */
{ pre_alternate, NULL, 0 }, /* RI */
- { NULL, NULL, MAN_NOTEXT }, /* na */
+ { pre_ign, NULL, MAN_NOTEXT }, /* na */
{ pre_sp, NULL, MAN_NOTEXT }, /* sp */
{ pre_literal, NULL, 0 }, /* nf */
{ pre_literal, NULL, 0 }, /* fi */
@@ -251,7 +251,7 @@ pre_literal(DECL_ARGS)
else
mt->fl &= ~MANT_LITERAL;
- return(1);
+ return(0);
}
/* ARGSUSED */
diff --git a/usr.bin/mandoc/man_validate.c b/usr.bin/mandoc/man_validate.c
index 77db6986725..3c1e91f809f 100644
--- a/usr.bin/mandoc/man_validate.c
+++ b/usr.bin/mandoc/man_validate.c
@@ -1,4 +1,4 @@
-/* $Id: man_validate.c,v 1.39 2011/01/16 19:27:25 schwarze Exp $ */
+/* $Id: man_validate.c,v 1.40 2011/01/17 00:15:19 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
@@ -50,7 +50,6 @@ static int check_part(CHKARGS);
static int check_root(CHKARGS);
static int check_sec(CHKARGS);
static int check_text(CHKARGS);
-static int check_title(CHKARGS);
static int post_AT(CHKARGS);
static int post_fi(CHKARGS);
@@ -67,7 +66,7 @@ static v_check posts_nf[] = { check_eq0, post_nf, NULL };
static v_check posts_par[] = { check_par, NULL };
static v_check posts_part[] = { check_part, NULL };
static v_check posts_sec[] = { check_sec, NULL };
-static v_check posts_th[] = { check_ge2, check_le5, check_title, post_TH, NULL };
+static v_check posts_th[] = { check_ge2, check_le5, post_TH, NULL };
static v_check posts_uc[] = { post_UC, NULL };
static v_check pres_bline[] = { check_bline, NULL };
@@ -197,29 +196,6 @@ check_root(CHKARGS)
static int
-check_title(CHKARGS)
-{
- const char *p;
-
- assert(n->child);
- /* FIXME: is this sufficient? */
- if ('\0' == *n->child->string) {
- man_nmsg(m, n, MANDOCERR_SYNTARGCOUNT);
- return(0);
- }
-
- for (p = n->child->string; '\0' != *p; p++)
- /* Only warn about this once... */
- if (isalpha((u_char)*p) && ! isupper((u_char)*p)) {
- man_nmsg(m, n, MANDOCERR_UPPERCASE);
- break;
- }
-
- return(1);
-}
-
-
-static int
check_text(CHKARGS)
{
char *p;
@@ -263,10 +239,10 @@ check_##name(CHKARGS) \
{ \
if (n->nchild ineq (x)) \
return(1); \
- man_vmsg(m, MANDOCERR_SYNTARGCOUNT, n->line, n->pos, \
+ man_vmsg(m, MANDOCERR_ARGCOUNT, n->line, n->pos, \
"line arguments %s %d (have %d)", \
#ineq, (x), n->nchild); \
- return(0); \
+ return(1); \
}
INEQ_DEFINE(0, ==, eq0)
@@ -393,6 +369,7 @@ check_bline(CHKARGS)
static int
post_TH(CHKARGS)
{
+ const char *p;
if (m->meta.title)
free(m->meta.title);
@@ -412,14 +389,26 @@ post_TH(CHKARGS)
/* ->TITLE<- MSEC DATE SOURCE VOL */
n = n->child;
- assert(n);
- m->meta.title = mandoc_strdup(n->string);
+ if (n && n->string) {
+ for (p = n->string; '\0' != *p; p++) {
+ /* Only warn about this once... */
+ if (isalpha((u_char)*p) && ! isupper((u_char)*p)) {
+ man_nmsg(m, n, MANDOCERR_UPPERCASE);
+ break;
+ }
+ }
+ m->meta.title = mandoc_strdup(n->string);
+ } else
+ m->meta.title = mandoc_strdup("");
/* TITLE ->MSEC<- DATE SOURCE VOL */
- n = n->next;
- assert(n);
- m->meta.msec = mandoc_strdup(n->string);
+ if (n)
+ n = n->next;
+ if (n && n->string)
+ m->meta.msec = mandoc_strdup(n->string);
+ else
+ m->meta.msec = mandoc_strdup("");
/* TITLE MSEC ->DATE<- SOURCE VOL */
@@ -430,7 +419,8 @@ post_TH(CHKARGS)
* string, then use the current date.
*/
- n = n->next;
+ if (n)
+ n = n->next;
if (n && n->string && *n->string) {
m->meta.date = mandoc_a2time
(MTIME_ISO_8601, n->string);