]> git.cameronkatri.com Git - mandoc.git/blobdiff - apropos.c
add a LICENSE file for clarity and for the convenience of porters
[mandoc.git] / apropos.c
index f9f7113818d8cd49b068b0a687422851d0081727..80b6bc6d036e965fa85926ceb1303c3360e6b1c6 100644 (file)
--- 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 <kristaps@bsd.lv>
 /*
  * Copyright (c) 2012 Kristaps Dzonsons <kristaps@bsd.lv>
+ * Copyright (c) 2013 Ingo Schwarze <schwarze@openbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
  *
  * 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"
 
 #include "manpath.h"
 #include "mansearch.h"
 
+
 int
 main(int argc, char *argv[])
 {
 int
 main(int argc, char *argv[])
 {
@@ -41,6 +43,7 @@ main(int argc, char *argv[])
        char            *defpaths, *auxpaths;
        char            *conf_file;
        char            *progname;
        char            *defpaths, *auxpaths;
        char            *conf_file;
        char            *progname;
+       const char      *outkey;
        extern char     *optarg;
        extern int       optind;
 
        extern char     *optarg;
        extern int       optind;
 
@@ -57,22 +60,26 @@ main(int argc, char *argv[])
 
        auxpaths = defpaths = NULL;
        conf_file = NULL;
 
        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) {
                switch (ch) {
-               case ('C'):
+               case 'C':
                        conf_file = optarg;
                        break;
                        conf_file = optarg;
                        break;
-               case ('M'):
+               case 'M':
                        defpaths = optarg;
                        break;
                        defpaths = optarg;
                        break;
-               case ('m'):
+               case 'm':
                        auxpaths = optarg;
                        break;
                        auxpaths = optarg;
                        break;
-               case ('S'):
+               case 'O':
+                       outkey = optarg;
+                       break;
+               case 'S':
                        search.arch = optarg;
                        break;
                        search.arch = optarg;
                        break;
-               case ('s'):
+               case 's':
                        search.sec = optarg;
                        break;
                default:
                        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);
        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++) {
        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].file);
                free(res[i].names);
-               free(res[i].desc);
+               free(res[i].output);
        }
 
        free(res);
        }
 
        free(res);
+       mansearch_setup(0);
        return(sz ? EXIT_SUCCESS : EXIT_FAILURE);
 usage:
        fprintf(stderr, "usage: %s [-C file] [-M path] [-m path] "
        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);
                        "[-S arch] [-s section]%s ...\n", progname,
                        whatis ? " name" : "\n               expression");
        return(EXIT_FAILURE);