-/* $Id: apropos_db.h,v 1.3 2011/11/13 11:10:27 schwarze Exp $ */
+/* $Id: apropos_db.h,v 1.10 2011/11/27 23:11:37 schwarze Exp $ */
/*
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
*
#ifndef APROPOS_H
#define APROPOS_H
-struct rec {
+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.) */
char *desc; /* description (from Nd) */
unsigned int rec; /* record in index */
/*
- * By the time the apropos_search() callback is called, these
- * are superfluous.
- * 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.
+ * The index volume. This indexes into the array of directories
+ * searched for manual page databases.
*/
- int lhs;
- int rhs;
+ unsigned int volume;
};
struct opts {
struct expr;
-void apropos_search(const struct opts *,
- const struct expr *, void *,
- void (*)(struct rec *, size_t, void *));
-
-struct expr *exprcomp(int, char *[]);
+int apropos_search(int, char **, const struct opts *,
+ const struct expr *, size_t, void *,
+ void (*)(struct res *, size_t, void *));
+struct expr *exprcomp(int, char *[], size_t *);
void exprfree(struct expr *);
+struct expr *termcomp(int, char *[], size_t *);
__END_DECLS