summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2011-11-27 23:11:37 +0000
committerIngo Schwarze <schwarze@openbsd.org>2011-11-27 23:11:37 +0000
commit4f08e1a59c1b75a054ad30dd951c0c511f05b28e (patch)
tree2913d0223d0da6b9bcab83277c86ff36059c9323
parent59061e7ea735427f043254b454956da8bf073e88 (diff)
downloadmandoc-4f08e1a59c1b75a054ad30dd951c0c511f05b28e.tar.gz
Save the manual type (mdoc, man, or cat) in the index file
of the mandoc databases, as suggested by kristaps@. Given the well-structured code, this is surprisingly simple. This changes the mandoc.index database format. Run "sudo mandocdb" to regenerate your databases.
-rw-r--r--apropos_db.c1
-rw-r--r--apropos_db.h1
-rw-r--r--mandocdb.c1
3 files changed, 3 insertions, 0 deletions
diff --git a/apropos_db.c b/apropos_db.c
index 7a423083..5e473a6b 100644
--- a/apropos_db.c
+++ b/apropos_db.c
@@ -366,6 +366,7 @@ index_read(const DBT *key, const DBT *val, int index,
rec->res.rec = *(recno_t *)key->data;
rec->res.volume = index;
+ INDEX_BREAD(rec->res.type);
INDEX_BREAD(rec->res.file);
INDEX_BREAD(rec->res.cat);
INDEX_BREAD(rec->res.title);
diff --git a/apropos_db.h b/apropos_db.h
index 2591d87e..1accaa1f 100644
--- a/apropos_db.h
+++ b/apropos_db.h
@@ -18,6 +18,7 @@
#define APROPOS_H
struct res {
+ char *type; /* file type: mdoc, man or cat */
char *file; /* file in file-system */
char *cat; /* category (3p, 3, etc.) */
char *title; /* title (FOO, etc.) */
diff --git a/mandocdb.c b/mandocdb.c
index 36f12f8c..ec740ef9 100644
--- a/mandocdb.c
+++ b/mandocdb.c
@@ -592,6 +592,7 @@ index_merge(const struct of *of, struct mparse *mp,
*/
dbuf->len = 0;
+ buf_append(dbuf, mdoc ? "mdoc" : (man ? "man" : "cat"));
buf_appendb(dbuf, fn, strlen(fn) + 1);
buf_appendb(dbuf, msec, strlen(msec) + 1);
buf_appendb(dbuf, mtitle, strlen(mtitle) + 1);