summaryrefslogtreecommitdiffstats
path: root/apropos.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2012-06-09 14:11:15 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2012-06-09 14:11:15 +0000
commit7df88ef65ce4e70a7d52392e97db37992beb2d7a (patch)
treee8a8606f2a59a93b95449a9e9446f99b129dc482 /apropos.c
parent515587095ff4cfdd1d5ca7e77a61a13027c477af (diff)
downloadmandoc-7df88ef65ce4e70a7d52392e97db37992beb2d7a.tar.gz
Merge whatis.1 into apropos.1 (and remove), add whatis bits to apropos
(via mansearch), and merge mandocdb.h into mansearch.h (and remove).
Diffstat (limited to 'apropos.c')
-rw-r--r--apropos.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/apropos.c b/apropos.c
index 1fd3a528..5c953c7d 100644
--- a/apropos.c
+++ b/apropos.c
@@ -32,11 +32,11 @@
int
main(int argc, char *argv[])
{
- int ch;
+ int ch, whatis;
+ struct mansearch search;
size_t i, sz;
struct manpage *res;
- char *conf_file, *defpaths, *auxpaths,
- *arch, *sec;
+ char *conf_file, *defpaths, *auxpaths;
struct manpaths paths;
char *progname;
extern char *optarg;
@@ -48,8 +48,10 @@ main(int argc, char *argv[])
else
++progname;
- auxpaths = defpaths = conf_file = arch = sec = NULL;
+ auxpaths = defpaths = conf_file = NULL;
memset(&paths, 0, sizeof(struct manpaths));
+ memset(&search, 0, sizeof(struct mansearch));
+ whatis = (0 == strcmp(progname, "whatis"));
while (-1 != (ch = getopt(argc, argv, "C:M:m:S:s:")))
switch (ch) {
@@ -63,10 +65,10 @@ main(int argc, char *argv[])
auxpaths = optarg;
break;
case ('S'):
- arch = optarg;
+ search.arch = optarg;
break;
case ('s'):
- sec = optarg;
+ search.sec = optarg;
break;
default:
goto usage;
@@ -78,8 +80,11 @@ main(int argc, char *argv[])
if (0 == argc)
goto usage;
+ search.deftype = whatis ? TYPE_Nm : TYPE_Nm | TYPE_Nd;
+ search.flags = whatis ? MANSEARCH_WHATIS : 0;
+
manpath_parse(&paths, conf_file, defpaths, auxpaths);
- ch = mansearch(&paths, arch, sec, argc, argv, &res, &sz);
+ ch = mansearch(&search, &paths, argc, argv, &res, &sz);
manpath_free(&paths);
if (0 == ch)