diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2014-11-27 01:58:21 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2014-11-27 01:58:21 +0000 |
commit | 40f5062cf187d9df1882d91992550749011bdfdf (patch) | |
tree | 3606a69cde3d59ba3cbcbcdf04cb523f71c84202 | |
parent | 7278b90754787266ca3bd283adbba38091595487 (diff) | |
download | mandoc-40f5062cf187d9df1882d91992550749011bdfdf.tar.gz |
Make makewhatis(8) understand .so links to .gz pages.
Drop the FORM_GZ annotation in the mpages table; it is conceptually wrong
because it ought to be in the mlinks table: An uncompressed .so link file
can point to a compressed manual page file and vice versa.
Besides, it is no longer needed because mparse_open() handles it all.
Sprinkle some KNF while here.
-rw-r--r-- | mandocdb.c | 32 | ||||
-rw-r--r-- | mansearch.c | 19 | ||||
-rw-r--r-- | mansearch.h | 1 |
3 files changed, 25 insertions, 27 deletions
@@ -1093,13 +1093,13 @@ mpages_merge(struct mchars *mc, struct mparse *mp) str_info.free = hash_free; str_info.key_offset = offsetof(struct str, key); - if (0 == nodb) + if ( ! nodb) SQL_EXEC("BEGIN TRANSACTION"); mpage = ohash_first(&mpages, &pslot); - while (NULL != mpage) { + while (mpage != NULL) { mlinks_undupe(mpage); - if (NULL == mpage->mlinks) { + if (mpage->mlinks == NULL) { mpage = ohash_next(&mpages, &pslot); continue; } @@ -1123,17 +1123,23 @@ mpages_merge(struct mchars *mc, struct mparse *mp) * source code, unless it is already known to be * formatted. Fall back to formatted mode. */ - if (FORM_CAT != mpage->mlinks->dform || - FORM_CAT != mpage->mlinks->fform) { + if (mpage->mlinks->dform != FORM_CAT || + mpage->mlinks->fform != FORM_CAT) { lvl = mparse_readfd(mp, fd, mpage->mlinks->file); if (lvl < MANDOCLEVEL_FATAL) mparse_result(mp, &mdoc, &man, &sodest); } - if (NULL != sodest) { + if (sodest != NULL) { mlink_dest = ohash_find(&mlinks, ohash_qlookup(&mlinks, sodest)); - if (NULL != mlink_dest) { + if (mlink_dest == NULL) { + mandoc_asprintf(&cp, "%s.gz", sodest); + mlink_dest = ohash_find(&mlinks, + ohash_qlookup(&mlinks, cp)); + free(cp); + } + if (mlink_dest != NULL) { /* The .so target exists. */ @@ -1154,7 +1160,7 @@ mpages_merge(struct mchars *mc, struct mparse *mp) if (mpage_dest->pageid) dbadd_mlink_name(mlink); - if (NULL == mlink->next) + if (mlink->next == NULL) break; mlink = mlink->next; } @@ -1166,17 +1172,17 @@ mpages_merge(struct mchars *mc, struct mparse *mp) mpage->mlinks = NULL; } goto nextpage; - } else if (NULL != mdoc) { + } else if (mdoc != NULL) { mpage->form = FORM_SRC; mpage->sec = mdoc_meta(mdoc)->msec; mpage->sec = mandoc_strdup( - NULL == mpage->sec ? "" : mpage->sec); + mpage->sec == NULL ? "" : mpage->sec); mpage->arch = mdoc_meta(mdoc)->arch; mpage->arch = mandoc_strdup( - NULL == mpage->arch ? "" : mpage->arch); + mpage->arch == NULL ? "" : mpage->arch); mpage->title = mandoc_strdup(mdoc_meta(mdoc)->title); - } else if (NULL != man) { + } else if (man != NULL) { mpage->form = FORM_SRC; mpage->sec = mandoc_strdup(man_meta(man)->msec); @@ -1193,8 +1199,6 @@ mpages_merge(struct mchars *mc, struct mparse *mp) mpage->title = mandoc_strdup(mpage->mlinks->name); } - if (mpage->mlinks->gzip) - mpage->form |= FORM_GZ; putkey(mpage, mpage->sec, TYPE_sec); if (*mpage->arch != '\0') putkey(mpage, mpage->arch, TYPE_arch); diff --git a/mansearch.c b/mansearch.c index 4ab6c079..89749151 100644 --- a/mansearch.c +++ b/mansearch.c @@ -410,7 +410,6 @@ buildnames(struct manpage *mpage, sqlite3 *db, sqlite3_stmt *s, { char *newnames, *prevsec, *prevarch; const char *oldnames, *sep1, *name, *sec, *sep2, *arch, *fsec; - const char *gzip; size_t i; int c; @@ -473,7 +472,7 @@ buildnames(struct manpage *mpage, sqlite3 *db, sqlite3_stmt *s, /* Also save the first file name encountered. */ - if (NULL != mpage->file) + if (mpage->file != NULL) continue; if (form & FORM_SRC) { @@ -483,22 +482,18 @@ buildnames(struct manpage *mpage, sqlite3 *db, sqlite3_stmt *s, sep1 = "cat"; fsec = "0"; } - if (form & FORM_GZ) - gzip = ".gz"; - else - gzip = ""; - sep2 = '\0' == *arch ? "" : "/"; - mandoc_asprintf(&mpage->file, "%s/%s%s%s%s/%s.%s%s", - path, sep1, sec, sep2, arch, name, fsec, gzip); + sep2 = *arch == '\0' ? "" : "/"; + mandoc_asprintf(&mpage->file, "%s/%s%s%s%s/%s.%s", + path, sep1, sec, sep2, arch, name, fsec); } - if (SQLITE_DONE != c) + if (c != SQLITE_DONE) fprintf(stderr, "%s\n", sqlite3_errmsg(db)); sqlite3_reset(s); /* Append one final section to the names. */ - if (NULL != prevsec) { - sep2 = '\0' == *prevarch ? "" : "/"; + if (prevsec != NULL) { + sep2 = *prevarch == '\0' ? "" : "/"; mandoc_asprintf(&newnames, "%s(%s%s%s)", mpage->names, prevsec, sep2, prevarch); free(mpage->names); diff --git a/mansearch.h b/mansearch.h index 2c308a91..954c0494 100644 --- a/mansearch.h +++ b/mansearch.h @@ -70,7 +70,6 @@ #define FORM_CAT 0 /* manual page is preformatted */ #define FORM_SRC 1 /* format is mdoc(7) or man(7) */ -#define FORM_GZ 2 /* compressed with gzip(1) */ #define FORM_NONE 4 /* format is unknown */ enum argmode { |