]> git.cameronkatri.com Git - mandoc.git/blobdiff - mansearch.h
Fix a regression in term.c rev. 1.229 reported by bentley@:
[mandoc.git] / mansearch.h
index 2832ce31053ad6461f14227c221a5cb3c37613e4..0aab4e763714e0b2fc7db971b88643f144fd157f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mansearch.h,v 1.14 2014/07/12 14:00:25 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(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 */