X-Git-Url: https://git.cameronkatri.com/mandoc.git/blobdiff_plain/a7ed20ecbd09e040f50a359f60f9ac351bafd50f..1f555653eb03957679b5749f7ac779126c3c2627:/apropos.c diff --git a/apropos.c b/apropos.c index f9f71138..80b6bc6d 100644 --- a/apropos.c +++ b/apropos.c @@ -1,6 +1,7 @@ -/* $Id: apropos.c,v 1.35 2013/12/27 18:51:25 schwarze Exp $ */ +/* $Id: apropos.c,v 1.39 2014/04/20 16:46:04 schwarze Exp $ */ /* * Copyright (c) 2012 Kristaps Dzonsons + * Copyright (c) 2013 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -30,6 +31,7 @@ #include "manpath.h" #include "mansearch.h" + int main(int argc, char *argv[]) { @@ -41,6 +43,7 @@ main(int argc, char *argv[]) char *defpaths, *auxpaths; char *conf_file; char *progname; + const char *outkey; extern char *optarg; extern int optind; @@ -57,22 +60,26 @@ main(int argc, char *argv[]) auxpaths = defpaths = NULL; conf_file = NULL; + outkey = "Nd"; - while (-1 != (ch = getopt(argc, argv, "C:M:m:S:s:"))) + while (-1 != (ch = getopt(argc, argv, "C:M:m:O:S:s:"))) switch (ch) { - case ('C'): + case 'C': conf_file = optarg; break; - case ('M'): + case 'M': defpaths = optarg; break; - case ('m'): + case 'm': auxpaths = optarg; break; - case ('S'): + case 'O': + outkey = optarg; + break; + case 'S': search.arch = optarg; break; - case ('s'): + case 's': search.sec = optarg; break; default: @@ -89,23 +96,27 @@ main(int argc, char *argv[]) search.flags = whatis ? MANSEARCH_WHATIS : 0; manpath_parse(&paths, conf_file, defpaths, auxpaths); - ch = mansearch(&search, &paths, argc, argv, &res, &sz); + mansearch_setup(1); + ch = mansearch(&search, &paths, argc, argv, outkey, &res, &sz); manpath_free(&paths); if (0 == ch) goto usage; for (i = 0; i < sz; i++) { - printf("%s - %s\n", res[i].names, res[i].desc); + printf("%s - %s\n", res[i].names, + NULL == res[i].output ? "" : res[i].output); free(res[i].file); free(res[i].names); - free(res[i].desc); + free(res[i].output); } free(res); + mansearch_setup(0); return(sz ? EXIT_SUCCESS : EXIT_FAILURE); usage: fprintf(stderr, "usage: %s [-C file] [-M path] [-m path] " + "[-O outkey] " "[-S arch] [-s section]%s ...\n", progname, whatis ? " name" : "\n expression"); return(EXIT_FAILURE);