aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mandocdb.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2014-04-13 22:03:04 +0000
committerIngo Schwarze <schwarze@openbsd.org>2014-04-13 22:03:04 +0000
commit518319b76b412867ccba108f609f601e990b7b19 (patch)
tree3fc0687547ba62149e60f4bcc372c079b1b2b7c2 /mandocdb.c
parent5cbe516a3fc6265e676b36d819f479608263be3e (diff)
downloadmandoc-518319b76b412867ccba108f609f601e990b7b19.tar.gz
mandoc-518319b76b412867ccba108f609f601e990b7b19.tar.zst
mandoc-518319b76b412867ccba108f609f601e990b7b19.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.
Diffstat (limited to 'mandocdb.c')
-rw-r--r--mandocdb.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/mandocdb.c b/mandocdb.c
index 86f66fa7..71f67006 100644
--- a/mandocdb.c
+++ b/mandocdb.c
@@ -1,4 +1,4 @@
-/* $Id: mandocdb.c,v 1.134 2014/04/13 20:55:45 schwarze Exp $ */
+/* $Id: mandocdb.c,v 1.135 2014/04/13 22:03:04 schwarze Exp $ */
/*
* Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -1154,18 +1154,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;
@@ -1302,8 +1301,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;
@@ -1342,7 +1339,6 @@ parse_cat(struct mpage *mpage, int fd)
plen -= 2;
}
- assert(NULL == mpage->desc);
mpage->desc = mandoc_strdup(p);
fclose(stream);
free(title);
@@ -1482,7 +1478,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;