vendor.h revision 3653852e
11abf7346Smrg/*
21abf7346Smrg
31abf7346SmrgCopyright (c) 1991  X Consortium
41abf7346Smrg
51abf7346SmrgPermission is hereby granted, free of charge, to any person obtaining
61abf7346Smrga copy of this software and associated documentation files (the
71abf7346Smrg"Software"), to deal in the Software without restriction, including
81abf7346Smrgwithout limitation the rights to use, copy, modify, merge, publish,
91abf7346Smrgdistribute, sublicense, and/or sell copies of the Software, and to
101abf7346Smrgpermit persons to whom the Software is furnished to do so, subject to
111abf7346Smrgthe following conditions:
121abf7346Smrg
131abf7346SmrgThe above copyright notice and this permission notice shall be included
141abf7346Smrgin all copies or substantial portions of the Software.
151abf7346Smrg
161abf7346SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
171abf7346SmrgOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
181abf7346SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
191abf7346SmrgIN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
201abf7346SmrgOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
211abf7346SmrgARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
221abf7346SmrgOTHER DEALINGS IN THE SOFTWARE.
231abf7346Smrg
241abf7346SmrgExcept as contained in this notice, the name of the X Consortium shall
251abf7346Smrgnot be used in advertising or otherwise to promote the sale, use or
261abf7346Smrgother dealings in this Software without prior written authorization
271abf7346Smrgfrom the X Consortium.
281abf7346Smrg
291abf7346Smrg*/
301abf7346Smrg
311abf7346Smrg/* Vendor-specific definitions */
321abf7346Smrg#ifdef HAVE_CONFIG_H
331abf7346Smrg# include "config.h"
341abf7346Smrg#endif
351abf7346Smrg
361abf7346Smrg#ifdef CSRG_BASED
371abf7346Smrg#include <sys/param.h>
381abf7346Smrg#endif
391abf7346Smrg
401abf7346Smrg#define SUFFIX "suffix"
411abf7346Smrg#define FOLD "fold"
421abf7346Smrg#define FOLDSUFFIX "foldsuffix"
431abf7346Smrg#define MNULL 0
441abf7346Smrg#define MSUFFIX 1
451abf7346Smrg#define MFOLD 2
461abf7346Smrg#define MFOLDSUFFIX 3
471abf7346Smrg
481abf7346Smrg/*
491abf7346Smrg * The directories to search.  Assume that the manual directories are more
501abf7346Smrg * complete than the cat directories.
511abf7346Smrg */
521abf7346Smrg
5336ffeb23Smrg#define SEARCHDIR  MAN
541abf7346Smrg
5536ffeb23Smrg#if (defined(sgi) || (defined(SVR4) && !defined(sun)) || (defined(BSD) && (BSD >= 199103)) || defined(linux) || defined(__CYGWIN__) )
561abf7346Smrg# define SEARCHOTHER CAT
571abf7346Smrg#endif
581abf7346Smrg
591abf7346Smrg/*
601abf7346Smrg * The default manual page directory.
611abf7346Smrg *
6236ffeb23Smrg * The MANPATH environment variable will override this.
631abf7346Smrg */
641abf7346Smrg
651abf7346Smrg#ifndef SYSMANPATH
661abf7346Smrg
6736ffeb23Smrg#if defined(__bsdi__)
681abf7346Smrg#  define SYSMANPATH "/usr/share/man:/usr/contrib/man:/usr/contrib/isode/man:/usr/local/man"
691abf7346Smrg#elif defined(__OpenBSD__) || defined(__DARWIN__)
701abf7346Smrg#  define SYSMANPATH "/usr/share/man:/usr/local/man:/usr/X11R6/man"
711abf7346Smrg#elif defined(SVR4) && defined(sun)
721abf7346Smrg#  define SYSMANPATH "/usr/share/man:/usr/X11/man:/usr/openwin/share/man:/usr/dt/share/man:/usr/sfw/share/man"
731abf7346Smrg#elif defined(SVR4) || defined(__osf__) || (defined(BSD) && (BSD >= 199103))
741abf7346Smrg#  define SYSMANPATH "/usr/share/man"
751abf7346Smrg#elif defined(sgi)
761abf7346Smrg#  define SYSMANPATH "/usr/catman/a_man:/usr/catman/g_man:/usr/catman/p_man:/usr/catman/u_man:/usr/man/p_man:/usr/man/u_man:/usr/man"
771abf7346Smrg#endif
781abf7346Smrg
791abf7346Smrg#ifndef SYSMANPATH
801abf7346Smrg#  define SYSMANPATH "/usr/man"
811abf7346Smrg#endif
821abf7346Smrg
831abf7346Smrg#endif
841abf7346Smrg
851abf7346Smrg/*
861abf7346Smrg * Compression Definitions.
871abf7346Smrg */
881abf7346Smrg
8936ffeb23Smrg#if defined(sgi)
901abf7346Smrg#  define COMPRESSION_EXTENSION   "z"
911abf7346Smrg#  define UNCOMPRESS_FORMAT       "pcat %s > %s"
9236ffeb23Smrg#  define NO_COMPRESS           /* mac can't handle using pack as a filter and
9336ffeb23Smrg                                   xman needs it to be done that way. */
941abf7346Smrg#elif defined (ISC) || defined(__SCO__) || defined(__UNIXWARE__)
9536ffeb23Smrg#  define COMPRESSION_EXTENSION   "Z"           /* dummy */
961abf7346Smrg#  if !defined(__SCO__) && !defined(__UNIXWARE__)
9736ffeb23Smrg#    define COMPRESSION_EXTENSIONS  "zZF"       /* pack, compress, freeze */
981abf7346Smrg#  else
9936ffeb23Smrg#    define COMPRESSION_EXTENSIONS  "zZ"        /* pack, compress */
1001abf7346Smrg#  endif
1011abf7346Smrg#  define UNCOMPRESS_FORMAT       uncompress_format
1021abf7346Smrg#  define UNCOMPRESS_FORMAT_1     "pcat %s > %s"
1031abf7346Smrg#  define UNCOMPRESS_FORMAT_2     "zcat < %s > %s"
1041abf7346Smrg#  define UNCOMPRESS_FORMAT_3     "fcat < %s > %s"
1051abf7346Smrg#  define NO_COMPRESS
1061abf7346Smrg#else
1071abf7346Smrg#  define COMPRESSION_EXTENSION "Z"
10836ffeb23Smrg#  define UNCOMPRESS_FORMAT     "zcat < %s >> %s"
1091abf7346Smrg#  define COMPRESS              "compress"
1101abf7346Smrg#  define GZIP_EXTENSION "gz"
11136ffeb23Smrg#  define GUNZIP_FORMAT "gzip -c -d < %s >> %s"
1121abf7346Smrg#  define GZIP_COMPRESS "gzip"
113189427b7Smrg#  define BZIP2_EXTENSION "bz2"
11436ffeb23Smrg#  define BUNZIP2_FORMAT "bunzip2 -c -d < %s >> %s"
115189427b7Smrg#  define BZIP2_COMPRESS "bzip2"
11636ffeb23Smrg#  define LZMA_EXTENSION "lzma"
11736ffeb23Smrg#  define UNLZMA_FORMAT "unlzma -c -d < %s >> %s"
118189427b7Smrg#  define LZMA_COMPRESS "lzma"
1191abf7346Smrg#endif
1201abf7346Smrg
1211abf7346Smrg
1221abf7346Smrg
1231abf7346Smrg/*
1241abf7346Smrg * The command filters for the manual and apropos searches.
1251abf7346Smrg */
1261abf7346Smrg
12736ffeb23Smrg#if defined(hpux)
1281abf7346Smrg#  define NO_MANPATH_SUPPORT
1291abf7346Smrg#endif
1301abf7346Smrg
13136ffeb23Smrg#ifdef NO_MANPATH_SUPPORT
13236ffeb23Smrg#  define APROPOS_FORMAT ("man -k %s | pr -h Apropos >> %s")
1331abf7346Smrg#else
13436ffeb23Smrg#  define APROPOS_FORMAT ("man -M %s -k %s | pr -h Apropos >> %s")
1351abf7346Smrg#endif
1361abf7346Smrg
1371abf7346Smrg#ifndef HANDLE_ROFFSEQ
13836ffeb23Smrg# if defined(CSRG_BASED)
1391abf7346Smrg#  define FORMAT "| eqn | tbl | nroff -mandoc"
1401abf7346Smrg# elif defined(BSD) && (BSD >= 199103)
1411abf7346Smrg#  define FORMAT "| eqn | tbl | nroff -man"
142189427b7Smrg# elif defined(linux) || defined(__CYGWIN__)
1431abf7346Smrg#  define FORMAT "| pic | eqn | tbl -Tlatin1 | GROFF_NO_SGR= groff -Tlatin1 -mandoc"
1441abf7346Smrg# else
14536ffeb23Smrg#  define FORMAT "| neqn | nroff -man"  /* The format command. */
1461abf7346Smrg# endif
1471abf7346Smrg# define TBL "tbl"
14836ffeb23Smrg#else                           /* HANDLE_ROFFSEQ */
1491abf7346Smrg# if defined(linux)
1501abf7346Smrg#  define ZSOELIM	"zsoelim"
1511abf7346Smrg# else
1521abf7346Smrg#  define ZSOELIM	"soelim"
1531abf7346Smrg#endif
1541abf7346Smrg# define EQN		"eqn"
1551abf7346Smrg# define TBL		"tbl"
1561abf7346Smrg# define GRAP		"grap"
1575e248323Swiz# define ROFF_PIC	"pic"
1581abf7346Smrg# define VGRIND		"vgrind"
1591abf7346Smrg# define REFER		"refer"
1601abf7346Smrg# if defined(CSRG_BASED)
1611abf7346Smrg#  define FORMAT	"nroff -mandoc"
1623653852eSmrg# elif defined(linux) || defined(__CYGWIN__)
1631abf7346Smrg#  define FORMAT	"GROFF_NO_SGR= groff -Tlatin1 -mandoc"
1641abf7346Smrg# elif defined(__DARWIN__)
1651abf7346Smrg#  define FORMAT	"nroff -man"
1661abf7346Smrg# else
1673653852eSmrg#  define FORMAT	"GROFF_NO_SGR= groff -Tlatin1 -man"
1681abf7346Smrg# endif
1691abf7346Smrg# define DEFAULT_MANROFFSEQ "et"
17036ffeb23Smrg#endif                          /*HANDLE_ROFFSEQ */
1711abf7346Smrg
1721abf7346Smrg/*
1731abf7346Smrg * Names of the man and cat dirs.
1741abf7346Smrg */
1751abf7346Smrg
1761abf7346Smrg#ifdef __bsdi__
1771abf7346Smrg#define MAN "cat"
1781abf7346Smrg#else
1791abf7346Smrg#define MAN "man"
1801abf7346Smrg#endif
1811abf7346Smrg
18236ffeb23Smrg#if defined(SCO)
1831abf7346Smrg#  define CAT "cat."
1841abf7346Smrg#else
1851abf7346Smrg#  define CAT "cat"
1861abf7346Smrg#endif
1871abf7346Smrg
1881abf7346Smrg/* Solaris has nroff man pages in "man" and sgml man pages in "sman" */
1891abf7346Smrg#if defined(sun) && defined(SVR4)
1901abf7346Smrg#  define SFORMAT		"/usr/lib/sgml/sgml2roff"
1911abf7346Smrg#  define SMAN			"sman"
1921abf7346Smrg#  undef SEARCHOTHER
1931abf7346Smrg#  define SEARCHOTHER 		SMAN
19436ffeb23Smrg#  define SGMLENT_EXTENSION	"ent"   /* SGML entity files end in ".ent" */
1951abf7346Smrg#endif
1961abf7346Smrg
1971abf7346Smrg
1981abf7346Smrgtypedef struct _SectionList {
19936ffeb23Smrg    struct _SectionList *next;
20036ffeb23Smrg    char *label;                /* section label */
20136ffeb23Smrg    char *directory;            /* section directory */
20236ffeb23Smrg    int flags;
2031abf7346Smrg} SectionList;
2041abf7346Smrg
20536ffeb23Smrgextern char *CreateManpageName(const char *entry, int section, int flags);
20636ffeb23Smrgextern void AddStandardSections(SectionList ** list, const char *path);
20736ffeb23Smrgextern void AddNewSection(SectionList ** list, const char *path,
20836ffeb23Smrg                          const char *file, const char *label, int flags);
209