diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2012-03-24 00:31:55 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2012-03-24 00:31:55 +0000 |
commit | b0d41b53f31ecf7db5c6777a41fc0184d5d73231 (patch) | |
tree | f091045820142264a975c8815ebc0bf1b73afaa0 /apropos_db.h | |
parent | ce34328e22d20a0bb72bd41483eb34a654ea4751 (diff) | |
download | mandoc-b0d41b53f31ecf7db5c6777a41fc0184d5d73231.tar.gz mandoc-b0d41b53f31ecf7db5c6777a41fc0184d5d73231.tar.zst mandoc-b0d41b53f31ecf7db5c6777a41fc0184d5d73231.zip |
Simplify by not pre-filtering the result vector for satisfied matches:
we can do this in the frontend.
Diffstat (limited to 'apropos_db.h')
-rw-r--r-- | apropos_db.h | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/apropos_db.h b/apropos_db.h index 2af91206..bf0913e8 100644 --- a/apropos_db.h +++ b/apropos_db.h @@ -1,4 +1,4 @@ -/* $Id: apropos_db.h,v 1.11 2011/12/16 12:06:35 kristaps Exp $ */ +/* $Id: apropos_db.h,v 1.12 2012/03/24 00:31:55 kristaps Exp $ */ /* * Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv> * @@ -36,6 +36,18 @@ struct res { * searched for manual page databases. */ unsigned int volume; + /* + * The following fields are used internally. + * + * Maintain a binary tree for checking the uniqueness of `rec' + * when adding elements to the results array. + * Since the results array is dynamic, use offset in the array + * instead of a pointer to the structure. + */ + int lhs; + int rhs; + int matched; /* expression is true */ + int *matches; /* partial truth evaluations */ }; struct opts { @@ -47,11 +59,13 @@ __BEGIN_DECLS struct expr; -int apropos_search(int, char **, const struct opts *, - const struct expr *, size_t, void *, +int apropos_search(int, char **, const struct opts *, + const struct expr *, size_t, + void *, size_t *, struct res **, void (*)(struct res *, size_t, void *)); struct expr *exprcomp(int, char *[], size_t *); void exprfree(struct expr *); +void resfree(struct res *, size_t); struct expr *termcomp(int, char *[], size_t *); __END_DECLS |