Reimplement GetStringTypeA and GetStringTypeExA
Dmitry Timoshkov
dmitry at baikal.ru
Mon Feb 4 02:07:13 CST 2002
Hello.
Changelog:
Dmitry Timoshkov <dmitry at codeweavers.com>
Reimplement GetStringTypeA and GetStringTypeExA.
diff -u cvs/hq/wine/memory/codepage.c wine/memory/codepage.c
--- cvs/hq/wine/memory/codepage.c Mon Dec 10 21:25:44 2001
+++ wine/memory/codepage.c Mon Feb 4 15:54:38 2002
@@ -396,3 +396,43 @@
/* locale is ignored for Unicode */
return GetStringTypeW( type, src, count, chartype );
}
+
+/***********************************************************************=
*******
+ * GetStringTypeA [KERNEL32.@]
+ */
+BOOL WINAPI GetStringTypeA(LCID locale, DWORD type, LPCSTR src, INT coun=
t, LPWORD chartype)
+{
+ char buf[20];
+ UINT cp;
+ INT countW;
+ LPWSTR srcW;
+ BOOL ret =3D FALSE;
+
+ if(count =3D=3D -1) count =3D strlen(src) + 1;
+
+ if(!GetLocaleInfoA(locale, LOCALE_IDEFAULTANSICODEPAGE | LOCALE_NOUS=
EROVERRIDE,
+ buf, sizeof(buf)))
+ {
+ FIXME("For locale %04lx using current ANSI code page\n", locale);
+ cp =3D GetACP();
+ }
+ else
+ cp =3D atoi(buf);
+
+ countW =3D MultiByteToWideChar(cp, 0, src, count, NULL, 0);
+ if((srcW =3D HeapAlloc(GetProcessHeap(), 0, countW * sizeof(WCHAR)))=
)
+ {
+ MultiByteToWideChar(cp, 0, src, count, srcW, countW);
+ ret =3D GetStringTypeW(type, srcW, count, chartype);
+ HeapFree(GetProcessHeap(), 0, srcW);
+ }
+ return ret;
+}
+
+/***********************************************************************=
*******
+ * GetStringTypeExA [KERNEL32.@]
+ */
+BOOL WINAPI GetStringTypeExA(LCID locale, DWORD type, LPCSTR src, INT co=
unt, LPWORD chartype)
+{
+ return GetStringTypeA(locale, type, src, count, chartype);
+}
diff -u cvs/hq/wine/ole/ole2nls.c wine/ole/ole2nls.c
--- cvs/hq/wine/ole/ole2nls.c Thu Jan 3 17:51:39 2002
+++ wine/ole/ole2nls.c Mon Feb 4 15:31:39 2002
@@ -811,591 +811,6 @@
return TRUE;
}
=20
-static const unsigned char CT_CType2_LUT[] =3D {
- C2_NOTAPPLICABLE, /* - 0 */
- C2_NOTAPPLICABLE, /* - 1 */
- C2_NOTAPPLICABLE, /* - 2 */
- C2_NOTAPPLICABLE, /* - 3 */
- C2_NOTAPPLICABLE, /* - 4 */
- C2_NOTAPPLICABLE, /* - 5 */
- C2_NOTAPPLICABLE, /* - 6 */
- C2_NOTAPPLICABLE, /* - 7 */
- C2_NOTAPPLICABLE, /* - 8 */
- C2_SEGMENTSEPARATOR, /* - 9 */
- C2_NOTAPPLICABLE, /* - 10 */
- C2_NOTAPPLICABLE, /* - 11 */
- C2_NOTAPPLICABLE, /* - 12 */
- C2_NOTAPPLICABLE, /* - 13 */
- C2_NOTAPPLICABLE, /* - 14 */
- C2_NOTAPPLICABLE, /* - 15 */
- C2_NOTAPPLICABLE, /* - 16 */
- C2_NOTAPPLICABLE, /* - 17 */
- C2_NOTAPPLICABLE, /* - 18 */
- C2_NOTAPPLICABLE, /* - 19 */
- C2_NOTAPPLICABLE, /* - 20 */
- C2_NOTAPPLICABLE, /* - 21 */
- C2_NOTAPPLICABLE, /* - 22 */
- C2_NOTAPPLICABLE, /* - 23 */
- C2_NOTAPPLICABLE, /* - 24 */
- C2_NOTAPPLICABLE, /* - 25 */
- C2_NOTAPPLICABLE, /* - 26 */
- C2_NOTAPPLICABLE, /* - 27 */
- C2_NOTAPPLICABLE, /* - 28 */
- C2_NOTAPPLICABLE, /* - 29 */
- C2_NOTAPPLICABLE, /* - 30 */
- C2_NOTAPPLICABLE, /* - 31 */
- C2_WHITESPACE, /* - 32 */
- C2_OTHERNEUTRAL, /* ! - 33 */
- C2_OTHERNEUTRAL, /* " - 34 */ /* " */
- C2_EUROPETERMINATOR, /* # - 35 */
- C2_EUROPETERMINATOR, /* $ - 36 */
- C2_EUROPETERMINATOR, /* % - 37 */
- C2_LEFTTORIGHT, /* & - 38 */
- C2_OTHERNEUTRAL, /* ' - 39 */
- C2_OTHERNEUTRAL, /* ( - 40 */
- C2_OTHERNEUTRAL, /* ) - 41 */
- C2_OTHERNEUTRAL, /* * - 42 */
- C2_EUROPETERMINATOR, /* + - 43 */
- C2_COMMONSEPARATOR, /* , - 44 */
- C2_EUROPETERMINATOR, /* - - 45 */
- C2_EUROPESEPARATOR, /* . - 46 */
- C2_EUROPESEPARATOR, /* / - 47 */
- C2_EUROPENUMBER, /* 0 - 48 */
- C2_EUROPENUMBER, /* 1 - 49 */
- C2_EUROPENUMBER, /* 2 - 50 */
- C2_EUROPENUMBER, /* 3 - 51 */
- C2_EUROPENUMBER, /* 4 - 52 */
- C2_EUROPENUMBER, /* 5 - 53 */
- C2_EUROPENUMBER, /* 6 - 54 */
- C2_EUROPENUMBER, /* 7 - 55 */
- C2_EUROPENUMBER, /* 8 - 56 */
- C2_EUROPENUMBER, /* 9 - 57 */
- C2_COMMONSEPARATOR, /* : - 58 */
- C2_OTHERNEUTRAL, /* ; - 59 */
- C2_OTHERNEUTRAL, /* < - 60 */
- C2_OTHERNEUTRAL, /* =3D - 61 */
- C2_OTHERNEUTRAL, /* > - 62 */
- C2_OTHERNEUTRAL, /* ? - 63 */
- C2_LEFTTORIGHT, /* @ - 64 */
- C2_LEFTTORIGHT, /* A - 65 */
- C2_LEFTTORIGHT, /* B - 66 */
- C2_LEFTTORIGHT, /* C - 67 */
- C2_LEFTTORIGHT, /* D - 68 */
- C2_LEFTTORIGHT, /* E - 69 */
- C2_LEFTTORIGHT, /* F - 70 */
- C2_LEFTTORIGHT, /* G - 71 */
- C2_LEFTTORIGHT, /* H - 72 */
- C2_LEFTTORIGHT, /* I - 73 */
- C2_LEFTTORIGHT, /* J - 74 */
- C2_LEFTTORIGHT, /* K - 75 */
- C2_LEFTTORIGHT, /* L - 76 */
- C2_LEFTTORIGHT, /* M - 77 */
- C2_LEFTTORIGHT, /* N - 78 */
- C2_LEFTTORIGHT, /* O - 79 */
- C2_LEFTTORIGHT, /* P - 80 */
- C2_LEFTTORIGHT, /* Q - 81 */
- C2_LEFTTORIGHT, /* R - 82 */
- C2_LEFTTORIGHT, /* S - 83 */
- C2_LEFTTORIGHT, /* T - 84 */
- C2_LEFTTORIGHT, /* U - 85 */
- C2_LEFTTORIGHT, /* V - 86 */
- C2_LEFTTORIGHT, /* W - 87 */
- C2_LEFTTORIGHT, /* X - 88 */
- C2_LEFTTORIGHT, /* Y - 89 */
- C2_LEFTTORIGHT, /* Z - 90 */
- C2_OTHERNEUTRAL, /* [ - 91 */
- C2_OTHERNEUTRAL, /* \ - 92 */
- C2_OTHERNEUTRAL, /* ] - 93 */
- C2_OTHERNEUTRAL, /* ^ - 94 */
- C2_OTHERNEUTRAL, /* _ - 95 */
- C2_OTHERNEUTRAL, /* ` - 96 */
- C2_LEFTTORIGHT, /* a - 97 */
- C2_LEFTTORIGHT, /* b - 98 */
- C2_LEFTTORIGHT, /* c - 99 */
- C2_LEFTTORIGHT, /* d - 100 */
- C2_LEFTTORIGHT, /* e - 101 */
- C2_LEFTTORIGHT, /* f - 102 */
- C2_LEFTTORIGHT, /* g - 103 */
- C2_LEFTTORIGHT, /* h - 104 */
- C2_LEFTTORIGHT, /* i - 105 */
- C2_LEFTTORIGHT, /* j - 106 */
- C2_LEFTTORIGHT, /* k - 107 */
- C2_LEFTTORIGHT, /* l - 108 */
- C2_LEFTTORIGHT, /* m - 109 */
- C2_LEFTTORIGHT, /* n - 110 */
- C2_LEFTTORIGHT, /* o - 111 */
- C2_LEFTTORIGHT, /* p - 112 */
- C2_LEFTTORIGHT, /* q - 113 */
- C2_LEFTTORIGHT, /* r - 114 */
- C2_LEFTTORIGHT, /* s - 115 */
- C2_LEFTTORIGHT, /* t - 116 */
- C2_LEFTTORIGHT, /* u - 117 */
- C2_LEFTTORIGHT, /* v - 118 */
- C2_LEFTTORIGHT, /* w - 119 */
- C2_LEFTTORIGHT, /* x - 120 */
- C2_LEFTTORIGHT, /* y - 121 */
- C2_LEFTTORIGHT, /* z - 122 */
- C2_OTHERNEUTRAL, /* { - 123 */
- C2_OTHERNEUTRAL, /* | - 124 */
- C2_OTHERNEUTRAL, /* } - 125 */
- C2_OTHERNEUTRAL, /* ~ - 126 */
- C2_NOTAPPLICABLE, /* =7F - 127 */
- C2_NOTAPPLICABLE, /* =80 - 128 */
- C2_NOTAPPLICABLE, /* =81 - 129 */
- C2_OTHERNEUTRAL, /* =82 - 130 */
- C2_LEFTTORIGHT, /* =83 - 131 */
- C2_OTHERNEUTRAL, /* =84 - 132 */
- C2_OTHERNEUTRAL, /* =85 - 133 */
- C2_OTHERNEUTRAL, /* =86 - 134 */
- C2_OTHERNEUTRAL, /* =87 - 135 */
- C2_LEFTTORIGHT, /* =88 - 136 */
- C2_EUROPETERMINATOR, /* =89 - 137 */
- C2_LEFTTORIGHT, /* =8A - 138 */
- C2_OTHERNEUTRAL, /* =8B - 139 */
- C2_LEFTTORIGHT, /* =8C - 140 */
- C2_NOTAPPLICABLE, /* =8D - 141 */
- C2_NOTAPPLICABLE, /* =8E - 142 */
- C2_NOTAPPLICABLE, /* =8F - 143 */
- C2_NOTAPPLICABLE, /* =90 - 144 */
- C2_OTHERNEUTRAL, /* =91 - 145 */
- C2_OTHERNEUTRAL, /* =92 - 146 */
- C2_OTHERNEUTRAL, /* =93 - 147 */
- C2_OTHERNEUTRAL, /* =94 - 148 */
- C2_OTHERNEUTRAL, /* =95 - 149 */
- C2_OTHERNEUTRAL, /* =96 - 150 */
- C2_OTHERNEUTRAL, /* =97 - 151 */
- C2_LEFTTORIGHT, /* =98 - 152 */
- C2_OTHERNEUTRAL, /* =99 - 153 */
- C2_LEFTTORIGHT, /* =9A - 154 */
- C2_OTHERNEUTRAL, /* =9B - 155 */
- C2_LEFTTORIGHT, /* =9C - 156 */
- C2_NOTAPPLICABLE, /* =9D - 157 */
- C2_NOTAPPLICABLE, /* =9E - 158 */
- C2_LEFTTORIGHT, /* =9F - 159 */
- C2_WHITESPACE, /* =A0 - 160 */
- C2_OTHERNEUTRAL, /* =A1 - 161 */
- C2_EUROPETERMINATOR, /* =A2 - 162 */
- C2_EUROPETERMINATOR, /* =A3 - 163 */
- C2_EUROPETERMINATOR, /* =A4 - 164 */
- C2_EUROPETERMINATOR, /* =A5 - 165 */
- C2_OTHERNEUTRAL, /* =A6 - 166 */
- C2_OTHERNEUTRAL, /* =A7 - 167 */
- C2_OTHERNEUTRAL, /* =A8 - 168 */
- C2_OTHERNEUTRAL, /* =A9 - 169 */
- C2_OTHERNEUTRAL, /* =AA - 170 */
- C2_OTHERNEUTRAL, /* =AB - 171 */
- C2_OTHERNEUTRAL, /* =AC - 172 */
- C2_OTHERNEUTRAL, /* =AD - 173 */
- C2_OTHERNEUTRAL, /* =AE - 174 */
- C2_OTHERNEUTRAL, /* =AF - 175 */
- C2_EUROPETERMINATOR, /* =B0 - 176 */
- C2_EUROPETERMINATOR, /* =B1 - 177 */
- C2_EUROPENUMBER, /* =B2 - 178 */
- C2_EUROPENUMBER, /* =B3 - 179 */
- C2_OTHERNEUTRAL, /* =B4 - 180 */
- C2_OTHERNEUTRAL, /* =B5 - 181 */
- C2_OTHERNEUTRAL, /* =B6 - 182 */
- C2_OTHERNEUTRAL, /* =B7 - 183 */
- C2_OTHERNEUTRAL, /* =B8 - 184 */
- C2_EUROPENUMBER, /* =B9 - 185 */
- C2_OTHERNEUTRAL, /* =BA - 186 */
- C2_OTHERNEUTRAL, /* =BB - 187 */
- C2_OTHERNEUTRAL, /* =BC - 188 */
- C2_OTHERNEUTRAL, /* =BD - 189 */
- C2_OTHERNEUTRAL, /* =BE - 190 */
- C2_OTHERNEUTRAL, /* =BF - 191 */
- C2_LEFTTORIGHT, /* =C0 - 192 */
- C2_LEFTTORIGHT, /* =C1 - 193 */
- C2_LEFTTORIGHT, /* =C2 - 194 */
- C2_LEFTTORIGHT, /* =C3 - 195 */
- C2_LEFTTORIGHT, /* =C4 - 196 */
- C2_LEFTTORIGHT, /* =C5 - 197 */
- C2_LEFTTORIGHT, /* =C6 - 198 */
- C2_LEFTTORIGHT, /* =C7 - 199 */
- C2_LEFTTORIGHT, /* =C8 - 200 */
- C2_LEFTTORIGHT, /* =C9 - 201 */
- C2_LEFTTORIGHT, /* =CA - 202 */
- C2_LEFTTORIGHT, /* =CB - 203 */
- C2_LEFTTORIGHT, /* =CC - 204 */
- C2_LEFTTORIGHT, /* =CD - 205 */
- C2_LEFTTORIGHT, /* =CE - 206 */
- C2_LEFTTORIGHT, /* =CF - 207 */
- C2_LEFTTORIGHT, /* =D0 - 208 */
- C2_LEFTTORIGHT, /* =D1 - 209 */
- C2_LEFTTORIGHT, /* =D2 - 210 */
- C2_LEFTTORIGHT, /* =D3 - 211 */
- C2_LEFTTORIGHT, /* =D4 - 212 */
- C2_LEFTTORIGHT, /* =D5 - 213 */
- C2_LEFTTORIGHT, /* =D6 - 214 */
- C2_OTHERNEUTRAL, /* =D7 - 215 */
- C2_LEFTTORIGHT, /* =D8 - 216 */
- C2_LEFTTORIGHT, /* =D9 - 217 */
- C2_LEFTTORIGHT, /* =DA - 218 */
- C2_LEFTTORIGHT, /* =DB - 219 */
- C2_LEFTTORIGHT, /* =DC - 220 */
- C2_LEFTTORIGHT, /* =DD - 221 */
- C2_LEFTTORIGHT, /* =DE - 222 */
- C2_LEFTTORIGHT, /* =DF - 223 */
- C2_LEFTTORIGHT, /* =E0 - 224 */
- C2_LEFTTORIGHT, /* =E1 - 225 */
- C2_LEFTTORIGHT, /* =E2 - 226 */
- C2_LEFTTORIGHT, /* =E3 - 227 */
- C2_LEFTTORIGHT, /* =E4 - 228 */
- C2_LEFTTORIGHT, /* =E5 - 229 */
- C2_LEFTTORIGHT, /* =E6 - 230 */
- C2_LEFTTORIGHT, /* =E7 - 231 */
- C2_LEFTTORIGHT, /* =E8 - 232 */
- C2_LEFTTORIGHT, /* =E9 - 233 */
- C2_LEFTTORIGHT, /* =EA - 234 */
- C2_LEFTTORIGHT, /* =EB - 235 */
- C2_LEFTTORIGHT, /* =EC - 236 */
- C2_LEFTTORIGHT, /* =ED - 237 */
- C2_LEFTTORIGHT, /* =EE - 238 */
- C2_LEFTTORIGHT, /* =EF - 239 */
- C2_LEFTTORIGHT, /* =F0 - 240 */
- C2_LEFTTORIGHT, /* =F1 - 241 */
- C2_LEFTTORIGHT, /* =F2 - 242 */
- C2_LEFTTORIGHT, /* =F3 - 243 */
- C2_LEFTTORIGHT, /* =F4 - 244 */
- C2_LEFTTORIGHT, /* =F5 - 245 */
- C2_LEFTTORIGHT, /* =F6 - 246 */
- C2_OTHERNEUTRAL, /* =F7 - 247 */
- C2_LEFTTORIGHT, /* =F8 - 248 */
- C2_LEFTTORIGHT, /* =F9 - 249 */
- C2_LEFTTORIGHT, /* =FA - 250 */
- C2_LEFTTORIGHT, /* =FB - 251 */
- C2_LEFTTORIGHT, /* =FC - 252 */
- C2_LEFTTORIGHT, /* =FD - 253 */
- C2_LEFTTORIGHT, /* =FE - 254 */
- C2_LEFTTORIGHT /* =FF - 255 */
-};
-
-static const WORD OLE2NLS_CT_CType3_LUT[] =3D {=20
- 0x0000, /* - 0 */
- 0x0000, /* - 1 */
- 0x0000, /* - 2 */
- 0x0000, /* - 3 */
- 0x0000, /* - 4 */
- 0x0000, /* - 5 */
- 0x0000, /* - 6 */
- 0x0000, /* - 7 */
- 0x0000, /* - 8 */
- 0x0008, /* - 9 */
- 0x0008, /* - 10 */
- 0x0008, /* - 11 */
- 0x0008, /* - 12 */
- 0x0008, /* - 13 */
- 0x0000, /* - 14 */
- 0x0000, /* - 15 */
- 0x0000, /* - 16 */
- 0x0000, /* - 17 */
- 0x0000, /* - 18 */
- 0x0000, /* - 19 */
- 0x0000, /* - 20 */
- 0x0000, /* - 21 */
- 0x0000, /* - 22 */
- 0x0000, /* - 23 */
- 0x0000, /* - 24 */
- 0x0000, /* - 25 */
- 0x0000, /* - 26 */
- 0x0000, /* - 27 */
- 0x0000, /* - 28 */
- 0x0000, /* - 29 */
- 0x0000, /* - 30 */
- 0x0000, /* - 31 */
- 0x0048, /* - 32 */
- 0x0048, /* ! - 33 */
- 0x0448, /* " - 34 */ /* " */
- 0x0048, /* # - 35 */
- 0x0448, /* $ - 36 */
- 0x0048, /* % - 37 */
- 0x0048, /* & - 38 */
- 0x0440, /* ' - 39 */
- 0x0048, /* ( - 40 */
- 0x0048, /* ) - 41 */
- 0x0048, /* * - 42 */
- 0x0048, /* + - 43 */
- 0x0048, /* , - 44 */
- 0x0440, /* - - 45 */
- 0x0048, /* . - 46 */
- 0x0448, /* / - 47 */
- 0x0040, /* 0 - 48 */
- 0x0040, /* 1 - 49 */
- 0x0040, /* 2 - 50 */
- 0x0040, /* 3 - 51 */
- 0x0040, /* 4 - 52 */
- 0x0040, /* 5 - 53 */
- 0x0040, /* 6 - 54 */
- 0x0040, /* 7 - 55 */
- 0x0040, /* 8 - 56 */
- 0x0040, /* 9 - 57 */
- 0x0048, /* : - 58 */
- 0x0048, /* ; - 59 */
- 0x0048, /* < - 60 */
- 0x0448, /* =3D - 61 */
- 0x0048, /* > - 62 */
- 0x0048, /* ? - 63 */
- 0x0448, /* @ - 64 */
- 0x8040, /* A - 65 */
- 0x8040, /* B - 66 */
- 0x8040, /* C - 67 */
- 0x8040, /* D - 68 */
- 0x8040, /* E - 69 */
- 0x8040, /* F - 70 */
- 0x8040, /* G - 71 */
- 0x8040, /* H - 72 */
- 0x8040, /* I - 73 */
- 0x8040, /* J - 74 */
- 0x8040, /* K - 75 */
- 0x8040, /* L - 76 */
- 0x8040, /* M - 77 */
- 0x8040, /* N - 78 */
- 0x8040, /* O - 79 */
- 0x8040, /* P - 80 */
- 0x8040, /* Q - 81 */
- 0x8040, /* R - 82 */
- 0x8040, /* S - 83 */
- 0x8040, /* T - 84 */
- 0x8040, /* U - 85 */
- 0x8040, /* V - 86 */
- 0x8040, /* W - 87 */
- 0x8040, /* X - 88 */
- 0x8040, /* Y - 89 */
- 0x8040, /* Z - 90 */
- 0x0048, /* [ - 91 */
- 0x0448, /* \ - 92 */
- 0x0048, /* ] - 93 */
- 0x0448, /* ^ - 94 */
- 0x0448, /* _ - 95 */
- 0x0448, /* ` - 96 */
- 0x8040, /* a - 97 */
- 0x8040, /* b - 98 */
- 0x8040, /* c - 99 */
- 0x8040, /* d - 100 */
- 0x8040, /* e - 101 */
- 0x8040, /* f - 102 */
- 0x8040, /* g - 103 */
- 0x8040, /* h - 104 */
- 0x8040, /* i - 105 */
- 0x8040, /* j - 106 */
- 0x8040, /* k - 107 */
- 0x8040, /* l - 108 */
- 0x8040, /* m - 109 */
- 0x8040, /* n - 110 */
- 0x8040, /* o - 111 */
- 0x8040, /* p - 112 */
- 0x8040, /* q - 113 */
- 0x8040, /* r - 114 */
- 0x8040, /* s - 115 */
- 0x8040, /* t - 116 */
- 0x8040, /* u - 117 */
- 0x8040, /* v - 118 */
- 0x8040, /* w - 119 */
- 0x8040, /* x - 120 */
- 0x8040, /* y - 121 */
- 0x8040, /* z - 122 */
- 0x0048, /* { - 123 */
- 0x0048, /* | - 124 */
- 0x0048, /* } - 125 */
- 0x0448, /* ~ - 126 */
- 0x0000, /* =7F - 127 */
- 0x0000, /* =80 - 128 */
- 0x0000, /* =81 - 129 */
- 0x0008, /* =82 - 130 */
- 0x8000, /* =83 - 131 */
- 0x0008, /* =84 - 132 */
- 0x0008, /* =85 - 133 */
- 0x0008, /* =86 - 134 */
- 0x0008, /* =87 - 135 */
- 0x0001, /* =88 - 136 */
- 0x0008, /* =89 - 137 */
- 0x8003, /* =8A - 138 */
- 0x0008, /* =8B - 139 */
- 0x8000, /* =8C - 140 */
- 0x0000, /* =8D - 141 */
- 0x0000, /* =8E - 142 */
- 0x0000, /* =8F - 143 */
- 0x0000, /* =90 - 144 */
- 0x0088, /* =91 - 145 */
- 0x0088, /* =92 - 146 */
- 0x0088, /* =93 - 147 */
- 0x0088, /* =94 - 148 */
- 0x0008, /* =95 - 149 */
- 0x0400, /* =96 - 150 */
- 0x0400, /* =97 - 151 */
- 0x0408, /* =98 - 152 */
- 0x0000, /* =99 - 153 */
- 0x8003, /* =9A - 154 */
- 0x0008, /* =9B - 155 */
- 0x8000, /* =9C - 156 */
- 0x0000, /* =9D - 157 */
- 0x0000, /* =9E - 158 */
- 0x8003, /* =9F - 159 */
- 0x0008, /* =A0 - 160 */
- 0x0008, /* =A1 - 161 */
- 0x0048, /* =A2 - 162 */
- 0x0048, /* =A3 - 163 */
- 0x0008, /* =A4 - 164 */
- 0x0048, /* =A5 - 165 */
- 0x0048, /* =A6 - 166 */
- 0x0008, /* =A7 - 167 */
- 0x0408, /* =A8 - 168 */
- 0x0008, /* =A9 - 169 */
- 0x0400, /* =AA - 170 */
- 0x0008, /* =AB - 171 */
- 0x0048, /* =AC - 172 */
- 0x0408, /* =AD - 173 */
- 0x0008, /* =AE - 174 */
- 0x0448, /* =AF - 175 */
- 0x0008, /* =B0 - 176 */
- 0x0008, /* =B1 - 177 */
- 0x0000, /* =B2 - 178 */
- 0x0000, /* =B3 - 179 */
- 0x0408, /* =B4 - 180 */
- 0x0008, /* =B5 - 181 */
- 0x0008, /* =B6 - 182 */
- 0x0008, /* =B7 - 183 */
- 0x0408, /* =B8 - 184 */
- 0x0000, /* =B9 - 185 */
- 0x0400, /* =BA - 186 */
- 0x0008, /* =BB - 187 */
- 0x0000, /* =BC - 188 */
- 0x0000, /* =BD - 189 */
- 0x0000, /* =BE - 190 */
- 0x0008, /* =BF - 191 */
- 0x8003, /* =C0 - 192 */
- 0x8003, /* =C1 - 193 */
- 0x8003, /* =C2 - 194 */
- 0x8003, /* =C3 - 195 */
- 0x8003, /* =C4 - 196 */
- 0x8003, /* =C5 - 197 */
- 0x8000, /* =C6 - 198 */
- 0x8003, /* =C7 - 199 */
- 0x8003, /* =C8 - 200 */
- 0x8003, /* =C9 - 201 */
- 0x8003, /* =CA - 202 */
- 0x8003, /* =CB - 203 */
- 0x8003, /* =CC - 204 */
- 0x8003, /* =CD - 205 */
- 0x8003, /* =CE - 206 */
- 0x8003, /* =CF - 207 */
- 0x8000, /* =D0 - 208 */
- 0x8003, /* =D1 - 209 */
- 0x8003, /* =D2 - 210 */
- 0x8003, /* =D3 - 211 */
- 0x8003, /* =D4 - 212 */
- 0x8003, /* =D5 - 213 */
- 0x8003, /* =D6 - 214 */
- 0x0008, /* =D7 - 215 */
- 0x8003, /* =D8 - 216 */
- 0x8003, /* =D9 - 217 */
- 0x8003, /* =DA - 218 */
- 0x8003, /* =DB - 219 */
- 0x8003, /* =DC - 220 */
- 0x8003, /* =DD - 221 */
- 0x8000, /* =DE - 222 */
- 0x8000, /* =DF - 223 */
- 0x8003, /* =E0 - 224 */
- 0x8003, /* =E1 - 225 */
- 0x8003, /* =E2 - 226 */
- 0x8003, /* =E3 - 227 */
- 0x8003, /* =E4 - 228 */
- 0x8003, /* =E5 - 229 */
- 0x8000, /* =E6 - 230 */
- 0x8003, /* =E7 - 231 */
- 0x8003, /* =E8 - 232 */
- 0x8003, /* =E9 - 233 */
- 0x8003, /* =EA - 234 */
- 0x8003, /* =EB - 235 */
- 0x8003, /* =EC - 236 */
- 0x8003, /* =ED - 237 */
- 0x8003, /* =EE - 238 */
- 0x8003, /* =EF - 239 */
- 0x8000, /* =F0 - 240 */
- 0x8003, /* =F1 - 241 */
- 0x8003, /* =F2 - 242 */
- 0x8003, /* =F3 - 243 */
- 0x8003, /* =F4 - 244 */
- 0x8003, /* =F5 - 245 */
- 0x8003, /* =F6 - 246 */
- 0x0008, /* =F7 - 247 */
- 0x8003, /* =F8 - 248 */
- 0x8003, /* =F9 - 249 */
- 0x8003, /* =FA - 250 */
- 0x8003, /* =FB - 251 */
- 0x8003, /* =FC - 252 */
- 0x8003, /* =FD - 253 */
- 0x8000, /* =FE - 254 */
- 0x8003 /* =FF - 255 */
-};
-
-/***********************************************************************=
*******
- * GetStringTypeA [KERNEL32.@]
- */
-BOOL WINAPI GetStringTypeA(LCID locale,DWORD dwInfoType,LPCSTR src,
- INT cchSrc,LPWORD chartype)
-{
- return GetStringTypeExA(locale,dwInfoType,src,cchSrc,chartype);
-}
-
-/***********************************************************************=
*******
- * GetStringTypeExA [KERNEL32.@]
- *
- * FIXME: Ignores the locale.
- */
-BOOL WINAPI GetStringTypeExA(LCID locale,DWORD dwInfoType,LPCSTR src,
- INT cchSrc,LPWORD chartype)
-{
- int i;
-=09
- if ((src=3D=3DNULL) || (chartype=3D=3DNULL) || (src=3D=3D(LPSTR)chartyp=
e))
- {
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
-
- if (cchSrc=3D=3D-1)
- cchSrc=3Dstrlen(src)+1;
- =20
- switch (dwInfoType) {
- case CT_CTYPE1:
- for (i=3D0;i<cchSrc;i++)=20
- {
- chartype[i] =3D 0;
- if (isdigit(src[i])) chartype[i]|=3DC1_DIGIT;
- if (isalpha(src[i])) chartype[i]|=3DC1_ALPHA;
- if (islower(src[i])) chartype[i]|=3DC1_LOWER;
- if (isupper(src[i])) chartype[i]|=3DC1_UPPER;
- if (isspace(src[i])) chartype[i]|=3DC1_SPACE;
- if (ispunct(src[i])) chartype[i]|=3DC1_PUNCT;
- if (iscntrl(src[i])) chartype[i]|=3DC1_CNTRL;
-/* FIXME: isblank() is a GNU extension */
-/* if (isblank(src[i])) chartype[i]|=3DC1_BLANK; */
- if ((src[i] =3D=3D ' ') || (src[i] =3D=3D '\t')) chartype[i]|=3DC1_=
BLANK;
- /* C1_XDIGIT */
- }
- return TRUE;
-
- case CT_CTYPE2:
- for (i=3D0;i<cchSrc;i++)=20
- {
- chartype[i]=3D(WORD)CT_CType2_LUT[i];
- }
- return TRUE;
-
- case CT_CTYPE3:
- for (i=3D0;i<cchSrc;i++)=20
- {
- chartype[i]=3DOLE2NLS_CT_CType3_LUT[i];
- }
- return TRUE;
-
- default:
- ERR("Unknown dwInfoType:%ld\n",dwInfoType);
- return FALSE;
- }
-}
-
/***********************************************************************
* VerLanguageNameA [KERNEL32.@]
*/
More information about the wine-patches
mailing list