=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mandocdb.c,v retrieving revision 1.188 retrieving revision 1.189 diff -c -r1.188 -r1.189 *** src/usr.bin/mandoc/mandocdb.c 2017/01/27 01:04:13 1.188 --- src/usr.bin/mandoc/mandocdb.c 2017/01/27 01:09:02 1.189 *************** *** 1,4 **** ! /* $OpenBSD: mandocdb.c,v 1.188 2017/01/27 01:04:13 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons * Copyright (c) 2011-2017 Ingo Schwarze --- 1,4 ---- ! /* $OpenBSD: mandocdb.c,v 1.189 2017/01/27 01:09:02 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons * Copyright (c) 2011-2017 Ingo Schwarze *************** *** 1113,1118 **** --- 1113,1119 ---- if (mlink->dform != FORM_CAT || mlink->fform != FORM_CAT) { mparse_readfd(mp, fd, mlink->file); close(fd); + fd = -1; mparse_result(mp, &man, &sodest); } *************** *** 1169,1192 **** mpage->title = mandoc_strdup(man->meta.title); } else if (man != NULL && man->macroset == MACROSET_MAN) { man_validate(man); ! mpage->form = FORM_SRC; ! mpage->sec = mandoc_strdup(man->meta.msec); ! mpage->arch = mandoc_strdup(mlink->arch); ! mpage->title = mandoc_strdup(man->meta.title); ! } else { mpage->form = FORM_CAT; mpage->sec = mandoc_strdup(mlink->dsec); mpage->arch = mandoc_strdup(mlink->arch); mpage->title = mandoc_strdup(mlink->name); ! } ! ! assert(mpage->desc == NULL); ! if (man != NULL && man->macroset == MACROSET_MDOC) parse_mdoc(mpage, &man->meta, man->first); - else if (man != NULL) - parse_man(mpage, &man->meta, man->first); else ! parse_cat(mpage, fd); if (mpage->desc == NULL) mpage->desc = mandoc_strdup(mpage->mlinks->name); --- 1170,1196 ---- mpage->title = mandoc_strdup(man->meta.title); } else if (man != NULL && man->macroset == MACROSET_MAN) { man_validate(man); ! if (*man->meta.msec != '\0' || ! *man->meta.msec != '\0') { ! mpage->form = FORM_SRC; ! mpage->sec = mandoc_strdup(man->meta.msec); ! mpage->arch = mandoc_strdup(mlink->arch); ! mpage->title = mandoc_strdup(man->meta.title); ! } else ! man = NULL; ! } ! ! assert(mpage->desc == NULL); ! if (man == NULL) { mpage->form = FORM_CAT; mpage->sec = mandoc_strdup(mlink->dsec); mpage->arch = mandoc_strdup(mlink->arch); mpage->title = mandoc_strdup(mlink->name); ! parse_cat(mpage, fd); ! } else if (man->macroset == MACROSET_MDOC) parse_mdoc(mpage, &man->meta, man->first); else ! parse_man(mpage, &man->meta, man->first); if (mpage->desc == NULL) mpage->desc = mandoc_strdup(mpage->mlinks->name);