X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.h;h=9f135b109c41b4add56e04bfbdd07c4e18c2a7dc;hb=c0393c90932dfbd5778207b0f3f2e6f99dc7fdb2;hp=8d9263d90ac8a41cf6aa1eaab31df8518a582930;hpb=a453c1697467fe606ef79b5ab7a0eafaa8e78e7a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.h b/perl.h index 8d9263d..9f135b1 100644 --- 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 */ +#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 /* for f?statvfs() */ #endif #ifdef I_SYS_MOUNT