diff --git a/include/ChangeLog b/include/ChangeLog index 1e321f470f..d26ba1d4e4 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2003-06-21 Zack Weinberg + + * safe-ctype.h (HC_UNKNOWN, HC_ASCII, HC_EBCDIC, HOST_CHARSET): + New #defines. + 2003-06-17 Kaveh R. Ghazi * ansidecl.h: Delete HAVE_LONG_DOUBLE GCC bootstrap support. diff --git a/include/safe-ctype.h b/include/safe-ctype.h index b2ad8490bd..c3e154c6f9 100644 --- a/include/safe-ctype.h +++ b/include/safe-ctype.h @@ -37,7 +37,24 @@ Boston, MA 02111-1307, USA. */ #ifdef isalpha #error "safe-ctype.h and ctype.h may not be used simultaneously" +#endif + +/* Determine host character set. */ +#define HC_UNKNOWN 0 +#define HC_ASCII 1 +#define HC_EBCDIC 2 + +#if '\n' == 0x0A && ' ' == 0x20 && '0' == 0x30 \ + && 'A' == 0x41 && 'a' == 0x61 && '!' == 0x21 +# define HOST_CHARSET HC_ASCII #else +# if '\n' == 0x15 && ' ' == 0x40 && '0' == 0xF0 \ + && 'A' == 0xC1 && 'a' == 0x81 && '!' == 0x5A +# define HOST_CHARSET HC_EBCDIC +# else +# define HOST_CHARSET HC_UNKNOWN +# endif +#endif /* Categories. */ @@ -99,5 +116,4 @@ extern const unsigned char _sch_tolower[256]; #define TOUPPER(c) _sch_toupper[(c) & 0xff] #define TOLOWER(c) _sch_tolower[(c) & 0xff] -#endif /* no ctype.h */ #endif /* SAFE_CTYPE_H */ diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 84d4bcdf16..b521127cbb 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,8 @@ +2003-06-21 Zack Weinberg + + * safe-ctype.c: Separate out EOF==-1 check. Use HOST_CHARSET + for charset determination. + 2003-06-19 Dara Hazeghi * configure.in: Add check for malloc.h needed by @@ -8,14 +13,14 @@ free(). 2003-06-09 Albert Chin-A-Young - + PR bootstrap/10974 * physmem.c: Update comment. * configure.in: Modify test for _system_configuration for older AIX systems. * config.in, configure: Regenerated. - + 2003-06-05 John David Anglin PR other/10810 @@ -109,7 +114,7 @@ ANSI_PROTOTYPES. * vsprintf.c: Include "ansidecl.h" earlier, rely on ANSI_PROTOTYPES and possibly include . - + * Makefile.in: Regenerate dependencies. 2003-04-15 DJ Delorie @@ -207,7 +212,7 @@ 2003-02-22 Kaveh R. Ghazi Richard Earnshaw Geoffrey Keating - + * configure.in: Check for sys/sysctl.h and sysctl. * physmem.c: Add support for *bsd and darwin. * Makefile.in: Generate depedency for physmem.o. @@ -236,7 +241,7 @@ * physmem.c (physmem_total, physmem_available): De-ANSI-fy. * configure.in (AC_CHECK_FUNCS): Add pstat_getstatic and pstat_getdynamic. - + 2003-02-20 Kaveh R. Ghazi * Makefile.in (CFILES): Add physmem.c. diff --git a/libiberty/safe-ctype.c b/libiberty/safe-ctype.c index 3bac84bf68..12d52d3bd8 100644 --- a/libiberty/safe-ctype.c +++ b/libiberty/safe-ctype.c @@ -33,6 +33,10 @@ Boston, MA 02111-1307, USA. */ #include #include /* for EOF */ +#if EOF != -1 + #error " requires EOF == -1" +#endif + /* Shorthand */ #define bl _sch_isblank #define cn _sch_iscntrl @@ -64,9 +68,7 @@ Boston, MA 02111-1307, USA. */ #define S (const unsigned short) (nv|sp|bl|pr) /* space */ /* Are we ASCII? */ -#if '\n' == 0x0A && ' ' == 0x20 && '0' == 0x30 \ - && 'A' == 0x41 && 'a' == 0x61 && '!' == 0x21 \ - && EOF == -1 +#if HOST_CHARSET == HC_ASCII const unsigned short _sch_istable[256] = { @@ -159,5 +161,9 @@ const unsigned char _sch_toupper[256] = }; #else - #error "Unsupported host character set" -#endif /* not ASCII */ +# if HOST_CHARSET == HC_EBCDIC + #error "FIXME: write tables for EBCDIC" +# else + #error "Unrecognized host character set" +# endif +#endif