aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mansearch.h
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2014-08-17 03:24:47 +0000
committerIngo Schwarze <schwarze@openbsd.org>2014-08-17 03:24:47 +0000
commit7eba87a5fd2f971ba9c0cd6cb0db96ae643dc9e7 (patch)
tree32368e4ff54dbb527aa87b8a65b05397b77846e9 /mansearch.h
parent7d593fa69b20a5bf1d8d8b1280a0aacd5296026c (diff)
downloadmandoc-7eba87a5fd2f971ba9c0cd6cb0db96ae643dc9e7.tar.gz
mandoc-7eba87a5fd2f971ba9c0cd6cb0db96ae643dc9e7.tar.zst
mandoc-7eba87a5fd2f971ba9c0cd6cb0db96ae643dc9e7.zip
Fully integrate apropos(1) into mandoc(1).
Switch the argmode on the progname, including man(1). Provide -f and -k options to switch the argmode. Store the argmode inside struct search, generalizing the flags. Derive the deftype from the argmode when needed instead of storing it. Store the outkey inside struct search instead of passing it alone. While here, get rid of the trailing blanks in Makefile.depend.
Diffstat (limited to 'mansearch.h')
-rw-r--r--mansearch.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/mansearch.h b/mansearch.h
index eff5e371..3644310b 100644
--- a/mansearch.h
+++ b/mansearch.h
@@ -1,4 +1,4 @@
-/* $Id: mansearch.h,v 1.15 2014/07/24 20:30:45 schwarze Exp $ */
+/* $Id: mansearch.h,v 1.16 2014/08/17 03:24:47 schwarze Exp $ */
/*
* Copyright (c) 2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -68,7 +68,12 @@
#define NAME_HEAD 0x0000004000000010ULL
#define NAME_MASK 0x000000000000001fULL
-__BEGIN_DECLS
+enum argmode {
+ ARG_FILE = 0,
+ ARG_NAME,
+ ARG_WORD,
+ ARG_EXPR
+};
struct manpage {
char *file; /* to be prefixed by manpath */
@@ -81,21 +86,21 @@ struct manpage {
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(1) mode: whole words, no keys */
-#define MANSEARCH_MAN 0x02 /* man(1) mode: string equality, no keys */
+ 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 */