There is a problem in that one cannot use ctype.h at the same time as parts

of the C++ stdlib.  Our ctype.h uses symbols of the form _<X> to denote the
various character classes.  Our ctype.h also extends the usual ctype.h
offering by adding the "_T" (special) class.  Problem is parts of the STL
also use the symbol "_T" as its parameterized type.  These two uses are
incompatible.

Thus change the form of the symbols used in ctype to something that fixes
the current problem and is less likely to cause conflicts in the future.

Requested by:	Tomoaki NISHIYAMA <tomoaki@biol.s.u-tokyo.ac.jp>
Ok'ed by:	JKH
This commit is contained in:
David E. O'Brien 2000-02-08 07:43:26 +00:00
parent e0908a9f34
commit f506ed7467
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=57035
6 changed files with 293 additions and 181 deletions

View File

@ -51,20 +51,20 @@
*/ */
#include <runetype.h> #include <runetype.h>
#define _A 0x00000100L /* Alpha */ #define _CTYPE_A 0x00000100L /* Alpha */
#define _C 0x00000200L /* Control */ #define _CTYPE_C 0x00000200L /* Control */
#define _D 0x00000400L /* Digit */ #define _CTYPE_D 0x00000400L /* Digit */
#define _G 0x00000800L /* Graph */ #define _CTYPE_G 0x00000800L /* Graph */
#define _L 0x00001000L /* Lower */ #define _CTYPE_L 0x00001000L /* Lower */
#define _P 0x00002000L /* Punct */ #define _CTYPE_P 0x00002000L /* Punct */
#define _S 0x00004000L /* Space */ #define _CTYPE_S 0x00004000L /* Space */
#define _U 0x00008000L /* Upper */ #define _CTYPE_U 0x00008000L /* Upper */
#define _X 0x00010000L /* X digit */ #define _CTYPE_X 0x00010000L /* X digit */
#define _B 0x00020000L /* Blank */ #define _CTYPE_B 0x00020000L /* Blank */
#define _R 0x00040000L /* Print */ #define _CTYPE_R 0x00040000L /* Print */
#define _I 0x00080000L /* Ideogram */ #define _CTYPE_I 0x00080000L /* Ideogram */
#define _T 0x00100000L /* Special */ #define _CTYPE_T 0x00100000L /* Special */
#define _Q 0x00200000L /* Phonogram */ #define _CTYPE_Q 0x00200000L /* Phonogram */
__BEGIN_DECLS __BEGIN_DECLS
int isalnum __P((int)); int isalnum __P((int));
@ -97,30 +97,30 @@ __END_DECLS
#define __istype(c,f) (!!__maskrune((c),(f))) #define __istype(c,f) (!!__maskrune((c),(f)))
#define isalnum(c) __istype((c), _A|_D) #define isalnum(c) __istype((c), _CTYPE_A|_CTYPE_D)
#define isalpha(c) __istype((c), _A) #define isalpha(c) __istype((c), _CTYPE_A)
#define iscntrl(c) __istype((c), _C) #define iscntrl(c) __istype((c), _CTYPE_C)
#define isdigit(c) __isctype((c), _D) /* ANSI -- locale independent */ #define isdigit(c) __isctype((c), _CTYPE_D) /* ANSI -- locale independent */
#define isgraph(c) __istype((c), _G) #define isgraph(c) __istype((c), _CTYPE_G)
#define islower(c) __istype((c), _L) #define islower(c) __istype((c), _CTYPE_L)
#define isprint(c) __istype((c), _R) #define isprint(c) __istype((c), _CTYPE_R)
#define ispunct(c) __istype((c), _P) #define ispunct(c) __istype((c), _CTYPE_P)
#define isspace(c) __istype((c), _S) #define isspace(c) __istype((c), _CTYPE_S)
#define isupper(c) __istype((c), _U) #define isupper(c) __istype((c), _CTYPE_U)
#define isxdigit(c) __isctype((c), _X) /* ANSI -- locale independent */ #define isxdigit(c) __isctype((c), _CTYPE_X) /* ANSI -- locale independent */
#define tolower(c) __tolower(c) #define tolower(c) __tolower(c)
#define toupper(c) __toupper(c) #define toupper(c) __toupper(c)
#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) #if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
#define digittoint(c) __maskrune((c), 0xFF) #define digittoint(c) __maskrune((c), 0xFF)
#define isascii(c) (((c) & ~0x7F) == 0) #define isascii(c) (((c) & ~0x7F) == 0)
#define isblank(c) __istype((c), _B) #define isblank(c) __istype((c), _CTYPE_B)
#define ishexnumber(c) __istype((c), _X) #define ishexnumber(c) __istype((c), _CTYPE_X)
#define isideogram(c) __istype((c), _I) #define isideogram(c) __istype((c), _CTYPE_I)
#define isnumber(c) __istype((c), _D) #define isnumber(c) __istype((c), _CTYPE_D)
#define isphonogram(c) __istype((c), _Q) #define isphonogram(c) __istype((c), _CTYPE_Q)
#define isrune(c) __istype((c), 0xFFFFFF00L) #define isrune(c) __istype((c), 0xFFFFFF00L)
#define isspecial(c) __istype((c), _T) #define isspecial(c) __istype((c), _CTYPE_T)
#define toascii(c) ((c) & 0x7F) #define toascii(c) ((c) & 0x7F)
#endif #endif

