summaryrefslogtreecommitdiffstats
path: root/include/manconfig.h.in
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--include/manconfig.h.in436
1 files changed, 436 insertions, 0 deletions
diff --git a/include/manconfig.h.in b/include/manconfig.h.in
new file mode 100644
index 0000000..5c3ad64
--- /dev/null
+++ b/include/manconfig.h.in
@@ -0,0 +1,436 @@
+/* @configure_input@
+ *
+ * manconfig.h.in: definitions and declarations used throughout man-db
+ *
+ * Copyright (C) 1994, 1995 Graeme W. Wilford. (Wilf.)
+ * Copyright (C) 2001, 2002 Colin Watson.
+ *
+ * This file is part of man-db.
+ *
+ * man-db is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * man-db is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with man-db; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*--------------------------------------------------------------------------*/
+/* This file contains the paths/binary locations of the programs used by */
+/* these utilities and various C pre-processor definitions that modify the */
+/* behaviour of the man-db suite. You may like to check that all of the */
+/* formatters are from the same package. Ie, that we are not using a native */
+/* UNIX nroff with GNU tbl. */
+/*--------------------------------------------------------------------------*/
+
+#ifndef MANCONFIG_H
+#define MANCONFIG_H
+
+#include "xvasprintf.h"
+
+/* STD_SECTIONS must contain all of your man hierarchy subdirectories. The
+ order is important. Manual pages will be displayed in this order. Ie
+ if "1" comes before "2", then a kill(1) will be displayed in preference to
+ kill(2), or if `man --all kill', it will be displayed first. Section names
+ may be multi-character, but this is non-standard and probably best
+ avoided. */
+
+#define STD_SECTIONS { \
+ "1", "n", "l", "8", "3", "0", "2", "5", "4", "9", "6", "7", NULL \
+}
+
+/* Some system's man pages require default pre-processing with perhaps tbl
+ or other formatters, DEFAULT_MANROFFSEQ can compensate by adding a list of
+ default pre-processors using the standard syntax of first letter.
+ ie "t" = tbl (the table pre-processor)
+ "te" = tbl, eqn (both the table and equation pre-processors)
+ DEFAULT_MANROFFSEQ can be overridden by command line arguments to man, the
+ environment variable $MANROFFSEQ, and by the manual page being formatted. */
+
+#if defined (__hpux) || (defined (__alpha) && !defined(__GLIBC__))
+# define DEFAULT_MANROFFSEQ "te"
+#elif defined (__ultrix)
+# define DEFAULT_MANROFFSEQ "t"
+#endif
+
+/* the magic cookie to request preprocessing */
+#define PP_COOKIE "'\\\" "
+
+/* uncomment the following line if manual pages require tbl by default */
+#ifndef DEFAULT_MANROFFSEQ
+#define DEFAULT_MANROFFSEQ "t"
+#endif
+
+/* By default, man-db will store a whatis referenced manual page in favour
+ of a stray cat page when they both share identical namespace. If you
+ would like to see a stray cat eg. kill(1) in favour of a kill(1) whatis
+ referenced to bash_builtins(1), uncomment the following line. */
+
+/* #define FAVOUR_STRAYCATS */
+
+/* The maximum number of manual page hierarchies expected in the manpath.
+ Also the maximum amount of non-comment lines in the config file. */
+#define MAXDIRS 128
+
+/* CATMODE is the mode of the formatted cat pages that we create. The man-db
+ package can be run in 4 main modes, 3 of which are relatively secure and
+ allow the cats to be non world writable. The `wide open' mode requires
+ CATMODE to be 0666. Edit if necessary, after reading the man-db manual */
+
+#define CATMODE 0644 /* u=rw,go=r */
+
+/* DBMODE is the mode of the created databases. As with CATMODE, secure
+ operation requires that the db's don't have world write access. In the
+ unlikely event that this is required, change to 0666.
+ For increased speed, at the cost of buffer cache, set the sticky bit
+ on databases so that they remain memory resident. To do this, OR the
+ required mode with 1000 and prepend a 0, eg 01644 */
+
+#define DBMODE 0644 /* u=rw,go=r */
+
+/* The name of the databases. DB_EXT depends on the database type in use */
+#define MAN_DB "/index" DB_EXT
+#define mkdbname(path) xasprintf ("%s%s", path, MAN_DB)
+
+/* The locations of the following files were determined by ../configure so
+ some of them may be incorrect. Edit as necessary */
+
+#ifndef PAGER
+# define PAGER "@pager@"
+#endif
+
+#ifndef CAT
+# define CAT "@cat@"
+#endif
+
+#ifndef WEB_BROWSER
+# define WEB_BROWSER "@browser@"
+#endif
+
+#ifndef TR
+# define TR "@tr@"
+#endif
+
+#ifndef GREP
+# define GREP "@grep@"
+#endif
+
+#ifdef HAS_TROFF
+# ifndef TROFF
+# define TROFF "@troff@"
+# endif
+#endif
+
+#ifndef NROFF_MISSING
+# ifndef NROFF
+# define NROFF "@nroff@"
+# endif
+#endif
+
+#ifndef EQN
+# define EQN "@eqn@"
+#endif
+
+#ifndef NEQN
+# define NEQN "@neqn@"
+#endif
+
+#ifndef TBL
+# define TBL "@tbl@"
+#endif
+
+#ifndef COL
+# define COL "@col@"
+#endif
+
+#ifndef VGRIND
+# define VGRIND "@vgrind@"
+#endif
+
+#ifndef REFER
+# define REFER "@refer@"
+#endif
+
+#ifndef GRAP
+# define GRAP "@grap@"
+#endif
+
+#ifndef PIC
+# define PIC "@pic@"
+#endif
+
+#ifndef OVERRIDE_DIR
+# define OVERRIDE_DIR "@override_dir@"
+#endif
+
+/*------------------------------------------------------------------*/
+/* The following definitions are best left alone by the uninitiated */
+/*------------------------------------------------------------------*/
+
+/* GNU grep flags (i)gnore case
+ (E)xtended regex
+ (w)hole word matches only */
+
+#ifndef WHATIS_GREP_FLAGS
+# define WHATIS_GREP_FLAGS "-i"
+#endif
+
+#ifndef APROPOS_GREP_FLAGS
+# define APROPOS_GREP_FLAGS "-iEw"
+#endif
+
+#ifndef APROPOS_REGEX_GREP_FLAGS
+# define APROPOS_REGEX_GREP_FLAGS "-iE"
+#endif
+
+/* GNU less flags (i)gnore case on search
+ * (x8) set tab stops to 8 spaces
+ * (R)aw control chars (but keep track of screen appearance)
+ * (m)ore display style
+ *
+ * If you change this, be sure to match the format with
+ * man.c:make_display_command().
+ */
+
+#define LESS_OPTS "-ix8RmPm%s$PM%s$"
+
+/* This is a minimal latin1 special characters to ascii translation table */
+#if !defined(TR_SET1) || !defined(TR_SET2)
+# define TR_SET1 " \'\\255\\267\\264\\327\'"
+# define TR_SET2 " \'\\055\\157\\047\\170\'"
+#endif
+
+#ifdef COMP_CAT
+/* This is the default compressor and compressed extension.
+ These are used for compressing cat pages. The compressor is likely to
+ be gzip or compress and the extension: .gz or .Z . Please make sure that
+ all of your cat pages have the same extension (whatever that may be) */
+
+# define COMPRESSOR "@compressor@"
+# define COMPRESS_EXT "@compress_ext@"
+#endif /* COMP_CAT */
+
+#ifdef COMP_SRC
+/* These are the currently supported decompressors. They are used for
+ decompressing cat pages and source nroff. To add further decompressors,
+ you will need to edit comp_src.h[.in] . Help is provided in the file */
+
+# define GUNZIP "@gunzip@"
+# define UNCOMPRESS "@uncompress@"
+# define BUNZIP2 "@bunzip2@"
+# define UNLZMA "@unlzma@"
+# define UNXZ "@unxz@"
+# define UNLZIP "@unlzip@"
+#endif /* COMP_SRC */
+
+/*-----------------------------------------------------------------------*/
+/* The things below here shouldn't really be changed unless you really */
+/* know what you are doing. */
+/*-----------------------------------------------------------------------*/
+
+/* my gcc specs file is hacked to define __profile__ if I compile with
+ the -p or -pg flag, to do this manually (needed if you want to know where
+ gmon.out ended up), uncomment the following line */
+/* #define __profile__ */
+
+/* GCC version checking borrowed from glibc. */
+#if defined(__GNUC__) && defined(__GNUC_MINOR__)
+# define GNUC_PREREQ(maj,min) \
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+#else
+# define GNUC_PREREQ(maj,min) 0
+#endif
+
+/* Does this compiler support format string checking? */
+#if GNUC_PREREQ(2,0)
+# define ATTRIBUTE_FORMAT_PRINTF(a,b) \
+ __attribute__ ((__format__ (__printf__, a, b)))
+#else
+# define ATTRIBUTE_FORMAT_PRINTF(a,b)
+#endif
+
+/* Does this compiler support marking variables as unused? */
+#if GNUC_PREREQ(2,4)
+# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+#else
+# define ATTRIBUTE_UNUSED
+#endif
+
+/* Does this compiler support marking functions as non-returning? */
+#if GNUC_PREREQ(2,5)
+# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
+#else
+# define ATTRIBUTE_NORETURN
+#endif
+
+/* Does this compiler support malloc return checking? */
+#if GNUC_PREREQ(2,96)
+# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+#else
+# define ATTRIBUTE_MALLOC
+#endif
+
+/* Does this compiler support unused result checking? */
+#if GNUC_PREREQ(3,4)
+# define ATTRIBUTE_WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__))
+#else
+# define ATTRIBUTE_WARN_UNUSED_RESULT
+#endif
+
+/* Does this compiler support sentinel checking? */
+#if GNUC_PREREQ(4,0)
+# define ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__))
+#else
+# define ATTRIBUTE_SENTINEL
+#endif
+
+/* If running checker, support the garbage detector, else don't */
+#ifdef __CHECKER__
+extern void __chkr_garbage_detector (void);
+# define chkr_garbage_detector() __chkr_garbage_detector()
+#else
+# define chkr_garbage_detector()
+#endif
+
+/* GNU gettext needs to know when the locale changes. This macro tells it. */
+#ifdef ENABLE_NLS
+# define locale_changed() \
+ do { \
+ extern int _nl_msg_cat_cntr; \
+ ++_nl_msg_cat_cntr; \
+ } while (0)
+#else /* !ENABLE_NLS */
+# define locale_changed()
+#endif /* ENABLE_NLS */
+
+/* This structure definition is only really needed if COMP_SRC==1, but it is
+ used in external declarations quite freely, so it's included
+ unconditionally */
+
+struct compression {
+ /* The following are const because they should be pointers to parts
+ * of strings allocated elsewhere and should not be written through
+ * or freed themselves.
+ */
+ const char *prog;
+ const char *ext;
+ /* The following should be freed when discarding an instance of this
+ * structure.
+ */
+ char *stem;
+};
+
+extern struct compression comp_list[];
+
+/*-------------------------------------*/
+/* Now for some function prototypes... */
+/*-------------------------------------*/
+
+/* some library function declarations */
+#include <stddef.h> /* for size_t */
+#include "xalloc.h"
+#include "xstrndup.h"
+extern char *create_tempdir (const char *template)
+ ATTRIBUTE_WARN_UNUSED_RESULT;
+
+extern int debug_level; /* shows whether -d issued */
+extern void init_debug (void);
+extern void debug (const char *message, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
+extern void debug_error (const char *message, ...)
+ ATTRIBUTE_FORMAT_PRINTF(1, 2);
+
+struct pipeline;
+
+/* compression.c */
+extern struct compression *comp_info (const char *filename, int want_stem);
+extern struct compression *comp_file (const char *filename);
+
+/* straycats.c */
+extern int straycats (const char *manpath);
+
+/* lexgrog.l */
+struct lexgrog;
+extern int find_name (const char *file, const char *filename,
+ struct lexgrog *p_lg, const char *encoding);
+extern int find_name_decompressed (struct pipeline *p, const char *filename,
+ struct lexgrog *p_lg);
+
+/* util.c */
+extern int is_changed (const char *fa, const char *fb);
+extern int is_directory (const char *path);
+extern char *escape_shell (const char *unesc);
+extern int remove_directory (const char *directory, int recurse);
+extern char *trim_spaces (const char *s);
+extern char *lang_dir (const char *filename);
+extern void init_locale (void);
+
+extern char *appendstr (char *, ...)
+ ATTRIBUTE_SENTINEL ATTRIBUTE_WARN_UNUSED_RESULT;
+
+extern int quiet; /* be quiet(er) if 1 */
+
+/*--------------------------*/
+/* Some general definitions */
+/*--------------------------*/
+
+#define MANPAGE 0
+#define CATPAGE 1
+
+/* exit codes */
+#define OK 0 /* success */
+#define FAIL 1 /* usage or syntax error */
+#define FATAL 2 /* operational error */
+#define CHILD_FAIL 3 /* child failed */
+#define NOT_FOUND 16 /* No action was taken */
+
+/* System or user catpaths? Allow bitwise disjunctions of these. */
+#define SYSTEM_CAT 1
+#define USER_CAT 2
+
+/* string macros */
+#define STREQ(a,b) (strcmp(a,b) == 0)
+#define STRNEQ(a,b,d) (strncmp(a,b,d) == 0)
+
+/* Functions in <ctype.h> require their argument to be either an unsigned
+ * char promoted to int or EOF. This macro helps get that right.
+ */
+#define CTYPE(func,arg) (func((unsigned char)(arg)))
+
+/* access(2), but with boolean semantics. */
+#define CAN_ACCESS(pathname, mode) (access (pathname, mode) == 0)
+
+/* FSSTND directories */
+#define CAT_ROOT "/var/catman" /* required by fsstnd() */
+#define MAN_ROOT "/usr" /* required by fsstnd() */
+/* FHS directories */
+#define FHS_CAT_ROOT "/var/cache/man" /* required by fsstnd() */
+#define FHS_MAN_ROOT "/usr/share" /* required by fsstnd() */
+
+/* some special database keys used for storing important info */
+#define VER_KEY "$version$" /* version key */
+#define VER_ID "2.5.0" /* version content */
+
+/* defines the ordered list of filters detected by lexgrog */
+enum { TBL_FILTER=0 /* tbl */
+ , EQN_FILTER /* eqn */
+ , PIC_FILTER /* pic */
+ , GRAP_FILTER /* grap */
+ , REF_FILTER /* refer */
+ , VGRIND_FILTER /* vgrind */
+ , MAX_FILTERS /* delimiter */
+ };
+
+typedef struct lexgrog {
+ int type;
+ char *whatis;
+ char *filters;
+} lexgrog;
+
+#endif /* MANCONFIG_H */