]> git.cameronkatri.com Git - mandoc.git/blobdiff - mansearch.h
we already parse the GNU tbl(7) "nospaces" option,
[mandoc.git] / mansearch.h
index e74df2ee2938849112b1ef1d63c45f787d0c8092..8a0aa121d0c6a50404fc37cdb7d197248c4362d9 100644 (file)
@@ -1,7 +1,7 @@
-/*     $Id: mansearch.h,v 1.20 2014/11/18 01:15:21 schwarze Exp $ */
+/*     $Id: mansearch.h,v 1.30 2019/04/30 18:51:57 schwarze Exp $ */
 /*
  * Copyright (c) 2012 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2013, 2014, 2016, 2017 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
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
-#ifndef MANSEARCH_H
-#define MANSEARCH_H
 
 #define        MANDOC_DB        "mandoc.db"
+#define        MANDOCDB_MAGIC   0x3a7d0cdb
+#define        MANDOCDB_VERSION 1
+
+#define        MACRO_MAX        36
+#define        KEY_arch         0
+#define        KEY_sec          1
+#define        KEY_Nm           38
+#define        KEY_Nd           39
+#define        KEY_MAX          40
 
 #define        TYPE_arch        0x0000000000000001ULL
 #define        TYPE_sec         0x0000000000000002ULL
 #define        NAME_FILE        0x0000004000000010ULL
 #define        NAME_MASK        0x000000000000001fULL
 
-#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   form {
+       FORM_SRC = 1,   /* Format is mdoc(7) or man(7). */
+       FORM_CAT,       /* Manual page is preformatted. */
+       FORM_NONE       /* Format is unknown. */
+};
 
 enum   argmode {
        ARG_FILE = 0,
@@ -84,10 +92,10 @@ 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 */
        uint64_t         bits; /* name type mask */
+       size_t           ipath; /* number of the manpath */
        int              sec; /* section number, 10 means invalid */
-       int              form; /* 0 == catpage */
+       enum form        form;
 };
 
 struct mansearch {
@@ -98,9 +106,9 @@ struct       mansearch {
        int              firstmatch; /* first matching database only */
 };
 
-__BEGIN_DECLS
 
-int    mansearch_setup(int);
+struct manpaths;
+
 int    mansearch(const struct mansearch *cfg, /* options */
                const struct manpaths *paths, /* manpaths */
                int argc, /* size of argv */
@@ -108,7 +116,3 @@ int mansearch(const struct mansearch *cfg, /* options */
                struct manpage **res, /* results */
                size_t *ressz); /* results returned */
 void   mansearch_free(struct manpage *, size_t);
-
-__END_DECLS
-
-#endif /* MANSEARCH_H */