/* vms.cfg: Configuration file for sgmls on VAX/VMS.
/* For VAX/VMS V5.3 and VAX C V3.2-044.
Contributed by John Lavagnino <LAV@BINAH.CC.BRANDEIS.EDU>. */

/* Define HAVE_EXTENDED_PRINTF if your *printf functions supports
X/Open extensions; if they do, then, for example,

  printf("%2$s%1$s", "bar", "foo")

should print `foobar'.  */

/* #define HAVE_EXTENDED_PRINTF 1 */

/* Define HAVE_CAT if your system provides the X/Open message
catalogue functions catopen() and catgets(), and you want to use them.
An implementations of these functions is included and will be used if
you don't define this.  On SunOS 4.1.1, if you do define this you
should set CC=/usr/xpg2bin/cc in the makefile. */

/* #define HAVE_CAT 1 */

#ifdef __STDC__
/* Define this if your compiler supports prototypes. */
#define USE_PROTOTYPES 1
#endif
#define USE_PROTOTYPES 1

#ifdef __OBJECTCENTER__
/* Define this if you have <varargs.h> but not <stdarg.h> */
#define VARARGS 1
#endif

#ifndef USE_PROTOTYPES
/* Use VARARGS if prototypes are not supported. */
#ifndef VARARGS
#define VARARGS 1
#endif
#endif /* not USE_PROTOTYPES */

/* Define this if you do not have strerror(). */
/* #define STRERROR_MISSING 1 */

/* Define this unless the character testing functions in ctype.h
are defined for all values representable as an unsigned char.  You do
not need to define this if your system is ANSI C conformant.  You
should define for old Unix systems. */
/*  This has been defined for VMS because its iscntrl says that
  128 through 159 are controls; SHUNCHAR CONTROLS believes that, and you
  can get messages like
    "Non-significant shunned character number 158 not declared UNUSED"
  as a result: that's what happens with the grplvl.sgm test.  (See
  sgmldecl.c for the use of iscntrl that leads to this, and Goldfarb
  page 455 for the rule that's being followed.)  With this
  symbol defined, the VMS version of isascii is used together with
  iscntrl, and isascii is false for eight-bit characters.
    The setting here also affects the form of the output: without the
  isascii test the program is led to believe that some codes with the
  eighth bit set are OK to put in the output without translation,
  because with the eighth bit masked off they look like ordinary letters.
  That happened with output from the test02.sgm test file.  See
  lineout.c, uses of isprint, for the code that's involved here.
                                                               JDL */
#define USE_ISASCII 1

/* Define this if your system provides the BSD style string operations
rather than ANSI C ones (eg bcopy() rather than memcpy(), and index()
rather than strchr()). */
/* #define BSD_STRINGS 1 */

/* Define this if you have getopt(). */
/* #define HAVE_GETOPT 1 */

/*  Much VMSish stuff here.
    Not sure what a good default path is: the one here's just a
   guess.  The unix.cfg default was:

   #define DEFAULT_PATH "/usr/local/lib/sgml/%O/%C/%T:%N.%X:%N.%D"

   which is better in that it uses elements from the formal
   identifier rather than the parameter entity name.
    FILE_SEP variables set to comma rather than colon: colon can appear
   in a filename, and comma is the usual thing on VMS to separate
   directories in a pathlist.
    In MIN_DAT_SUBS we map slashes to dashes, since % is not a legal
   VMS filename character. */

#define PATH_FILE_SEP ','
#define DEFAULT_PATH "sgml_public:%N.%C"
#define PATH_ENV_VAR "SGML_PATH"
#define SYSID_FILE_SEP ','
#define MIN_DAT_SUBS_FROM " /"
#define MIN_DAT_SUBS_TO   "_-"

/* Define this if you have access(). */
/*  VMS has access(), but it's one of those half-implemented functions
   in the run-time library: it checks only UIC protection and not
   ACLs, in VAX C V3.2-044.  So it's better to use the replacement
   code provided in entgen.c that just tries to open the file. */
