do not fiddle with lowest 24 bits of wide char
[nvi.git] / common / multibyte.h
blobdbc85eae72268d6b6975742c8f88b7665f8758b8
1 #ifndef MULTIBYTE_H
2 #define MULTIBYTE_H
4 #include <wchar.h>
5 #include <wctype.h>
7 #ifdef USE_WIDECHAR
8 typedef wchar_t RCHAR_T;
9 #define RCHAR_T_MAX ((1 << 24)-1)
10 typedef wchar_t CHAR_T;
11 #define MAX_CHAR_T 0xffffff /* XXXX */
12 typedef u_int UCHAR_T;
13 #define RCHAR_BIT 24
15 #define STRLEN wcslen
16 #define STRTOL wcstol
17 #define STRTOUL wcstoul
18 #define SPRINTF swprintf
19 #define STRCMP wcscmp
20 #define STRPBRK wcspbrk
21 #define TOUPPER towupper
23 #define L(ch) L ## ch
25 #else
26 typedef char RCHAR_T;
27 #define RCHAR_T_MAX CHAR_MAX
28 typedef u_char CHAR_T;
29 #define MAX_CHAR_T 0xff
30 typedef u_char UCHAR_T;
31 #define RCHAR_BIT CHAR_BIT
33 #define STRLEN strlen
34 #define STRTOL strtol
35 #define STRTOUL strtoul
36 #define SPRINTF snprintf
37 #define STRCMP strcmp
38 #define STRPBRK strpbrk
39 #define TOUPPER toupper
41 #define L(ch) ch
43 #endif
45 #define MEMCMP(to, from, n) \
46 memcmp(to, from, (n) * sizeof(*(to)))
47 #define MEMMOVE(p, t, len) memmove(p, t, (len) * sizeof(*(p)))
48 #define MEMCPY(p, t, len) memcpy(p, t, (len) * sizeof(*(p)))
49 #define STRSET(s,c,n) \
50 sizeof(char) == sizeof(CHAR_T) ? memset(s,c,n) : v_strset(s,c,n)
51 #define SIZE(w) (sizeof(w)/sizeof(*w))
53 #endif