View File

@ -51,20 +51,20 @@
*/ */
#include <runetype.h> #include <runetype.h>
#define _A 0x00000100L /* Alpha */ #define _CTYPE_A 0x00000100L /* Alpha */
#define _C 0x00000200L /* Control */ #define _CTYPE_C 0x00000200L /* Control */
#define _D 0x00000400L /* Digit */ #define _CTYPE_D 0x00000400L /* Digit */
#define _G 0x00000800L /* Graph */ #define _CTYPE_G 0x00000800L /* Graph */
#define _L 0x00001000L /* Lower */ #define _CTYPE_L 0x00001000L /* Lower */
#define _P 0x00002000L /* Punct */ #define _CTYPE_P 0x00002000L /* Punct */
#define _S 0x00004000L /* Space */ #define _CTYPE_S 0x00004000L /* Space */
#define _U 0x00008000L /* Upper */ #define _CTYPE_U 0x00008000L /* Upper */
#define _X 0x00010000L /* X digit */ #define _CTYPE_X 0x00010000L /* X digit */
#define _B 0x00020000L /* Blank */ #define _CTYPE_B 0x00020000L /* Blank */
#define _R 0x00040000L /* Print */ #define _CTYPE_R 0x00040000L /* Print */
#define _I 0x00080000L /* Ideogram */ #define _CTYPE_I 0x00080000L /* Ideogram */
#define _T 0x00100000L /* Special */ #define _CTYPE_T 0x00100000L /* Special */
#define _Q 0x00200000L /* Phonogram */ #define _CTYPE_Q 0x00200000L /* Phonogram */
__BEGIN_DECLS __BEGIN_DECLS
int isalnum __P((int)); int isalnum __P((int));
@ -97,30 +97,30 @@ __END_DECLS
#define __istype(c,f) (!!__maskrune((c),(f))) #define __istype(c,f) (!!__maskrune((c),(f)))
#define isalnum(c) __istype((c), _A|_D) #define isalnum(c) __istype((c), _CTYPE_A|_CTYPE_D)
#define isalpha(c) __istype((c), _A) #define isalpha(c) __istype((c), _CTYPE_A)
#define iscntrl(c) __istype((c), _C) #define iscntrl(c) __istype((c), _CTYPE_C)
#define isdigit(c) __isctype((c), _D) /* ANSI -- locale independent */ #define isdigit(c) __isctype((c), _CTYPE_D) /* ANSI -- locale independent */
#define isgraph(c) __istype((c), _G) #define isgraph(c) __istype((c), _CTYPE_G)
#define islower(c) __istype((c), _L) #define islower(c) __istype((c), _CTYPE_L)
#define isprint(c) __istype((c), _R) #define isprint(c) __istype((c), _CTYPE_R)
#define ispunct(c) __istype((c), _P) #define ispunct(c) __istype((c), _CTYPE_P)
#define isspace(c) __istype((c), _S) #define isspace(c) __istype((c), _CTYPE_S)
#define isupper(c) __istype((c), _U) #define isupper(c) __istype((c), _CTYPE_U)
#define isxdigit(c) __isctype((c), _X) /* ANSI -- locale independent */ #define isxdigit(c) __isctype((c), _CTYPE_X) /* ANSI -- locale independent */
#define tolower(c) __tolower(c) #define tolower(c) __tolower(c)
#define toupper(c) __toupper(c) #define toupper(c) __toupper(c)
#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) #if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
#define digittoint(c) __maskrune((c), 0xFF) #define digittoint(c) __maskrune((c), 0xFF)
#define isascii(c) (((c) & ~0x7F) == 0) #define isascii(c) (((c) & ~0x7F) == 0)
#define isblank(c) __istype((c), _B) #define isblank(c) __istype((c), _CTYPE_B)
#define ishexnumber(c) __istype((c), _X) #define ishexnumber(c) __istype((c), _CTYPE_X)
#define isideogram(c) __istype((c), _I) #define isideogram(c) __istype((c), _CTYPE_I)
#define isnumber(c) __istype((c), _D) #define isnumber(c) __istype((c), _CTYPE_D)
#define isphonogram(c) __istype((c), _Q) #define isphonogram(c) __istype((c), _CTYPE_Q)
#define isrune(c) __istype((c), 0xFFFFFF00L) #define isrune(c) __istype((c), 0xFFFFFF00L)
#define isspecial(c) __istype((c), _T) #define isspecial(c) __istype((c), _CTYPE_T)
#define toascii(c) ((c) & 0x7F) #define toascii(c) ((c) & 0x7F)
#endif #endif