/* #define HAVE_ACCESS 1 */

/* Define this if you have <unistd.h>. */
/* #define HAVE_UNISTD_H 1 */

/* Define this if you have waitpid(). */
/* #define HAVE_WAITPID 1 */

/* Define this to omit tracing functions */
/* #define FINAL 1 */

/* Define this you want support for subdocuments.  This is implemented
using features that are not part of Standard C. */
/* Turned off on VMS: the unixproc.c and portproc.c approaches both
  sort of work, but there are problems getting the output of the
  subprocess to go the same place as the main process output.
  Decided I didn't need this enough to mess with it for now.  JDL */
/* #define SUPPORT_SUBDOC 1 */

/* Define this if your system is POSIX.1 (ISO 9945-1:1990) compliant. */
/* #define POSIX 1 */

/* POSIX.1 compliant systems will certainly have access(), <unistd.h>,
and waitpid(). */
#ifdef POSIX
#ifndef HAVE_ACCESS
#define HAVE_ACCESS 1
#endif
#ifndef HAVE_UNISTD_H
#define HAVE_UNISTD_H 1
#endif
#ifndef HAVE_WAITPID
#define HAVE_WAITPID 1
#endif
#endif /* POSIX */

/* Define this if you have the vfork() system call. */
#define HAVE_VFORK 1

/* Define this if you have <vfork.h>. */
/* #define HAVE_VFORK_H 1 */

/* Define this if you don't have <stdlib.h> */
/* #define STDLIB_H_MISSING 1 */

/* Define this if you don't have <stddef.h> */
/* #define STDDEF_H_MISSING 1 */

/* Define this if you don't have remove(); unlink() will be used instead. */
/* #define REMOVE_MISSING 1 */

/* Define this if you don't have raise(); kill() will be used instead. */
#define RAISE_MISSING 1

/* Universal pointer type. */
/* Use this if your compiler doesn't fully support void * */
/* typedef char *UNIV; */
/* Otherwise use this */
typedef void *UNIV;

/*  VAX C V3.2-044 rejects the following typedef for some reason.
   But the #define seems to work. */
/* typedef void VOID; */            /* void as a function return type */
#define VOID void

/* If you don't have an ANSI C conformant <limits.h>, define
CHAR_SIGNED as 1 or 0 according to whether the `char' type is signed.
The <limits.h> on some versions of System Release V 3.2 is not ANSI C
conformant: the value of CHAR_MIN is 0 even though the `char' type is
signed. */

/* #define CHAR_SIGNED 1 */
/* #define CHAR_SIGNED 0 */
#ifndef CHAR_SIGNED
#include <limits.h>
#if CHAR_MIN < 0
#define CHAR_SIGNED 1
#else
#define CHAR_SIGNED 0
#endif
#endif /* not CHAR_SIGNED */

/* Assume the system character set is ISO Latin-1. */
#include "latin1.h"

/*  Stuff for use in main.c to remove VMS device, directory, extension,
   and version number from error messages.
    We don't need PROG_FOLD, which does upper-to-lower-case folding,
   because VMS does it already. */

#define PROG_PREFIX "]:"
#define PROG_STRIP_EXTENSION 1

/* Define VMS exit codes.
     stdlib.h is here because it defines its own EXIT_SUCCESS and
   EXIT_FAILURE, which are just 0 and 2; we want nice values that
   don't trigger VMS messages like
	%NONAME-E-NOMSG, Message number 00000002
     So we run stdlib.h here and then redefine these exit codes
   afterwards. */

#ifdef VMS
#  pragma nostandard
#  include stdlib
#  include ssdef
#  include stsdef
#  pragma standard
#  define EXIT_SUCCESS		SS$_NORMAL
#  define EXIT_FAILURE		(STS$K_SEVERE | STS$M_INHIB_MSG)
#endif

/* Odd VMS include file for process functions (system, execvp). */

#ifdef VMS
# ifdef SUPPORT_SUBDOC
#  pragma nostandard
#  include processes
#  pragma standard
# endif
#endif
