=================================================================== RCS file: /cvs/mandoc/Attic/apropos_db.h,v retrieving revision 1.3 retrieving revision 1.11 diff -u -p -r1.3 -r1.11 --- mandoc/Attic/apropos_db.h 2011/11/13 11:10:27 1.3 +++ mandoc/Attic/apropos_db.h 2011/12/16 12:06:35 1.11 @@ -1,4 +1,4 @@ -/* $Id: apropos_db.h,v 1.3 2011/11/13 11:10:27 schwarze Exp $ */ +/* $Id: apropos_db.h,v 1.11 2011/12/16 12:06:35 kristaps Exp $ */ /* * Copyright (c) 2011 Kristaps Dzonsons * @@ -17,7 +17,14 @@ #ifndef APROPOS_H #define APROPOS_H -struct rec { +enum restype { + RESTYPE_MAN, /* man(7) file */ + RESTYPE_MDOC, /* mdoc(7) file */ + RESTYPE_CAT /* pre-formatted file */ +}; + +struct res { + enum restype type; /* input file type */ char *file; /* file in file-system */ char *cat; /* category (3p, 3, etc.) */ char *title; /* title (FOO, etc.) */ @@ -25,15 +32,10 @@ struct rec { 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 { @@ -45,12 +47,12 @@ __BEGIN_DECLS 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