View File

@ -60,7 +60,7 @@ int
isalnum(c) isalnum(c)
int c; int c;
{ {
return (__istype((c), _A|_D)); return (__istype((c), _CTYPE_A|_CTYPE_D));
} }
#undef isalpha #undef isalpha
@ -68,7 +68,7 @@ int
isalpha(c) isalpha(c)
int c; int c;
{ {
return (__istype((c), _A)); return (__istype((c), _CTYPE_A));
} }
#undef isascii #undef isascii
@ -84,7 +84,7 @@ int
isblank(c) isblank(c)
int c; int c;
{ {
return (__istype((c), _B)); return (__istype((c), _CTYPE_B));
} }
#undef iscntrl #undef iscntrl
@ -92,7 +92,7 @@ int
iscntrl(c) iscntrl(c)
int c; int c;
{ {
return (__istype((c), _C)); return (__istype((c), _CTYPE_C));
} }
#undef isdigit #undef isdigit
@ -100,7 +100,7 @@ int
isdigit(c) isdigit(c)
int c; int c;
{ {
return (__isctype((c), _D)); return (__isctype((c), _CTYPE_D));
} }
#undef isgraph #undef isgraph
@ -108,7 +108,7 @@ int
isgraph(c) isgraph(c)
int c; int c;
{ {
return (__istype((c), _G)); return (__istype((c), _CTYPE_G));
} }
#undef ishexnumber #undef ishexnumber
@ -116,7 +116,7 @@ int
ishexnumber(c) ishexnumber(c)
int c; int c;
{ {
return (__istype((c), _X)); return (__istype((c), _CTYPE_X));
} }
#undef isideogram #undef isideogram
@ -124,7 +124,7 @@ int
isideogram(c) isideogram(c)
int c; int c;
{ {
return (__istype((c), _I)); return (__istype((c), _CTYPE_I));
} }
#undef islower #undef islower
@ -132,7 +132,7 @@ int
islower(c) islower(c)
int c; int c;
{ {
return (__istype((c), _L)); return (__istype((c), _CTYPE_L));
} }
#undef isnumber #undef isnumber
@ -140,7 +140,7 @@ int
isnumber(c) isnumber(c)
int c; int c;
{ {
return (__istype((c), _D)); return (__istype((c), _CTYPE_D));
} }
#undef isphonogram #undef isphonogram
@ -148,7 +148,7 @@ int
isphonogram(c) isphonogram(c)
int c; int c;
{ {
return (__istype((c), _Q)); return (__istype((c), _CTYPE_Q));
} }
#undef isprint #undef isprint
@ -156,7 +156,7 @@ int
isprint(c) isprint(c)
int c; int c;
{ {
return (__istype((c), _R)); return (__istype((c), _CTYPE_R));
} }
#undef ispunct #undef ispunct
@ -164,7 +164,7 @@ int
ispunct(c) ispunct(c)
int c; int c;
{ {
return (__istype((c), _P)); return (__istype((c), _CTYPE_P));
} }
#undef isrune #undef isrune
@ -180,7 +180,7 @@ int
isspace(c) isspace(c)
int c; int c;
{ {
return (__istype((c), _S)); return (__istype((c), _CTYPE_S));
} }
#undef isspecial #undef isspecial
@ -188,7 +188,7 @@ int
isspecial(c) isspecial(c)
int c; int c;
{ {
return (__istype((c), _T)); return (__istype((c), _CTYPE_T));
} }
#undef isupper #undef isupper
@ -196,7 +196,7 @@ int
isupper(c) isupper(c)
int c; int c;
{ {
return (__istype((c), _U)); return (__istype((c), _CTYPE_U));
} }
#undef isxdigit #undef isxdigit
@ -204,7 +204,7 @@ int
isxdigit(c) isxdigit(c)
int c; int c;
{ {
return (__isctype((c), _X)); return (__isctype((c), _CTYPE_X));
} }
#undef toascii #undef toascii

