diff options
author | 2014-04-13 22:02:54 +0000 | |
---|---|---|
committer | 2014-04-13 22:02:54 +0000 | |
commit | c354d16f06bd50d10e7da5b36c4cc6d2db3a3021 (patch) | |
tree | 97e5f32726cc633e1c2f54cca39238beaf8962a4 | |
parent | better error reporting in case of SQL errors: mention dir and file (diff) | |
download | wireguard-openbsd-c354d16f06bd50d10e7da5b36c4cc6d2db3a3021.tar.xz wireguard-openbsd-c354d16f06bd50d10e7da5b36c4cc6d2db3a3021.zip |
Unify description handling across all document types (mdoc, man, cat).
Assert that the description is unset right before calling the parse_*
handler, and assign a default if it's still unset right afterwards.
Remove all stray asserts and default assignments found elsewhere.
This fixes SQL_STEP failures for man(7) pages lacking descriptions.
-rw-r--r-- | usr.bin/mandoc/mandocdb.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/usr.bin/mandoc/mandocdb.c b/usr.bin/mandoc/mandocdb.c index 20b83fbec1f..2afe01bf8ef 100644 --- a/usr.bin/mandoc/mandocdb.c +++ b/usr.bin/mandoc/mandocdb.c @@ -1,4 +1,4 @@ -/* $Id: mandocdb.c,v 1.91 2014/04/13 21:21:27 schwarze Exp $ */ +/* $Id: mandocdb.c,v 1.92 2014/04/13 22:02:54 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2011, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org> @@ -1146,18 +1146,17 @@ mpages_merge(struct mchars *mc, struct mparse *mp) putkey(mpage, mlink->name, NAME_FILE); } + assert(NULL == mpage->desc); if (NULL != mdoc) { if (NULL != (cp = mdoc_meta(mdoc)->name)) putkey(mpage, cp, NAME_HEAD); - assert(NULL == mpage->desc); parse_mdoc(mpage, mdoc_node(mdoc)); - if (NULL == mpage->desc) - mpage->desc = mandoc_strdup( - mpage->mlinks->name); } else if (NULL != man) parse_man(mpage, man_node(man)); else parse_cat(mpage, fd[0]); + if (NULL == mpage->desc) + mpage->desc = mandoc_strdup(mpage->mlinks->name); if (warnings && !use_all) for (mlink = mpage->mlinks; mlink; @@ -1294,8 +1293,6 @@ parse_cat(struct mpage *mpage, int fd) if (warnings) say(mpage->mlinks->file, "Cannot find NAME section"); - assert(NULL == mpage->desc); - mpage->desc = mandoc_strdup(mpage->mlinks->name); fclose(stream); free(title); return; @@ -1334,7 +1331,6 @@ parse_cat(struct mpage *mpage, int fd) plen -= 2; } - assert(NULL == mpage->desc); mpage->desc = mandoc_strdup(p); fclose(stream); free(title); @@ -1474,7 +1470,6 @@ parse_man(struct mpage *mpage, const struct man_node *n) while (' ' == *start) start++; - assert(NULL == mpage->desc); mpage->desc = mandoc_strdup(start); free(title); return; |