vendor.h revision 189427b7
11abf7346Smrg/* $XConsortium: vendor.h,v 1.12 94/04/17 20:44:00 rws Exp $ */
21abf7346Smrg/* $XdotOrg: xc/programs/xman/vendor.h,v 1.4 2004/10/18 14:21:47 eich Exp $ */
31abf7346Smrg/*
41abf7346Smrg
51abf7346SmrgCopyright (c) 1991  X Consortium
61abf7346Smrg
71abf7346SmrgPermission is hereby granted, free of charge, to any person obtaining
81abf7346Smrga copy of this software and associated documentation files (the
91abf7346Smrg"Software"), to deal in the Software without restriction, including
101abf7346Smrgwithout limitation the rights to use, copy, modify, merge, publish,
111abf7346Smrgdistribute, sublicense, and/or sell copies of the Software, and to
121abf7346Smrgpermit persons to whom the Software is furnished to do so, subject to
131abf7346Smrgthe following conditions:
141abf7346Smrg
151abf7346SmrgThe above copyright notice and this permission notice shall be included
161abf7346Smrgin all copies or substantial portions of the Software.
171abf7346Smrg
181abf7346SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
191abf7346SmrgOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
201abf7346SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
211abf7346SmrgIN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
221abf7346SmrgOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
231abf7346SmrgARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
241abf7346SmrgOTHER DEALINGS IN THE SOFTWARE.
251abf7346Smrg
261abf7346SmrgExcept as contained in this notice, the name of the X Consortium shall
271abf7346Smrgnot be used in advertising or otherwise to promote the sale, use or
281abf7346Smrgother dealings in this Software without prior written authorization
291abf7346Smrgfrom the X Consortium.
301abf7346Smrg
311abf7346Smrg*/
321abf7346Smrg/* $XFree86: xc/programs/xman/vendor.h,v 1.13 2003/07/29 21:16:56 dawes Exp $ */
331abf7346Smrg
341abf7346Smrg/* Vendor-specific definitions */
351abf7346Smrg#ifdef HAVE_CONFIG_H
361abf7346Smrg# include "config.h"
371abf7346Smrg#endif
381abf7346Smrg
391abf7346Smrg#ifdef CSRG_BASED
401abf7346Smrg#include <sys/param.h>
411abf7346Smrg#endif
421abf7346Smrg
431abf7346Smrg#define SUFFIX "suffix"
441abf7346Smrg#define FOLD "fold"
451abf7346Smrg#define FOLDSUFFIX "foldsuffix"
461abf7346Smrg#define MNULL 0
471abf7346Smrg#define MSUFFIX 1
481abf7346Smrg#define MFOLD 2
491abf7346Smrg#define MFOLDSUFFIX 3
501abf7346Smrg
511abf7346Smrg/*
521abf7346Smrg * The directories to search.  Assume that the manual directories are more
531abf7346Smrg * complete than the cat directories.
541abf7346Smrg */
551abf7346Smrg
561abf7346Smrg#if ( defined(UTEK) || defined(apollo) || defined(Lynx) )
571abf7346Smrg#  define SEARCHDIR  CAT
581abf7346Smrg#else
591abf7346Smrg#  define SEARCHDIR  MAN
601abf7346Smrg#endif
611abf7346Smrg
62189427b7Smrg#if ( defined(sgi) || (defined(i386) && (defined(SYSV) || defined(SVR4))  && !defined(sun)) || (defined(BSD) && (BSD >= 199103)) || defined(linux) || defined(__CYGWIN__) )
631abf7346Smrg# define SEARCHOTHER CAT
641abf7346Smrg#endif
651abf7346Smrg
661abf7346Smrg/*
671abf7346Smrg * The default manual page directory.
681abf7346Smrg *
691abf7346Smrg * The MANPATH enviornment variable will override this.
701abf7346Smrg */
711abf7346Smrg
721abf7346Smrg#ifndef SYSMANPATH
731abf7346Smrg
741abf7346Smrg#if defined(macII)
751abf7346Smrg#  define SYSMANPATH "/usr/catman/u_man:/usr/catman/a_man"
761abf7346Smrg#elif defined(__bsdi__)
771abf7346Smrg#  define SYSMANPATH "/usr/share/man:/usr/contrib/man:/usr/contrib/isode/man:/usr/local/man"
781abf7346Smrg#elif defined(__OpenBSD__) || defined(__DARWIN__)
791abf7346Smrg#  define SYSMANPATH "/usr/share/man:/usr/local/man:/usr/X11R6/man"
801abf7346Smrg#elif defined(SVR4) && defined(sun)
811abf7346Smrg#  define SYSMANPATH "/usr/share/man:/usr/X11/man:/usr/openwin/share/man:/usr/dt/share/man:/usr/sfw/share/man"
821abf7346Smrg#elif defined(SVR4) || defined(__osf__) || (defined(BSD) && (BSD >= 199103))
831abf7346Smrg#  define SYSMANPATH "/usr/share/man"
841abf7346Smrg#elif defined(hcx)
851abf7346Smrg#  define SYSMANPATH "/usr/catman/local_man:/usr/catman/u_man:/usr/catman/a_man:/usr/catman/p_man:/usr/catman/ada_man"
861abf7346Smrg#elif defined(SYSV) && defined(i386) && !defined(__SCO__) && !defined(sun)
871abf7346Smrg#  define SYSMANPATH "/usr/catman/u_man:/usr/catman/p_man"
881abf7346Smrg#elif defined(sgi)
891abf7346Smrg#  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"
901abf7346Smrg#endif
911abf7346Smrg
921abf7346Smrg#ifndef SYSMANPATH
931abf7346Smrg#  define SYSMANPATH "/usr/man"
941abf7346Smrg#endif
951abf7346Smrg
961abf7346Smrg#endif
971abf7346Smrg
981abf7346Smrg/*
991abf7346Smrg * Compression Definitions.
1001abf7346Smrg */
1011abf7346Smrg
1021abf7346Smrg#if defined( macII ) || defined( hcx ) || \
1031abf7346Smrg	(defined(SYSV) && defined(i386) && !defined(ISC) && \
1041abf7346Smrg	!defined(__UNIXWARE__) && !defined(__SCO__) && !defined(sun)) || defined(sgi)
1051abf7346Smrg#  define COMPRESSION_EXTENSION   "z"
1061abf7346Smrg#  define UNCOMPRESS_FORMAT       "pcat %s > %s"
1071abf7346Smrg#  define NO_COMPRESS		/* mac can't handle using pack as a filter and
1081abf7346Smrg				   xman needs it to be done that way. */
1091abf7346Smrg#elif defined(UTEK)
1101abf7346Smrg#  define COMPRESSION_EXTENSION "C"
1111abf7346Smrg#  define UNCOMPRESS_FORMAT     "ccat < %s > %s"
1121abf7346Smrg#  define COMPRESS              "compact"
1131abf7346Smrg#elif defined (ISC) || defined(__SCO__) || defined(__UNIXWARE__)
1141abf7346Smrg#  define COMPRESSION_EXTENSION   "Z"     /* dummy */
1151abf7346Smrg#  if !defined(__SCO__) && !defined(__UNIXWARE__)
1161abf7346Smrg#    define COMPRESSION_EXTENSIONS  "zZF" /* pack, compress, freeze */
1171abf7346Smrg#  else
1181abf7346Smrg#    define COMPRESSION_EXTENSIONS  "zZ"  /* pack, compress */
1191abf7346Smrg#  endif
1201abf7346Smrg#  define UNCOMPRESS_FORMAT       uncompress_format
1211abf7346Smrg#  define UNCOMPRESS_FORMAT_1     "pcat %s > %s"
1221abf7346Smrg#  define UNCOMPRESS_FORMAT_2     "zcat < %s > %s"
1231abf7346Smrg#  define UNCOMPRESS_FORMAT_3     "fcat < %s > %s"
1241abf7346Smrg#  define NO_COMPRESS
1251abf7346Smrg#else
1261abf7346Smrg#  define COMPRESSION_EXTENSION "Z"
1271abf7346Smrg#  ifndef HAS_MKSTEMP
1281abf7346Smrg#    define UNCOMPRESS_FORMAT     "zcat < %s > %s"
1291abf7346Smrg#  else
1301abf7346Smrg#    define UNCOMPRESS_FORMAT     "zcat < %s >> %s"
1311abf7346Smrg#  endif
1321abf7346Smrg#  define COMPRESS              "compress"
1331abf7346Smrg#  define GZIP_EXTENSION "gz"
1341abf7346Smrg#  ifndef HAS_MKSTEMP
1351abf7346Smrg#    define GUNZIP_FORMAT "gzip -c -d < %s > %s"
1361abf7346Smrg#  else
1371abf7346Smrg#    define GUNZIP_FORMAT "gzip -c -d < %s >> %s"
1381abf7346Smrg#  endif
1391abf7346Smrg#  define GZIP_COMPRESS "gzip"
140189427b7Smrg#  define BZIP2_EXTENSION "bz2"
141189427b7Smrg#  define LZMA_EXTENSION "lzma"
142189427b7Smrg#  ifndef HAS_MKSTEMP
143189427b7Smrg#    define BUNZIP2_FORMAT "bunzip2 -c -d < %s > %s"
144189427b7Smrg#    define UNLZMA_FORMAT "unlzma -c -d < %s > %s"
145189427b7Smrg#  else
146189427b7Smrg#    define BUNZIP2_FORMAT "bunzip2 -c -d < %s >> %s"
147189427b7Smrg#    define UNLZMA_FORMAT "unlzma -c -d < %s >> %s"
148189427b7Smrg#  endif
149189427b7Smrg#  define BZIP2_COMPRESS "bzip2"
150189427b7Smrg#  define LZMA_COMPRESS "lzma"
1511abf7346Smrg#endif
1521abf7346Smrg
1531abf7346Smrg
1541abf7346Smrg
1551abf7346Smrg/*
1561abf7346Smrg * The command filters for the manual and apropos searches.
1571abf7346Smrg */
1581abf7346Smrg
1591abf7346Smrg#if (defined(hpux) || defined(macII) || defined(CRAY) || defined(ultrix) || \
1601abf7346Smrg	defined(hcx) )
1611abf7346Smrg#  define NO_MANPATH_SUPPORT
1621abf7346Smrg#endif
1631abf7346Smrg
1641abf7346Smrg#ifndef HAS_MKSTEMP
1651abf7346Smrg#  ifdef NO_MANPATH_SUPPORT
1661abf7346Smrg#    define APROPOS_FORMAT ("man -k %s | pr -h Apropos > %s")
1671abf7346Smrg#  else
1681abf7346Smrg#    define APROPOS_FORMAT ("man -M %s -k %s | pr -h Apropos > %s")
1691abf7346Smrg#  endif
1701abf7346Smrg#else
1711abf7346Smrg/* with mkstemp the temp output file is already created */
1721abf7346Smrg#  ifdef NO_MANPATH_SUPPORT
1731abf7346Smrg#    define APROPOS_FORMAT ("man -k %s | pr -h Apropos >> %s")
1741abf7346Smrg#  else
1751abf7346Smrg#    define APROPOS_FORMAT ("man -M %s -k %s | pr -h Apropos >> %s")
1761abf7346Smrg#  endif
1771abf7346Smrg#endif
1781abf7346Smrg
1791abf7346Smrg#ifndef HANDLE_ROFFSEQ
1801abf7346Smrg# if defined(ultrix)
1811abf7346Smrg#  define FORMAT "| nroff -man"             /* The format command. */
1821abf7346Smrg# elif defined(CSRG_BASED)
1831abf7346Smrg#  define FORMAT "| eqn | tbl | nroff -mandoc"
1841abf7346Smrg# elif defined(BSD) && (BSD >= 199103)
1851abf7346Smrg#  define FORMAT "| eqn | tbl | nroff -man"
186189427b7Smrg# elif defined(linux) || defined(__CYGWIN__)
1871abf7346Smrg#  define FORMAT "| pic | eqn | tbl -Tlatin1 | GROFF_NO_SGR= groff -Tlatin1 -mandoc"
1881abf7346Smrg# else
1891abf7346Smrg#  define FORMAT "| neqn | nroff -man"      /* The format command. */
1901abf7346Smrg# endif
1911abf7346Smrg# define TBL "tbl"
1921abf7346Smrg#else /* HANDLE_ROFFSEQ */
1931abf7346Smrg# if defined(linux)
1941abf7346Smrg#  define ZSOELIM	"zsoelim"
1951abf7346Smrg# else
1961abf7346Smrg#  define ZSOELIM	"soelim"
1971abf7346Smrg#endif
1981abf7346Smrg# define EQN		"eqn"
1991abf7346Smrg# define TBL		"tbl"
2001abf7346Smrg# define GRAP		"grap"
2018dd211caSchristos# define XMAN_PIC	"pic"
2021abf7346Smrg# define VGRIND		"vgrind"
2031abf7346Smrg# define REFER		"refer"
2041abf7346Smrg# if defined(CSRG_BASED)
2051abf7346Smrg#  define FORMAT	"nroff -mandoc"
2061abf7346Smrg# elif defined(linux)
2071abf7346Smrg#  define FORMAT	"GROFF_NO_SGR= groff -Tlatin1 -mandoc"
2081abf7346Smrg# elif defined(__DARWIN__)
2091abf7346Smrg#  define FORMAT	"nroff -man"
2101abf7346Smrg# else
2111abf7346Smrg#  define FORMAT	"groff -man"
2121abf7346Smrg# endif
2131abf7346Smrg# define DEFAULT_MANROFFSEQ "et"
2141abf7346Smrg#endif /*HANDLE_ROFFSEQ */
2151abf7346Smrg
2161abf7346Smrg/*
2171abf7346Smrg * Names of the man and cat dirs.
2181abf7346Smrg */
2191abf7346Smrg
2201abf7346Smrg#ifdef __bsdi__
2211abf7346Smrg#define MAN "cat"
2221abf7346Smrg#else
2231abf7346Smrg#define MAN "man"
2241abf7346Smrg#endif
2251abf7346Smrg
2261abf7346Smrg/*
2271abf7346Smrg * The Apple, Cray,, SYSV386, and HCX folks put the preformatted pages in the
2281abf7346Smrg * "man" directories.
2291abf7346Smrg */
2301abf7346Smrg#if (defined(macII) || defined(CRAY) || defined(hcx) || \
2311abf7346Smrg	(defined(SYSV) && defined(i386))) && !defined(SCO) && !defined(sun)
2321abf7346Smrg#  define CAT MAN
2331abf7346Smrg#elif defined(SCO)
2341abf7346Smrg#  define CAT "cat."
2351abf7346Smrg#else
2361abf7346Smrg#  define CAT "cat"
2371abf7346Smrg#endif
2381abf7346Smrg
2391abf7346Smrg/* Solaris has nroff man pages in "man" and sgml man pages in "sman" */
2401abf7346Smrg#if defined(sun) && defined(SVR4)
2411abf7346Smrg#  define SFORMAT		"/usr/lib/sgml/sgml2roff"
2421abf7346Smrg#  define SMAN			"sman"
2431abf7346Smrg#  undef SEARCHOTHER
2441abf7346Smrg#  define SEARCHOTHER 		SMAN
2451abf7346Smrg#  define SGMLENT_EXTENSION	"ent"	/* SGML entity files end in ".ent" */
2461abf7346Smrg#endif
2471abf7346Smrg
2481abf7346Smrg
2491abf7346Smrgtypedef struct _SectionList {
2501abf7346Smrg  struct _SectionList * next;
2511abf7346Smrg  char * label;			/* section label */
2521abf7346Smrg  char * directory;		/* section directory */
2531abf7346Smrg  int flags;
2541abf7346Smrg} SectionList;
2551abf7346Smrg
2561abf7346Smrgextern char * CreateManpageName(char * entry, int section, int flags);
2571abf7346Smrgextern void AddStandardSections(SectionList **list, char * path);
2581abf7346Smrgextern void AddNewSection(SectionList **list, char * path, char * file, char * label, int flags);
259