X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.h;h=2f5a5601bf38aeea4d1ac65c95f0438f6a12d6aa;hb=9c045eb230d3b294af134ce743669059dcb2f128;hp=e6c60985112a019f3a4c02d3865d0319c91996d3;hpb=079290de9d2b6af2fbe94b614060574bf5eaf93a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.h b/perl.h index e6c6098..2f5a560 100644 --- a/perl.h +++ b/perl.h @@ -1145,8 +1145,6 @@ typedef NVTYPE NV; # endif # define NV_DIG LDBL_DIG # ifdef HAS_SQRTL -# define Perl_modf modfl -# define Perl_frexp frexpl # define Perl_cos cosl # define Perl_sin sinl # define Perl_sqrt sqrtl @@ -1157,10 +1155,28 @@ typedef NVTYPE NV; # define Perl_floor floorl # define Perl_fmod fmodl # endif +/* e.g. libsunmath doesn't have modfl and frexpl as of mid-March 2000 */ +# ifdef HAS_MODFL +# define Perl_modf(x,y) modfl(x,y) +# else +# define Perl_modf(x,y) ((long double)modf((double)(x),(double*)(y))) +# endif +# ifdef HAS_FREXPL +# define Perl_frexp(x,y) frexpl(x,y) +# else +# define Perl_frexp(x,y) ((long double)frexp((double)(x),y)) +# endif +# ifdef HAS_ISNANL +# define Perl_isnan(x) isnanl(x) +# else +# ifdef HAS_ISNAN +# define Perl_isnan(x) isnan((double)(x)) +# else +# define Perl_isnan(x) ((x)!=(x)) +# endif +# endif #else # define NV_DIG DBL_DIG -# define Perl_modf modf -# define Perl_frexp frexp # define Perl_cos cos # define Perl_sin sin # define Perl_sqrt sqrt @@ -1170,6 +1186,13 @@ typedef NVTYPE NV; # define Perl_pow pow # define Perl_floor floor # define Perl_fmod fmod +# define Perl_modf(x,y) modf(x,y) +# define Perl_frexp(x,y) frexp(x,y) +# ifdef HAS_ISNAN +# define Perl_isnan(x) isnan(x) +# else +# define Perl_isnan(x) ((x)!=(x)) +# endif #endif #if !defined(Perl_atof) && defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) @@ -1645,7 +1668,7 @@ typedef pthread_key_t perl_key; #ifdef VMS # define STATUS_NATIVE PL_statusvalue_vms # define STATUS_NATIVE_EXPORT \ - ((I32)PL_statusvalue_vms == -1 ? 44 : PL_statusvalue_vms) + (((I32)PL_statusvalue_vms == -1 ? 44 : PL_statusvalue_vms) | (VMSISH_HUSHED ? 0x10000000 : 0)) # define STATUS_NATIVE_SET(n) \ STMT_START { \ PL_statusvalue_vms = (n); \ @@ -3091,7 +3114,11 @@ typedef struct am_table_short AMTS; /* It would be more fashionable to use Strtol() to define atol() * (as is done for Atoul(), see below) but for backward compatibility * we just assume atol(). */ -# define Atol atol +# if defined(USE_64_BIT_INT) && defined(IV_IS_QUAD) && QUADKIND == QUAD_IS_LONG_LONG && defined(HAS_ATOLL) +# define Atol atoll +# else +# define Atol atol +# endif #endif #if !defined(Strtoul) && defined(USE_64_BIT_INT) && defined(UV_IS_QUAD) && QUADKIND == QUAD_IS_LONG_LONG