-/* $Id: mansearch.h,v 1.13 2014/04/11 15:46:52 schwarze Exp $ */
+/* $Id: mansearch.h,v 1.18 2014/09/03 18:09:14 schwarze Exp $ */
/*
* Copyright (c) 2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
#define NAME_HEAD 0x0000004000000010ULL
#define NAME_MASK 0x000000000000001fULL
-__BEGIN_DECLS
+#define FORM_CAT 0 /* manual page is preformatted */
+#define FORM_SRC 1 /* format is mdoc(7) or man(7) */
+#define FORM_GZ 2 /* compressed with gzip(1) */
+#define FORM_NONE 4 /* format is unknown */
+
+enum argmode {
+ ARG_FILE = 0,
+ ARG_NAME,
+ ARG_WORD,
+ ARG_EXPR
+};
struct manpage {
char *file; /* to be prefixed by manpath */
char *names; /* a list of names with sections */
char *output; /* user-defined additional output */
+ size_t ipath; /* number of the manpath */
+ int sec; /* section number, 10 means invalid */
int form; /* 0 == catpage */
};
struct mansearch {
const char *arch; /* architecture/NULL */
const char *sec; /* mansection/NULL */
- uint64_t deftype; /* type if no key */
- int flags;
-#define MANSEARCH_WHATIS 0x01 /* whatis mode: equality, no key */
+ const char *outkey; /* show content of this macro */
+ enum argmode argmode; /* interpretation of arguments */
};
+__BEGIN_DECLS
+
int mansearch_setup(int);
int mansearch(const struct mansearch *cfg, /* options */
const struct manpaths *paths, /* manpaths */
int argc, /* size of argv */
char *argv[], /* search terms */
- const char *outkey, /* name of additional output key */
struct manpage **res, /* results */
size_t *ressz); /* results returned */
+void mansearch_free(struct manpage *, size_t);
__END_DECLS
-#endif /*!MANSEARCH_H*/
+#endif /* MANSEARCH_H */