View File

@ -54,38 +54,134 @@ _RuneLocale _DefaultRuneLocale = {
_none_sputrune, _none_sputrune,
0xFFFD, 0xFFFD,
{ /*00*/ _C, _C, _C, _C, { /*00*/ _CTYPE_C,
_C, _C, _C, _C, _CTYPE_C,
/*08*/ _C, _C|_S|_B, _C|_S, _C|_S, _CTYPE_C,
_C|_S, _C|_S, _C, _C, _CTYPE_C,
/*10*/ _C, _C, _C, _C, _CTYPE_C,
_C, _C, _C, _C, _CTYPE_C,
/*18*/ _C, _C, _C, _C, _CTYPE_C,
_C, _C, _C, _C, _CTYPE_C,
/*20*/ _S|_B|_R, _P|_R|_G, _P|_R|_G, _P|_R|_G, /*08*/ _CTYPE_C,
_P|_R|_G, _P|_R|_G, _P|_R|_G, _P|_R|_G, _CTYPE_C|_CTYPE_S|_CTYPE_B,
/*28*/ _P|_R|_G, _P|_R|_G, _P|_R|_G, _P|_R|_G, _CTYPE_C|_CTYPE_S,
_P|_R|_G, _P|_R|_G, _P|_R|_G, _P|_R|_G, _CTYPE_C|_CTYPE_S,
/*30*/ _D|_R|_G|_X|0, _D|_R|_G|_X|1, _D|_R|_G|_X|2, _D|_R|_G|_X|3, _CTYPE_C|_CTYPE_S,
_D|_R|_G|_X|4, _D|_R|_G|_X|5, _D|_R|_G|_X|6, _D|_R|_G|_X|7, _CTYPE_C|_CTYPE_S,
/*38*/ _D|_R|_G|_X|8, _D|_R|_G|_X|9, _P|_R|_G, _P|_R|_G, _CTYPE_C,
_P|_R|_G, _P|_R|_G, _P|_R|_G, _P|_R|_G, _CTYPE_C,
/*40*/ _P|_R|_G, _U|_X|_R|_G|_A|10, _U|_X|_R|_G|_A|11, _U|_X|_R|_G|_A|12, /*10*/ _CTYPE_C,
_U|_X|_R|_G|_A|13, _U|_X|_R|_G|_A|14, _U|_X|_R|_G|_A|15, _U|_R|_G|_A, _CTYPE_C,
/*48*/ _U|_R|_G|_A, _U|_R|_G|_A, _U|_R|_G|_A, _U|_R|_G|_A, _CTYPE_C,
_U|_R|_G|_A, _U|_R|_G|_A, _U|_R|_G|_A, _U|_R|_G|_A, _CTYPE_C,
/*50*/ _U|_R|_G|_A, _U|_R|_G|_A, _U|_R|_G|_A, _U|_R|_G|_A, _CTYPE_C,
_U|_R|_G|_A, _U|_R|_G|_A, _U|_R|_G|_A, _U|_R|_G|_A, _CTYPE_C,
/*58*/ _U|_R|_G|_A, _U|_R|_G|_A, _U|_R|_G|_A, _P|_R|_G, _CTYPE_C,
_P|_R|_G, _P|_R|_G, _P|_R|_G, _P|_R|_G, _CTYPE_C,
/*60*/ _P|_R|_G, _L|_X|_R|_G|_A|10, _L|_X|_R|_G|_A|11, _L|_X|_R|_G|_A|12, /*18*/ _CTYPE_C,
_L|_X|_R|_G|_A|13, _L|_X|_R|_G|_A|14, _L|_X|_R|_G|_A|15, _L|_R|_G|_A, _CTYPE_C,
/*68*/ _L|_R|_G|_A, _L|_R|_G|_A, _L|_R|_G|_A, _L|_R|_G|_A, _CTYPE_C,
_L|_R|_G|_A, _L|_R|_G|_A, _L|_R|_G|_A, _L|_R|_G|_A, _CTYPE_C,
/*70*/ _L|_R|_G|_A, _L|_R|_G|_A, _L|_R|_G|_A, _L|_R|_G|_A, _CTYPE_C,
_L|_R|_G|_A, _L|_R|_G|_A, _L|_R|_G|_A, _L|_R|_G|_A, _CTYPE_C,
/*78*/ _L|_R|_G|_A, _L|_R|_G|_A, _L|_R|_G|_A, _P|_R|_G, _CTYPE_C,
_P|_R|_G, _P|_R|_G, _P|_R|_G, _C, _CTYPE_C,
/*20*/ _CTYPE_S|_CTYPE_B|_CTYPE_R,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
/*28*/ _CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
/*30*/ _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|0,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|1,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|2,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|3,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|4,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|5,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|6,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|7,
/*38*/ _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|8,
_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|9,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
/*40*/ _CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|10,
_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|11,
_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|12,
_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|13,
_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|14,
_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|15,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
/*48*/ _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
/*50*/ _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
/*58*/ _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
/*60*/ _CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|10,
_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|11,
_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|12,
_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|13,
_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|14,
_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|15,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
/*68*/ _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
/*70*/ _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
/*78*/ _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_P|_CTYPE_R|_CTYPE_G,
_CTYPE_C,
}, },
{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,

View File

@ -37,6 +37,7 @@
#ifndef lint #ifndef lint
static char sccsid[] = "@(#)lex.l 8.1 (Berkeley) 6/6/93"; static char sccsid[] = "@(#)lex.l 8.1 (Berkeley) 6/6/93";
static char rcsid[] = "$FreeBSD$";
#endif /* not lint */ #endif /* not lint */
#include <ctype.h> #include <ctype.h>
@ -84,20 +85,34 @@ MAPUPPER { return(MAPUPPER); }
TODIGIT { return(DIGITMAP); } TODIGIT { return(DIGITMAP); }
INVALID { return(INVALID); } INVALID { return(INVALID); }
ALPHA { yylval.i = _A|_R|_G; return(LIST); } ALPHA { yylval.i = _CTYPE_A|_CTYPE_R|_CTYPE_G;
CONTROL { yylval.i = _C; return(LIST); } return(LIST); }
DIGIT { yylval.i = _D|_R|_G; return(LIST); } CONTROL { yylval.i = _CTYPE_C;
GRAPH { yylval.i = _G|_R; return(LIST); } return(LIST); }
LOWER { yylval.i = _L|_R|_G; return(LIST); } DIGIT { yylval.i = _CTYPE_D|_CTYPE_R|_CTYPE_G;
PUNCT { yylval.i = _P|_R|_G; return(LIST); } return(LIST); }
SPACE { yylval.i = _S; return(LIST); } GRAPH { yylval.i = _CTYPE_G|_CTYPE_R;
UPPER { yylval.i = _U|_R|_G; return(LIST); } return(LIST); }
XDIGIT { yylval.i = _X|_R|_G; return(LIST); } LOWER { yylval.i = _CTYPE_L|_CTYPE_R|_CTYPE_G;
BLANK { yylval.i = _B; return(LIST); } return(LIST); }
PRINT { yylval.i = _R; return(LIST); } PUNCT { yylval.i = _CTYPE_P|_CTYPE_R|_CTYPE_G;
IDEOGRAM { yylval.i = _I|_R|_G; return(LIST); } return(LIST); }
SPECIAL { yylval.i = _T|_R|_G; return(LIST); } SPACE { yylval.i = _CTYPE_S;
PHONOGRAM { yylval.i = _Q|_R|_G; return(LIST); } return(LIST); }
UPPER { yylval.i = _CTYPE_U|_CTYPE_R|_CTYPE_G;
return(LIST); }
XDIGIT { yylval.i = _CTYPE_X|_CTYPE_R|_CTYPE_G;
return(LIST); }
BLANK { yylval.i = _CTYPE_B;
return(LIST); }
PRINT { yylval.i = _CTYPE_R;
return(LIST); }
IDEOGRAM { yylval.i = _CTYPE_I|_CTYPE_R|_CTYPE_G;
return(LIST); }
SPECIAL { yylval.i = _CTYPE_T|_CTYPE_R|_CTYPE_G;
return(LIST); }
PHONOGRAM { yylval.i = _CTYPE_Q|_CTYPE_R|_CTYPE_G;
return(LIST); }
VARIABLE[\t ] { static char vbuf[1024]; VARIABLE[\t ] { static char vbuf[1024];
char *v = vbuf; char *v = vbuf;

View File

@ -37,6 +37,7 @@
#ifndef lint #ifndef lint
static char sccsid[] = "@(#)yacc.y 8.1 (Berkeley) 6/6/93"; static char sccsid[] = "@(#)yacc.y 8.1 (Berkeley) 6/6/93";
static char rcsid[] = "$FreeBSD$";
#endif /* not lint */ #endif /* not lint */
#include <ctype.h> #include <ctype.h>
@ -739,20 +740,20 @@ dump_tables()
else else
fprintf(stderr, "%04x: %2d", x, (int)(r & 0xff)); fprintf(stderr, "%04x: %2d", x, (int)(r & 0xff));
fprintf(stderr, " %4s", (r & _A) ? "alph" : ""); fprintf(stderr, " %4s", (r & _CTYPE_A) ? "alph" : "");
fprintf(stderr, " %4s", (r & _C) ? "ctrl" : ""); fprintf(stderr, " %4s", (r & _CTYPE_C) ? "ctrl" : "");
fprintf(stderr, " %4s", (r & _D) ? "dig" : ""); fprintf(stderr, " %4s", (r & _CTYPE_D) ? "dig" : "");
fprintf(stderr, " %4s", (r & _G) ? "graf" : ""); fprintf(stderr, " %4s", (r & _CTYPE_G) ? "graf" : "");
fprintf(stderr, " %4s", (r & _L) ? "low" : ""); fprintf(stderr, " %4s", (r & _CTYPE_L) ? "low" : "");
fprintf(stderr, " %4s", (r & _P) ? "punc" : ""); fprintf(stderr, " %4s", (r & _CTYPE_P) ? "punc" : "");
fprintf(stderr, " %4s", (r & _S) ? "spac" : ""); fprintf(stderr, " %4s", (r & _CTYPE_S) ? "spac" : "");
fprintf(stderr, " %4s", (r & _U) ? "upp" : ""); fprintf(stderr, " %4s", (r & _CTYPE_U) ? "upp" : "");
fprintf(stderr, " %4s", (r & _X) ? "xdig" : ""); fprintf(stderr, " %4s", (r & _CTYPE_X) ? "xdig" : "");
fprintf(stderr, " %4s", (r & _B) ? "blnk" : ""); fprintf(stderr, " %4s", (r & _CTYPE_B) ? "blnk" : "");
fprintf(stderr, " %4s", (r & _R) ? "prnt" : ""); fprintf(stderr, " %4s", (r & _CTYPE_R) ? "prnt" : "");
fprintf(stderr, " %4s", (r & _I) ? "ideo" : ""); fprintf(stderr, " %4s", (r & _CTYPE_I) ? "ideo" : "");
fprintf(stderr, " %4s", (r & _T) ? "spec" : ""); fprintf(stderr, " %4s", (r & _CTYPE_T) ? "spec" : "");
fprintf(stderr, " %4s", (r & _Q) ? "phon" : ""); fprintf(stderr, " %4s", (r & _CTYPE_Q) ? "phon" : "");
fprintf(stderr, "\n"); fprintf(stderr, "\n");
} }
} }
@ -764,39 +765,39 @@ dump_tables()
fprintf(stderr, "%04lx: %2d", fprintf(stderr, "%04lx: %2d",
(unsigned long)list->min, (int)(r & 0xff)); (unsigned long)list->min, (int)(r & 0xff));
fprintf(stderr, " %4s", (r & _A) ? "alph" : ""); fprintf(stderr, " %4s", (r & _CTYPE_A) ? "alph" : "");
fprintf(stderr, " %4s", (r & _C) ? "ctrl" : ""); fprintf(stderr, " %4s", (r & _CTYPE_C) ? "ctrl" : "");
fprintf(stderr, " %4s", (r & _D) ? "dig" : ""); fprintf(stderr, " %4s", (r & _CTYPE_D) ? "dig" : "");
fprintf(stderr, " %4s", (r & _G) ? "graf" : ""); fprintf(stderr, " %4s", (r & _CTYPE_G) ? "graf" : "");
fprintf(stderr, " %4s", (r & _L) ? "low" : ""); fprintf(stderr, " %4s", (r & _CTYPE_L) ? "low" : "");
fprintf(stderr, " %4s", (r & _P) ? "punc" : ""); fprintf(stderr, " %4s", (r & _CTYPE_P) ? "punc" : "");
fprintf(stderr, " %4s", (r & _S) ? "spac" : ""); fprintf(stderr, " %4s", (r & _CTYPE_S) ? "spac" : "");
fprintf(stderr, " %4s", (r & _U) ? "upp" : ""); fprintf(stderr, " %4s", (r & _CTYPE_U) ? "upp" : "");
fprintf(stderr, " %4s", (r & _X) ? "xdig" : ""); fprintf(stderr, " %4s", (r & _CTYPE_X) ? "xdig" : "");
fprintf(stderr, " %4s", (r & _B) ? "blnk" : ""); fprintf(stderr, " %4s", (r & _CTYPE_B) ? "blnk" : "");
fprintf(stderr, " %4s", (r & _R) ? "prnt" : ""); fprintf(stderr, " %4s", (r & _CTYPE_R) ? "prnt" : "");
fprintf(stderr, " %4s", (r & _I) ? "ideo" : ""); fprintf(stderr, " %4s", (r & _CTYPE_I) ? "ideo" : "");
fprintf(stderr, " %4s", (r & _T) ? "spec" : ""); fprintf(stderr, " %4s", (r & _CTYPE_T) ? "spec" : "");
fprintf(stderr, " %4s", (r & _Q) ? "phon" : ""); fprintf(stderr, " %4s", (r & _CTYPE_Q) ? "phon" : "");
fprintf(stderr, "\n...\n"); fprintf(stderr, "\n...\n");
fprintf(stderr, "%04lx: %2d", fprintf(stderr, "%04lx: %2d",
(unsigned long)list->max, (int)(r & 0xff)); (unsigned long)list->max, (int)(r & 0xff));
fprintf(stderr, " %4s", (r & _A) ? "alph" : ""); fprintf(stderr, " %4s", (r & _CTYPE_A) ? "alph" : "");
fprintf(stderr, " %4s", (r & _C) ? "ctrl" : ""); fprintf(stderr, " %4s", (r & _CTYPE_C) ? "ctrl" : "");
fprintf(stderr, " %4s", (r & _D) ? "dig" : ""); fprintf(stderr, " %4s", (r & _CTYPE_D) ? "dig" : "");
fprintf(stderr, " %4s", (r & _G) ? "graf" : ""); fprintf(stderr, " %4s", (r & _CTYPE_G) ? "graf" : "");
fprintf(stderr, " %4s", (r & _L) ? "low" : ""); fprintf(stderr, " %4s", (r & _CTYPE_L) ? "low" : "");
fprintf(stderr, " %4s", (r & _P) ? "punc" : ""); fprintf(stderr, " %4s", (r & _CTYPE_P) ? "punc" : "");
fprintf(stderr, " %4s", (r & _S) ? "spac" : ""); fprintf(stderr, " %4s", (r & _CTYPE_S) ? "spac" : "");
fprintf(stderr, " %4s", (r & _U) ? "upp" : ""); fprintf(stderr, " %4s", (r & _CTYPE_U) ? "upp" : "");
fprintf(stderr, " %4s", (r & _X) ? "xdig" : ""); fprintf(stderr, " %4s", (r & _CTYPE_X) ? "xdig" : "");
fprintf(stderr, " %4s", (r & _B) ? "blnk" : ""); fprintf(stderr, " %4s", (r & _CTYPE_B) ? "blnk" : "");
fprintf(stderr, " %4s", (r & _R) ? "prnt" : ""); fprintf(stderr, " %4s", (r & _CTYPE_R) ? "prnt" : "");
fprintf(stderr, " %4s", (r & _I) ? "ideo" : ""); fprintf(stderr, " %4s", (r & _CTYPE_I) ? "ideo" : "");
fprintf(stderr, " %4s", (r & _T) ? "spec" : ""); fprintf(stderr, " %4s", (r & _CTYPE_T) ? "spec" : "");
fprintf(stderr, " %4s", (r & _Q) ? "phon" : ""); fprintf(stderr, " %4s", (r & _CTYPE_Q) ? "phon" : "");
fprintf(stderr, "\n"); fprintf(stderr, "\n");
} else } else
for (x = list->min; x <= list->max; ++x) { for (x = list->min; x <= list->max; ++x) {
@ -805,20 +806,20 @@ dump_tables()
if (r) { if (r) {
fprintf(stderr, "%04x: %2d", x, (int)(r & 0xff)); fprintf(stderr, "%04x: %2d", x, (int)(r & 0xff));
fprintf(stderr, " %4s", (r & _A) ? "alph" : ""); fprintf(stderr, " %4s", (r & _CTYPE_A) ? "alph" : "");
fprintf(stderr, " %4s", (r & _C) ? "ctrl" : ""); fprintf(stderr, " %4s", (r & _CTYPE_C) ? "ctrl" : "");
fprintf(stderr, " %4s", (r & _D) ? "dig" : ""); fprintf(stderr, " %4s", (r & _CTYPE_D) ? "dig" : "");
fprintf(stderr, " %4s", (r & _G) ? "graf" : ""); fprintf(stderr, " %4s", (r & _CTYPE_G) ? "graf" : "");
fprintf(stderr, " %4s", (r & _L) ? "low" : ""); fprintf(stderr, " %4s", (r & _CTYPE_L) ? "low" : "");
fprintf(stderr, " %4s", (r & _P) ? "punc" : ""); fprintf(stderr, " %4s", (r & _CTYPE_P) ? "punc" : "");
fprintf(stderr, " %4s", (r & _S) ? "spac" : ""); fprintf(stderr, " %4s", (r & _CTYPE_S) ? "spac" : "");
fprintf(stderr, " %4s", (r & _U) ? "upp" : ""); fprintf(stderr, " %4s", (r & _CTYPE_U) ? "upp" : "");
fprintf(stderr, " %4s", (r & _X) ? "xdig" : ""); fprintf(stderr, " %4s", (r & _CTYPE_X) ? "xdig" : "");
fprintf(stderr, " %4s", (r & _B) ? "blnk" : ""); fprintf(stderr, " %4s", (r & _CTYPE_B) ? "blnk" : "");
fprintf(stderr, " %4s", (r & _R) ? "prnt" : ""); fprintf(stderr, " %4s", (r & _CTYPE_R) ? "prnt" : "");
fprintf(stderr, " %4s", (r & _I) ? "ideo" : ""); fprintf(stderr, " %4s", (r & _CTYPE_I) ? "ideo" : "");
fprintf(stderr, " %4s", (r & _T) ? "spec" : ""); fprintf(stderr, " %4s", (r & _CTYPE_T) ? "spec" : "");
fprintf(stderr, " %4s", (r & _Q) ? "phon" : ""); fprintf(stderr, " %4s", (r & _CTYPE_Q) ? "phon" : "");
fprintf(stderr, "\n"); fprintf(stderr, "\n");
} }
} }