aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/man_validate.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-03-27 10:04:56 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-03-27 10:04:56 +0000
commit715d886dfd72c29355a83d45229fd6e48f85e318 (patch)
tree255bad5824da6fe7ea3f76ad7117643dcdbf17c3 /man_validate.c
parente8a6c4afb666843c362147ce8863e75d71782247 (diff)
downloadmandoc-715d886dfd72c29355a83d45229fd6e48f85e318.tar.gz
mandoc-715d886dfd72c29355a83d45229fd6e48f85e318.tar.zst
mandoc-715d886dfd72c29355a83d45229fd6e48f85e318.zip
Fixed re-adjustment of scope in exiting roff instructions (libman).
Added title-case check for (libman). Fixed premature closure of roff instruction scope (libman). Added documentation of ignored roff macros to man(3).
Diffstat (limited to 'man_validate.c')
-rw-r--r--man_validate.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/man_validate.c b/man_validate.c
index db3b1d0e..ad40b4a4 100644
--- a/man_validate.c
+++ b/man_validate.c
@@ -1,4 +1,4 @@
-/* $Id: man_validate.c,v 1.31 2010/03/24 20:10:53 kristaps Exp $ */
+/* $Id: man_validate.c,v 1.32 2010/03/27 10:04:56 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -50,9 +50,10 @@ static int check_roff(CHKARGS);
static int check_root(CHKARGS);
static int check_sec(CHKARGS);
static int check_text(CHKARGS);
+static int check_title(CHKARGS);
static v_check posts_eq0[] = { check_eq0, NULL };
-static v_check posts_ge2_le5[] = { check_ge2, check_le5, NULL };
+static v_check posts_th[] = { check_ge2, check_le5, check_title, 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 };
@@ -62,7 +63,7 @@ static v_check pres_roff[] = { check_bline, check_roff, NULL };
static const struct man_valid man_valids[MAN_MAX] = {
{ NULL, posts_eq0 }, /* br */
- { pres_bline, posts_ge2_le5 }, /* TH */ /* FIXME: make sure capitalised. */
+ { pres_bline, posts_th }, /* TH */
{ pres_bline, posts_sec }, /* SH */
{ pres_bline, posts_sec }, /* SS */
{ pres_bline, posts_par }, /* TP */
@@ -174,6 +175,24 @@ check_root(CHKARGS)
static int
+check_title(CHKARGS)
+{
+ const char *p;
+
+ assert(n->child);
+ if ('\0' == *n->child->string)
+ return(man_nerr(m, n, WNOTITLE));
+
+ for (p = n->child->string; '\0' != *p; p++)
+ if (isalpha((u_char)*p) && ! isupper((u_char)*p))
+ if ( ! man_nwarn(m, n, WTITLECASE))
+ return(0);
+
+ return(1);
+}
+
+
+static int
check_text(CHKARGS)
{
const char *p;