MS-DOS patches to perl. Apply this patch to the standard perl source, version 4, patch level 19, using "patch -p." Do this in the root directory of the perl source distribution. You can cat all these patches together and pipe the output to patch -p. Len Reed Holos Software, Inc. ..!gatech!holos0!lbr holos0!lbr@gatech.edu -------------------------------------- *** msdos/config.h.old Fri Jun 14 20:09:08 1991 --- msdos/config.h Sun Jan 5 20:35:24 1992 *************** *** 4,9 **** --- 4,10 ---- * * This file is hand tailored for MS-DOS and MSC 5.1 and 6.00A. * Tom Dinger, March 1991. + * Len Reed, August 1991. */ *************** *** 17,26 **** * Microsoft C compiler version 6.0A. It is used as a conditional to * guard code sections that are known to break this compiler. */ - #define BUGGY_MSC5 /**/ - /*#undef BUGGY_MSC6 /**/ /* EUNICE * This symbol, if defined, indicates that the program is being compiled * under the EUNICE package under VMS. The program will need to handle --- 18,32 ---- * Microsoft C compiler version 6.0A. It is used as a conditional to * guard code sections that are known to break this compiler. */ + #if !defined(_MSC_VER) || _MSC_VER < 600 + # define BUGGY_MSC5 /**/ + #endif + #if _MSC_VER == 600 + # define BUGGY_MSC6 /**/ + #endif + /* EUNICE * This symbol, if defined, indicates that the program is being compiled * under the EUNICE package under VMS. The program will need to handle *************** *** 65,73 **** * output. This symbol will have the value "-" if CPPSTDIN needs a minus * to specify standard input, otherwise the value is "". */ ! /* TODO: doesn't work for MSC -- it's more complicated than this */ ! #define CPPSTDIN "cl " ! #define CPPMINUS "" /* HAS_BCMP * This symbol, if defined, indicates that the bcmp routine is available --- 71,79 ---- * output. This symbol will have the value "-" if CPPSTDIN needs a minus * to specify standard input, otherwise the value is "". */ ! /* MS-DOS version works differently. See perl.c */ ! /* #undef CPPSTDIN */ ! /* #undef CPPMINUS */ /* HAS_BCMP * This symbol, if defined, indicates that the bcmp routine is available *************** *** 308,322 **** /* HAS_NDBM * This symbol, if defined, indicates that ndbm.h exists and should ! * be included. */ - /*#undef HAS_NDBM /**/ /* HAS_ODBM * This symbol, if defined, indicates that dbm.h exists and should ! * be included. */ ! /*#undef HAS_ODBM /**/ /* HAS_OPEN3 * This manifest constant lets the C program know that the three --- 314,329 ---- /* HAS_NDBM * This symbol, if defined, indicates that ndbm.h exists and should ! * be included. MS-DOS makefile may define externally: -DHAS_NDBM */ + /*#undef HAS_NDBM unless defined by -D */ + /* HAS_ODBM * This symbol, if defined, indicates that dbm.h exists and should ! * be included. Under MS-DOS, may be defined by the makefile using -D. */ ! /*#undef HAS_ODBM /**/ /* HAS_OPEN3 * This manifest constant lets the C program know that the three *************** *** 558,564 **** * This symbol, if defined, indicates that this C compiler knows about * the volatile declaration. */ ! /*#undef HASVOLATILE /**/ /* HAS_VPRINTF * This symbol, if defined, indicates that the vprintf routine is available --- 565,571 ---- * This symbol, if defined, indicates that this C compiler knows about * the volatile declaration. */ ! #define HASVOLATILE /**/ /* HAS_VPRINTF * This symbol, if defined, indicates that the vprintf routine is available *************** *** 754,760 **** * This symbol contains the number of bits of random number the rand() * function produces. Usual values are 15, 16, and 31. */ ! #define RANDBITS 31 /**/ /* SCRIPTDIR * This symbol holds the name of the directory in which the user wants --- 761,767 ---- * This symbol contains the number of bits of random number the rand() * function produces. Usual values are 15, 16, and 31. */ ! #define RANDBITS 15 /**/ /* SCRIPTDIR * This symbol holds the name of the directory in which the user wants *************** *** 820,828 **** * its value is "char *". */ #ifndef VOIDWANT ! #define VOIDWANT 1 #endif ! #define VOIDHAVE 1 #if (VOIDHAVE & VOIDWANT) != VOIDWANT #define void int /* is void to be avoided? */ #define VOID --- 827,835 ---- * its value is "char *". */ #ifndef VOIDWANT ! #define VOIDWANT 7 #endif ! #define VOIDHAVE 7 #if (VOIDHAVE & VOIDWANT) != VOIDWANT #define void int /* is void to be avoided? */ #define VOID *************** *** 838,845 **** * The library is private in the sense that it needn't be in anyone's * execution path, but it should be accessible by the world. The program * should be prepared to do ~ expansion. */ ! #define PRIVLIB "/usr/local/lib/perl" /**/ /* * BINARY: --- 845,855 ---- * The library is private in the sense that it needn't be in anyone's * execution path, but it should be accessible by the world. The program * should be prepared to do ~ expansion. + * + * In MSDOS only, this value is overridden by the first directory + * in the $PERLLIB environment variable, if that is set. */ ! #define PRIVLIB "/usr/local/lib/perl" /* * BINARY: