/* config.h  */

#define VMS	1

/* Define if you have the strftime function.  */
#define HAVE_STRFTIME 	1

/* Define if you have the ANSI C header files.  */
#define STDC_HEADERS	1

#undef PACKAGE
#undef VERSION
#undef HAVE_LIBM
#undef HAVE_LIBHISTORY
#undef HAVE_LIBREADLINE

#define ICONV_CONST

/* Define if you have the localtime function.  */
#define HAVE_LOCALTIME	1

/* Define if you have the snprintf function.  */
#undef HAVE_SNPRINTF

/* Define if you have the strftime function.  */
#define HAVE_STRFTIME	1

/* Define if you have the <arpa/inet.h> header file.  */
#undef HAVE_ARPA_INET_H

/* Define if you have the <ctype.h> header file.  */
#define HAVE_CTYPE_H	1

/* Define if you have the <errno.h> header file.  */
#define HAVE_ERRNO_H	1

/* Define if you have the <fcntl.h> header file.  */
#define HAVE_FCNTL_H	1

/* Define if you have the <float.h> header file.  */
#define HAVE_FLOAT_H	1

/* Define if you have the <malloc.h> header file.  */
#undef HAVE_MALLOC_H

/* Define if you have the <math.h> header file.  */
#define HAVE_MATH_H	1

/* Define if you have the <netdb.h> header file.  */
#define HAVE_NETDB_H	1

/* Define if you have the <netinet/in.h> header file.  */
#undef HAVE_NETINET_IN_H

/* Define if you have the <stdarg.h> header file.  */
#define HAVE_STDARG_H	1

/* Define if you have the <stdlib.h> header file.  */
#define HAVE_STDLIB_H	1

/* Define to 1 if you have the `strftime' function. */
#define HAVE_STRFTIME 1

/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1

/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1

/* Define if you have the <sys/mman.h> header file.  */
#undef HAVE_SYS_MMAN_H

/* Define if you have the <sys/select.h> header file.  */
#undef HAVE_SYS_SELECT_H

/* Define if you have the <sys/socket.h> header file.  */
#define HAVE_SYS_SOCKET_H 1

/* Define if you have the <sys/stat.h> header file.  */
#define HAVE_SYS_STAT_H 1

/* Define if you have the <sys/time.h> header file.  */
#undef HAVE_SYS_TIME_H

/* Define if you have the <sys/types.h> header file.  */
#undef HAVE_SYS_TYPES_H

/* Define if you have the <time.h> header file.  */
#define HAVE_TIME_H	1

/* Define if you have the <unistd.h> header file.  */
#define HAVE_UNISTD_H	1

/* Name of package */
#undef PACKAGE

/* Version number of package */
#undef VERSION

/* Up to this point this is just a hard-wired version of 
 * config.h.  After this will be anything else we need 
 * that is VMS-specific.
 */

/* For best results, compile with /NAMES=(SHORTENED), which requires
 * DEC C 5.7 or later.  For older compilers, the shortened names below
 * are the same ones the mangler generates in C 5.7 and later.  These may
 * work, though there will probably be some conflicts with redefinitions 
 * in globals.h.
 */

#if __DECC_VER < 57000000
/*      0        1         2         3               0        1         2         3
 *      123456789012345678901234567890123456789      1234567890123456789012345678901 
 */
#define __xmlDoValidityCheckingDefaultValue          __xmlDoValidityChecking3qad3pq$
#define __xmlSubstituteEntitiesDefaultValue          __xmlSubstituteEntities0pij13u$
#define trio_locale_set_thousand_separator           trio_locale_set_thousan259ikkk$
#define xmlDoValidityCheckingDefaultValue            xmlDoValidityCheckingDe1bcsei4$
#define xmlParseBalancedChunkMemoryRecover           xmlParseBalancedChunkMe1lu1e86$
#define xmlParseElementChildrenContentDecl           xmlParseElementChildren1mp6pcb$
#define xmlParserInputBufferCreateFilename           xmlParserInputBufferCre36lujn2$
#define xmlRegisterDefaultInputCallbacks             xmlRegisterDefaultInput3vin0cp$
#define xmlRegisterDefaultOutputCallbacks            xmlRegisterDefaultOutpu0q443dd$
#define xmlSubstituteEntitiesDefaultValue            xmlSubstituteEntitiesDe28k2c80$
#define xmlUCSIsAlphabeticPresentationForms          xmlUCSIsAlphabeticPrese2qr24s3$
#define xmlUCSIsArabicPresentationFormsB             xmlUCSIsArabicPresentat1gajvg8$
#define xmlUCSIsArabicPresentationFormsA             xmlUCSIsArabicPresentat3sq1bti$
#define xmlUCSIsCJKCompatibilityIdeographsSupplement xmlUCSIsCJKCompatibilit0or40ki$
#define xmlUCSIsCJKCompatibilityIdeographs           xmlUCSIsCJKCompatibilit2nodmc5$
#define xmlUCSIsCJKSymbolsandPunctuation             xmlUCSIsCJKSymbolsandPu0a3i7ra$
#define xmlUCSIsCJKUnifiedIdeographsExtensionA       xmlUCSIsCJKUnifiedIdeog11ig3fd$
#define xmlUCSIsCJKUnifiedIdeographsExtensionB       xmlUCSIsCJKUnifiedIdeog3d22n2n$
#define xmlUCSIsCombiningDiacriticalMarks            xmlUCSIsCombiningDiacri3tj3nl8$
#define xmlUCSIsCombiningMarksforSymbols             xmlUCSIsCombiningMarksf3ftqd7s$
#define xmlUCSIsEnclosedCJKLettersandMonths          xmlUCSIsEnclosedCJKLett0nq67g4$
#define xmlUCSIsHalfwidthandFullwidthForms           xmlUCSIsHalfwidthandFul047l0a1$
#define xmlUCSIsHighPrivateUseSurrogates             xmlUCSIsHighPrivateUseS071kh83$
#define xmlUCSIsIdeographicDescriptionCharacters     xmlUCSIsIdeographicDesc1rovf8g$
#define xmlUCSIsMathematicalAlphanumericSymbols      xmlUCSIsMathematicalAlp2ag8r44$
#define xmlUCSIsOpticalCharacterRecognition          xmlUCSIsOpticalCharacte1juuh06$
#define xmlUCSIsSuperscriptsandSubscripts            xmlUCSIsSuperscriptsand3fi4eup$
#define xmlUCSIsUnifiedCanadianAboriginalSyllabics   xmlUCSIsUnifiedCanadian0lbvi9b$
#define xmlValidCtxtNormalizeAttributeValue          xmlValidCtxtNormalizeAt0q11n5f$
#define xmlXPathRegisteredVariablesCleanup           xmlXPathRegisteredVaria1uvs4uc$

#endif

#define xmlBufferWriteChar xmlBufferWriteChar2

#include <inttypes.h>

#define HAVE_DLOPEN 1
#define HAVE_DLFCN_H 1
