diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2019-05-03 18:17:12 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2019-05-03 18:17:12 +0000 |
commit | 6e3d81e3a50e53ecbdfdbb0d0cad1a619f6d60df (patch) | |
tree | 09f9ff35b30d5aecff8bf17f0aa7ec5642a6cbd4 /mandocdb.c | |
parent | 07b561eee223a9b63ef21d291c1f7b04abe99fbd (diff) | |
download | mandoc-6e3d81e3a50e53ecbdfdbb0d0cad1a619f6d60df.tar.gz |
Enter dangling .so links into the database, to avoid harassing
users of man(1) about running makewhatis(8), which won't help.
Seeing the content of the broken .so request might even help
users to figure out how to access the manual page they want.
Fixing the last issue reported by Lorenzo Beretta <loreb at github>
as part of https://github.com/void-linux/void-packages/issues/9868 .
Diffstat (limited to 'mandocdb.c')
-rw-r--r-- | mandocdb.c | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -1,7 +1,7 @@ /* $Id$ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> - * Copyright (c) 2011-2018 Ingo Schwarze <schwarze@openbsd.org> + * Copyright (c) 2011-2019 Ingo Schwarze <schwarze@openbsd.org> * Copyright (c) 2016 Ed Maste <emaste@freebsd.org> * * Permission to use, copy, modify, and distribute this software for any @@ -1186,9 +1186,11 @@ mpages_merge(struct dba *dba, struct mparse *mp) mlink->next = mlink_dest->next; mlink_dest->next = mpage->mlinks; mpage->mlinks = NULL; + goto nextpage; } - goto nextpage; - } else if (meta != NULL && meta->macroset == MACROSET_MDOC) { + meta->macroset = MACROSET_NONE; + } + if (meta != NULL && meta->macroset == MACROSET_MDOC) { mpage->form = FORM_SRC; mpage->sec = meta->msec; mpage->sec = mandoc_strdup( @@ -1208,12 +1210,15 @@ mpages_merge(struct dba *dba, struct mparse *mp) } assert(mpage->desc == NULL); - if (meta == NULL) { - mpage->form = FORM_CAT; + if (meta == NULL || meta->sodest != NULL) { mpage->sec = mandoc_strdup(mlink->dsec); mpage->arch = mandoc_strdup(mlink->arch); mpage->title = mandoc_strdup(mlink->name); - parse_cat(mpage, fd); + if (meta == NULL) { + mpage->form = FORM_CAT; + parse_cat(mpage, fd); + } else + mpage->form = FORM_SRC; } else if (meta->macroset == MACROSET_MDOC) parse_mdoc(mpage, meta, meta->first); else |