X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=handy.h;h=851f3482286e4ab6bceb341699a6eef59282fa45;hb=43039de73e9f6e7f5c6b05087b44cc6c45f595b2;hp=af5f3af350a757081b4788c7d20fb5dc9d34a320;hpb=84df6dbaac5dcce30923bafc61c52f3ffa1b669b;p=p5sagit%2Fp5-mst-13.2.git diff --git a/handy.h b/handy.h index af5f3af..851f348 100644 --- a/handy.h +++ b/handy.h @@ -1,6 +1,6 @@ /* handy.h * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-1999, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -54,7 +54,7 @@ /* The NeXT dynamic loader headers will not build with the bool macro So declare them now to clear confusion. */ -#ifdef NeXT +#if defined(NeXT) || defined(__NeXT__) # undef FALSE # undef TRUE typedef enum bool { FALSE = 0, TRUE = 1 } bool; @@ -62,7 +62,7 @@ # ifndef HAS_BOOL # define HAS_BOOL 1 # endif /* !HAS_BOOL */ -#endif /* NeXT */ +#endif /* NeXT || __NeXT__ */ #ifndef HAS_BOOL # if defined(UTS) || defined(VMS) @@ -105,6 +105,31 @@ Andy Dougherty April 1998 */ +#if defined(UINT8_MAX) && defined(INT16_MAX) && defined(INT32_MAX) + +typedef int8_t I8; +typedef uint8_t U8; +/* I8_MAX and I8_MIN constants are not defined, as I8 is an ambiguous type. + Please search CHAR_MAX in perl.h for further details. */ +#define U8_MAX UINT8_MAX +#define U8_MIN UINT8_MIN + +typedef int16_t I16; +typedef uint16_t U16; +#define I16_MAX INT16_MAX +#define I16_MIN INT16_MIN +#define U16_MAX UINT16_MAX +#define U16_MIN UINT16_MIN + +typedef int32_t I32; +typedef uint32_t U32; +#define I32_MAX INT32_MAX +#define I32_MIN INT32_MIN +#define U32_MAX UINT32_MAX +#define U32_MIN UINT32_MIN + +#else + typedef char I8; typedef unsigned char U8; /* I8_MAX and I8_MIN constants are not defined, as I8 is an ambiguous type. @@ -112,6 +137,7 @@ typedef unsigned char U8; #define U8_MAX PERL_UCHAR_MAX #define U8_MIN PERL_UCHAR_MIN +/* Beware. SHORTSIZE > 2 in Cray C90ties. */ typedef short I16; typedef unsigned short U16; #define I16_MAX PERL_SHORT_MAX @@ -135,6 +161,8 @@ typedef unsigned short U16; # define U32_MIN PERL_ULONG_MIN #endif +#endif + #define BIT_DIGITS(N) (((N)*146)/485 + 1) /* log2(10) =~ 146/485 */ #define TYPE_DIGITS(T) BIT_DIGITS(sizeof(T) * 8) #define TYPE_CHARS(T) (TYPE_DIGITS(T) + 2) /* sign, NUL */ @@ -296,7 +324,7 @@ typedef unsigned short U16; #define toLOWER_LC_utf8(p) toLOWER_LC_uni(utf8_to_uv(p, 0)) #ifdef EBCDIC -EXT int ebcdic_control _((int)); +EXT int ebcdic_control (int); # define toCTRL(c) ebcdic_control(c) #else /* This conversion works both ways, strangely enough. */