]> git.cameronkatri.com Git - mandoc.git/blobdiff - man_validate.c
Make the character table available to libroff so it can check the
[mandoc.git] / man_validate.c
index 5de9299606eb9bf8e3a92379c49e49cf7bb040c9..cb189436864fc31d82a5a38979ff5820a06b6090 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: man_validate.c,v 1.104 2014/08/01 21:24:17 schwarze Exp $ */
+/*     $Id: man_validate.c,v 1.106 2014/08/10 23:54:41 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -15,9 +15,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <sys/types.h>
 
@@ -43,7 +41,6 @@ typedef       int     (*v_check)(CHKARGS);
 static int       check_eq0(CHKARGS);
 static int       check_eq2(CHKARGS);
 static int       check_le1(CHKARGS);
-static int       check_ge2(CHKARGS);
 static int       check_le5(CHKARGS);
 static int       check_par(CHKARGS);
 static int       check_part(CHKARGS);
@@ -142,7 +139,7 @@ check_root(CHKARGS)
                man->meta.hasbody = 1;
 
        if (NULL == man->meta.title) {
-               mandoc_msg(MANDOCERR_TH_MISSING, man->parse,
+               mandoc_msg(MANDOCERR_TH_NOTITLE, man->parse,
                    n->line, n->pos, NULL);
 
                /*
@@ -150,8 +147,8 @@ check_root(CHKARGS)
                 * implication, date and section also aren't set).
                 */
 
-               man->meta.title = mandoc_strdup("unknown");
-               man->meta.msec = mandoc_strdup("1");
+               man->meta.title = mandoc_strdup("");
+               man->meta.msec = mandoc_strdup("");
                man->meta.date = man->quick ? mandoc_strdup("") :
                    mandoc_normdate(man->parse, NULL, n->line, n->pos);
        }
@@ -189,7 +186,6 @@ check_##name(CHKARGS) \
 INEQ_DEFINE(0, ==, eq0)
 INEQ_DEFINE(2, ==, eq2)
 INEQ_DEFINE(1, <=, le1)
-INEQ_DEFINE(2, >=, ge2)
 INEQ_DEFINE(5, <=, le5)
 
 static int
@@ -324,7 +320,6 @@ post_TH(CHKARGS)
        struct man_node *nb;
        const char      *p;
 
-       check_ge2(man, n);
        check_le5(man, n);
 
        free(man->meta.title);
@@ -354,8 +349,11 @@ post_TH(CHKARGS)
                        }
                }
                man->meta.title = mandoc_strdup(n->string);
-       } else
+       } else {
                man->meta.title = mandoc_strdup("");
+               mandoc_msg(MANDOCERR_TH_NOTITLE, man->parse,
+                   nb->line, nb->pos, "TH");
+       }
 
        /* TITLE ->MSEC<- DATE SOURCE VOL */
 
@@ -363,8 +361,11 @@ post_TH(CHKARGS)
                n = n->next;
        if (n && n->string)
                man->meta.msec = mandoc_strdup(n->string);
-       else
+       else {
                man->meta.msec = mandoc_strdup("");
+               mandoc_vmsg(MANDOCERR_MSEC_MISSING, man->parse,
+                   nb->line, nb->pos, "TH %s", man->meta.title);
+       }
 
        /* TITLE MSEC ->DATE<- SOURCE VOL */