4 * Copyright 2000 Francois Gouget.
6 #ifndef __WINE_WCTYPE_H
7 #define __WINE_WCTYPE_H
8 #define __WINE_USE_MSVCRT
11 /* FIXME: winnt.h includes 'ctype.h' which includes 'wctype.h'. So we get
12 * there but WCHAR is not defined.
14 /* Some systems might have wchar_t, but we really need 16 bit characters */
15 #ifndef WINE_WCHAR_DEFINED
16 #ifdef WINE_UNICODE_NATIVE
17 typedef wchar_t WCHAR
, *PWCHAR
;
19 typedef unsigned short WCHAR
, *PWCHAR
;
21 #define WINE_WCHAR_DEFINED
24 #ifdef USE_MSVCRT_PREFIX
25 #define MSVCRT(x) MSVCRT_##x
31 /* ASCII char classification table - binary compatible */
32 #define _UPPER C1_UPPER
33 #define _LOWER C1_LOWER
34 #define _DIGIT C1_DIGIT
35 #define _SPACE C1_SPACE
36 #define _PUNCT C1_PUNCT
37 #define _CONTROL C1_CNTRL
38 #define _BLANK C1_BLANK
39 #define _HEX C1_XDIGIT
40 #define _LEADBYTE 0x8000
41 #define _ALPHA (C1_ALPHA|_UPPER|_LOWER)
43 #ifndef USE_MSVCRT_PREFIX
45 # define WEOF (WCHAR)(0xFFFF)
49 # define MSVCRT_WEOF (WCHAR)(0xFFFF)
51 #endif /* USE_MSVCRT_PREFIX */
53 typedef WCHAR
MSVCRT(wctype_t);
54 typedef WCHAR
MSVCRT(wint_t);
56 /* FIXME: there's something to do with __p__pctype and __p__pwctype */
63 int MSVCRT(is_wctype
)(MSVCRT(wint_t),MSVCRT(wctype_t));
64 int MSVCRT(isleadbyte
)(int);
65 int MSVCRT(iswalnum
)(MSVCRT(wint_t));
66 int MSVCRT(iswalpha
)(MSVCRT(wint_t));
67 int MSVCRT(iswascii
)(MSVCRT(wint_t));
68 int MSVCRT(iswcntrl
)(MSVCRT(wint_t));
69 int MSVCRT(iswctype
)(MSVCRT(wint_t),MSVCRT(wctype_t));
70 int MSVCRT(iswdigit
)(MSVCRT(wint_t));
71 int MSVCRT(iswgraph
)(MSVCRT(wint_t));
72 int MSVCRT(iswlower
)(MSVCRT(wint_t));
73 int MSVCRT(iswprint
)(MSVCRT(wint_t));
74 int MSVCRT(iswpunct
)(MSVCRT(wint_t));
75 int MSVCRT(iswspace
)(MSVCRT(wint_t));
76 int MSVCRT(iswupper
)(MSVCRT(wint_t));
77 int MSVCRT(iswxdigit
)(MSVCRT(wint_t));
78 WCHAR
MSVCRT(towlower
)(WCHAR
);
79 WCHAR
MSVCRT(towupper
)(WCHAR
);
85 #endif /* __WINE_WCTYPE_H */