diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-06-21 14:16:05 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-06-21 14:16:05 +0000 |
commit | c5f902924457cd786725c1e4e2aed53581908dd7 (patch) | |
tree | c44cb001319989e52ee66b0d967d7552fba37451 | |
parent | 9d5aa6c4998a8c5a2851bb6512ff1d60bc52c386 (diff) | |
download | mandoc-c5f902924457cd786725c1e4e2aed53581908dd7.tar.gz |
Let descriptions (bit-mask 0x100) also be mined for text. This doubles
the database size (one record for each file), but it's critical
information.
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | makewhatis.1 | 2 | ||||
-rw-r--r-- | makewhatis.c | 21 |
3 files changed, 19 insertions, 6 deletions
@@ -353,7 +353,7 @@ llib-lmandoc.ln: $(MANDOC_LNS) # You'll need -ldb for Linux. makewhatis: $(MAKEWHATIS_OBJS) libmandoc.a - $(CC) -o $@ $(MAKEWHATIS_OBJS) libmandoc.a -ldb + $(CC) -o $@ $(MAKEWHATIS_OBJS) libmandoc.a llib-lmakewhatis.ln: $(MAKEWHATIS_LNS) $(LINT) $(LINTFLAGS) -Cmakewhatis $(MAKEWHATIS_LNS) diff --git a/makewhatis.1 b/makewhatis.1 index 73aab84d..9c74a8d5 100644 --- a/makewhatis.1 +++ b/makewhatis.1 @@ -107,6 +107,8 @@ A standard as given in the STANDARDS section. An author as given in the AUTHORS section. .It Li 0x80 A configuration as given in the SYNOPSIS section. +.It Li 0x100 +Free-form descriptive text as given in the NAME section. .El .Pp The last four bytes are a host-ordered record number within the diff --git a/makewhatis.c b/makewhatis.c index 84f64508..0523d4b6 100644 --- a/makewhatis.c +++ b/makewhatis.c @@ -52,7 +52,7 @@ #define TYPE_STANDARD 0x20 #define TYPE_AUTHOR 0x40 #define TYPE_CONFIG 0x80 -#define TYPE__MAX TYPE_CONFIG +#define TYPE_DESC 0x100 /* Buffer for storing growable data. */ @@ -695,16 +695,25 @@ static void pmdoc_Nd(MDOC_ARGS) { int first; + size_t sz; for (first = 1, n = n->child; n; n = n->next) { if (MDOC_TEXT != n->type) continue; - if (first) - buf_appendb(dbuf, n->string, strlen(n->string) + 1); - else + + if (first) { + sz = strlen(n->string) + 1; + buf_appendb(dbuf, n->string, sz); + buf_appendb(buf, n->string, sz); + } else { buf_append(dbuf, n->string); + buf_append(buf, n->string); + } + first = 0; } + + hash_put(hash, buf, TYPE_DESC); } /* ARGSUSED */ @@ -897,7 +906,9 @@ pman_node(MAN_ARGS) while (' ' == *start) start++; - buf_appendb(dbuf, start, strlen(start) + 1); + sz = strlen(start) + 1; + buf_appendb(dbuf, start, sz); + buf_appendb(buf, start, sz); } } |