\$escaping the $vars in !GROK!THIS! section is a good idea.
[p5sagit/p5-mst-13.2.git] / perl.h
diff --git a/perl.h b/perl.h
index 8d9263d..9f135b1 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1028,6 +1028,13 @@ typedef struct perl_mstats perl_mstats_t;
 #undef UV
 #endif
 
+/* Configure gets this right but the UTS compiler gets it wrong.
+   -- Hal Morris <hom00@utsglobal.com> */
+#ifdef UTS
+#  undef  UVTYPE
+#  define UVTYPE unsigned
+#endif
+
 /*
     The IV type is supposed to be long enough to hold any integral
     value or a pointer.
@@ -1086,6 +1093,25 @@ typedef UVTYPE UV;
 #  endif
 #endif
 
+/*
+  I've tracked down a weird bug in Perl5.6.1 to the UTS compiler's
+  mishandling of MY_UV_MAX in util.c.  It is defined as
+    #ifndef MY_UV_MAX
+    #  define MY_UV_MAX ((UV)IV_MAX * (UV)2 + (UV)1)
+    #endif
+  The compiler handles {double floating point value} >= MY_UV_MAX as if
+  MY_UV_MAX were the signed integer -1.  In fact it will do the same
+  thing with (UV)(0xffffffff), in place of MY_UV_MAX, though 0xffffffff
+  *without* the typecast to UV works fine.
+
+  hom00@utsglobal.com (Hal Morris) 2001-05-02
+
+  */
+
+#ifdef UTS
+#  define MY_UV_MAX 0xffffffff 
+#endif
+
 #define IV_DIG (BIT_DIGITS(IVSIZE * 8))
 #define UV_DIG (BIT_DIGITS(UVSIZE * 8))
 
@@ -2357,7 +2383,7 @@ END_EXTERN_C
 #  if defined(NeXT) || defined(__NeXT__) /* or whatever catches all NeXTs */
 char *crypt ();       /* Maybe more hosts will need the unprototyped version */
 #  else
-#    if !defined(WIN32)
+#    if !defined(WIN32) && !defined(VMS)
 char *crypt (const char*, const char*);
 #    endif /* !WIN32 */
 #  endif /* !NeXT && !__NeXT__ */
@@ -2814,7 +2840,6 @@ enum {            /* pass one of these to get_vtbl */
 #define HINT_FILETEST_ACCESS   0x00400000
 #define HINT_UTF8              0x00800000
 #define HINT_UTF8_DISTINCT     0x01000000
-#define HINT_RE_ASCIIR         0x02000000
 
 /* Various states of an input record separator SV (rs, nrs) */
 #define RsSNARF(sv)   (! SvOK(sv))
@@ -3560,6 +3585,9 @@ typedef struct am_table_short AMTS;
 #ifdef IAMSUID
 
 #ifdef I_SYS_STATVFS
+#   if defined(PERL_SCO) && !defined(_SVID3)
+#       define _SVID3
+#   endif
 #   include <sys/statvfs.h>     /* for f?statvfs() */
 #endif
 #ifdef I_SYS_MOUNT