ReactOS 0.4.16-dev-2104-gb84fa49
ctype.c
Go to the documentation of this file.
1/*
2 * msvcrt.dll ctype functions
3 *
4 * Copyright 2000 Jon Griffiths
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#include <locale.h>
22#include "msvcrt.h"
23#include "winnls.h"
24
25/* Some abbreviations to make the following table readable */
26#define _C_ _CONTROL
27#define _S_ _SPACE
28#define _P_ _PUNCT
29#define _D_ _DIGIT
30#define _H_ _HEX
31#define _U_ _UPPER
32#define _L_ _LOWER
33
35 0, _C_, _C_, _C_, _C_, _C_, _C_, _C_, _C_, _C_, _S_|_C_, _S_|_C_,
36 _S_|_C_, _S_|_C_, _S_|_C_, _C_, _C_, _C_, _C_, _C_, _C_, _C_, _C_,
37 _C_, _C_, _C_, _C_, _C_, _C_, _C_, _C_, _C_, _C_, _S_|_BLANK,
38 _P_, _P_, _P_, _P_, _P_, _P_, _P_, _P_, _P_, _P_, _P_, _P_, _P_, _P_,
42 _U_, _U_, _U_, _U_, _U_, _U_, _U_, _U_, _U_, _U_, _U_, _U_, _U_, _U_,
44 _L_|_H_, _L_|_H_, _L_, _L_, _L_, _L_, _L_, _L_, _L_, _L_, _L_, _L_,
45 _L_, _L_, _L_, _L_, _L_, _L_, _L_, _L_, _L_, _L_, _P_, _P_, _P_, _P_,
46 _C_, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
47 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
48 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
49 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
50 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
51 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
52};
53
54#if _MSVCR_VER <= 110
55# define B110 _BLANK
56#else
57# define B110 0
58#endif
59
60#if _MSVCR_VER == 120
61# define D120 0
62#else
63# define D120 4
64#endif
65
66#if _MSVCR_VER >= 140
67# define S140 _SPACE
68# define L140 _LOWER | 0x100
69# define C140 _CONTROL
70#else
71# define S140 0
72# define L140 0
73# define C140 0
74#endif
76{
77 0,
78 /* 00 */
79 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
80 0x0020, 0x0028 | B110, 0x0028, 0x0028, 0x0028, 0x0028, 0x0020, 0x0020,
81 /* 10 */
82 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
83 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
84 /* 20 */
85 0x0048, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
86 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
87 /* 30 */
88 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084, 0x0084,
89 0x0084, 0x0084, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
90 /* 40 */
91 0x0010, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0101,
92 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101,
93 /* 50 */
94 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101,
95 0x0101, 0x0101, 0x0101, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
96 /* 60 */
97 0x0010, 0x0182, 0x0182, 0x0182, 0x0182, 0x0182, 0x0182, 0x0102,
98 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102,
99 /* 70 */
100 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102,
101 0x0102, 0x0102, 0x0102, 0x0010, 0x0010, 0x0010, 0x0010, 0x0020,
102 /* 80 */
103 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020 | S140, 0x0020, 0x0020,
104 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
105 /* 90 */
106 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
107 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
108 /* a0 */
109 0x0008 | B110, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
110 0x0010, 0x0010, 0x0010 | L140, 0x0010, 0x0010, 0x0010 | C140, 0x0010, 0x0010,
111 /* b0 */
112 0x0010, 0x0010, 0x0010 | D120, 0x0010 | D120, 0x0010, 0x0010 | L140, 0x0010, 0x0010,
113 0x0010, 0x0010 | D120, 0x0010 | L140, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
114 /* c0 */
115 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101,
116 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101,
117 /* d0 */
118 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0010,
119 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0101, 0x0102,
120 /* e0 */
121 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102,
122 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102,
123 /* f0 */
124 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0010,
125 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102
126};
127
129
130/*********************************************************************
131 * __p__pctype (MSVCRT.@)
132 */
133unsigned short** CDECL __p__pctype(void)
134{
135 return &get_locinfo()->pctype;
136}
137
138/*********************************************************************
139 * __pctype_func (MSVCRT.@)
140 */
141const unsigned short* CDECL __pctype_func(void)
142{
143 return get_locinfo()->pctype;
144}
145
146/*********************************************************************
147 * __p__pwctype (MSVCRT.@)
148 */
149unsigned short** CDECL __p__pwctype(void)
150{
151 return &MSVCRT__pwctype;
152}
153
154/*********************************************************************
155 * __pwctype_func (MSVCRT.@)
156 */
157const unsigned short* CDECL __pwctype_func(void)
158{
159 return MSVCRT__pwctype;
160}
161
162/*********************************************************************
163 * _isctype_l (MSVCRT.@)
164 */
166{
168
169 if(!locale)
171 else
172 locinfo = locale->locinfo;
173
174 if (c >= -1 && c <= 255)
175 return locinfo->pctype[c] & type;
176
177 if (locinfo->mb_cur_max != 1 && c > 0)
178 {
179 /* FIXME: Is there a faster way to do this? */
180 WORD typeInfo;
181 char convert[3], *pconv = convert;
182
183 if (locinfo->pctype[(UINT)c >> 8] & _LEADBYTE)
184 *pconv++ = (UINT)c >> 8;
185 *pconv++ = c & 0xff;
186 *pconv = 0;
187
188 if (GetStringTypeExA(locinfo->lc_handle[LC_CTYPE],
189 CT_CTYPE1, convert, convert[1] ? 2 : 1, &typeInfo))
190 return typeInfo & type;
191 }
192 return 0;
193}
194
195/*********************************************************************
196 * _isctype (MSVCRT.@)
197 */
198int CDECL _isctype(int c, int type)
199{
200 return _isctype_l(c, type, NULL);
201}
202
203/*********************************************************************
204 * _isalnum_l (MSVCRT.@)
205 */
207{
208 return _isctype_l( c, _ALPHA | _DIGIT, locale );
209}
210
211/*********************************************************************
212 * isalnum (MSVCRT.@)
213 */
215{
216 return _isctype( c, _ALPHA | _DIGIT );
217}
218
219/*********************************************************************
220 * _isalpha_l (MSVCRT.@)
221 */
223{
224 return _isctype_l( c, _ALPHA, locale );
225}
226
227/*********************************************************************
228 * isalpha (MSVCRT.@)
229 */
231{
232 return _isctype( c, _ALPHA );
233}
234
235/*********************************************************************
236 * _iscntrl_l (MSVCRT.@)
237 */
239{
240 return _isctype_l( c, _CONTROL, locale );
241}
242
243/*********************************************************************
244 * iscntrl (MSVCRT.@)
245 */
247{
248 return _isctype( c, _CONTROL );
249}
250
251/*********************************************************************
252 * _isdigit_l (MSVCRT.@)
253 */
255{
256 return _isctype_l( c, _DIGIT, locale );
257}
258
259/*********************************************************************
260 * isdigit (MSVCRT.@)
261 */
263{
264 return _isctype( c, _DIGIT );
265}
266
267/*********************************************************************
268 * _isgraph_l (MSVCRT.@)
269 */
271{
272 return _isctype_l( c, _ALPHA | _DIGIT | _PUNCT, locale );
273}
274
275/*********************************************************************
276 * isgraph (MSVCRT.@)
277 */
279{
280 return _isctype( c, _ALPHA | _DIGIT | _PUNCT );
281}
282
283/*********************************************************************
284 * _isleadbyte_l (MSVCRT.@)
285 */
287{
288 return _isctype_l( c, _LEADBYTE, locale );
289}
290
291/*********************************************************************
292 * isleadbyte (MSVCRT.@)
293 */
295{
296 return _isctype( c, _LEADBYTE );
297}
298
299/*********************************************************************
300 * _islower_l (MSVCRT.@)
301 */
303{
304 return _isctype_l( c, _LOWER, locale );
305}
306
307/*********************************************************************
308 * islower (MSVCRT.@)
309 */
311{
312 return _isctype( c, _LOWER );
313}
314
315/*********************************************************************
316 * _isprint_l (MSVCRT.@)
317 */
319{
320 return _isctype_l( c, _ALPHA | _DIGIT | _BLANK | _PUNCT, locale );
321}
322
323/*********************************************************************
324 * isprint (MSVCRT.@)
325 */
327{
328 return _isctype( c, _ALPHA | _DIGIT | _BLANK | _PUNCT );
329}
330
331/*********************************************************************
332 * ispunct (MSVCRT.@)
333 */
335{
336 return _isctype( c, _PUNCT );
337}
338
339/*********************************************************************
340 * _ispunct_l (MSVCR80.@)
341 */
343{
344 return _isctype_l( c, _PUNCT, locale );
345}
346
347/*********************************************************************
348 * _isspace_l (MSVCRT.@)
349 */
351{
352 return _isctype_l( c, _SPACE, locale );
353}
354
355/*********************************************************************
356 * isspace (MSVCRT.@)
357 */
359{
360 return _isctype( c, _SPACE );
361}
362
363/*********************************************************************
364 * _isupper_l (MSVCRT.@)
365 */
367{
368 return _isctype_l( c, _UPPER, locale );
369}
370
371/*********************************************************************
372 * isupper (MSVCRT.@)
373 */
375{
376 return _isctype( c, _UPPER );
377}
378
379/*********************************************************************
380 * _isxdigit_l (MSVCRT.@)
381 */
383{
384 return _isctype_l( c, _HEX, locale );
385}
386
387/*********************************************************************
388 * isxdigit (MSVCRT.@)
389 */
391{
392 return _isctype( c, _HEX );
393}
394
395/*********************************************************************
396 * _isblank_l (MSVCRT.@)
397 */
399{
400#if _MSVCR_VER < 140
401 if (c == '\t') return _BLANK;
402#endif
403 return _isctype_l( c, _BLANK, locale );
404}
405
406/*********************************************************************
407 * isblank (MSVCRT.@)
408 */
410{
411 return c == '\t' || _isctype( c, _BLANK );
412}
413
414/*********************************************************************
415 * __isascii (MSVCRT.@)
416 */
418{
419 return ((unsigned)c < 0x80);
420}
421
422/*********************************************************************
423 * __toascii (MSVCRT.@)
424 */
426{
427 return (unsigned)c & 0x7f;
428}
429
430/*********************************************************************
431 * iswascii (MSVCRT.@)
432 *
433 */
434int CDECL iswascii(wchar_t c)
435{
436 return ((unsigned)c < 0x80);
437}
438
439/*********************************************************************
440 * __iscsym (MSVCRT.@)
441 */
443{
444 return (c < 127 && (isalnum(c) || c == '_'));
445}
446
447/*********************************************************************
448 * __iscsymf (MSVCRT.@)
449 */
451{
452 return (c < 127 && (isalpha(c) || c == '_'));
453}
454
455/*********************************************************************
456 * __iswcsym (MSVCRT.@)
457 */
459{
460 return (iswalnum(c) || c == '_');
461}
462
463/*********************************************************************
464 * __iswcsymf (MSVCRT.@)
465 */
467{
468 return (iswalpha(c) || c == '_');
469}
470
471/*********************************************************************
472 * _toupper_l (MSVCRT.@)
473 */
475{
477 unsigned char str[2], *p = str, ret[2];
478
479 if(!locale)
481 else
482 locinfo = locale->locinfo;
483
484 if((unsigned)c < 256)
485 {
486 if(locinfo->pctype[c] & _LEADBYTE)
487 return c;
488 return locinfo->pcumap[c];
489 }
490
491 if(locinfo->pctype[(c>>8)&255] & _LEADBYTE)
492 *p++ = (c>>8) & 255;
493 else {
494 *_errno() = EILSEQ;
495 str[1] = 0;
496 }
497 *p++ = c & 255;
498
500 (char*)str, p-str, (char*)ret, 2, locinfo->lc_codepage, 0))
501 {
502 case 0:
503 return c;
504 case 1:
505 return ret[0];
506 default:
507 return ret[0] + (ret[1]<<8);
508 }
509}
510
511/*********************************************************************
512 * toupper (MSVCRT.@)
513 */
515{
517 return c>='a' && c<='z' ? c-'a'+'A' : c;
518 return _toupper_l(c, NULL);
519}
520
521/*********************************************************************
522 * _toupper (MSVCRT.@)
523 */
525{
526 return c - 0x20; /* sic */
527}
528
529/*********************************************************************
530 * _tolower_l (MSVCRT.@)
531 */
533{
535 unsigned char str[2], *p = str, ret[2];
536
537 if(!locale)
539 else
540 locinfo = locale->locinfo;
541
542 if((unsigned)c < 256)
543 {
544 if(locinfo->pctype[c] & _LEADBYTE)
545 return c;
546 return locinfo->pclmap[c];
547 }
548
549 if(locinfo->pctype[(c>>8)&255] & _LEADBYTE)
550 *p++ = (c>>8) & 255;
551 else {
552 *_errno() = EILSEQ;
553 str[1] = 0;
554 }
555 *p++ = c & 255;
556
558 (char*)str, p-str, (char*)ret, 2, locinfo->lc_codepage, 0))
559 {
560 case 0:
561 return c;
562 case 1:
563 return ret[0];
564 default:
565 return ret[0] + (ret[1]<<8);
566 }
567}
568
569/*********************************************************************
570 * tolower (MSVCRT.@)
571 */
573{
575 return c>='A' && c<='Z' ? c-'A'+'a' : c;
576 return _tolower_l(c, NULL);
577}
578
579/*********************************************************************
580 * _tolower (MSVCRT.@)
581 */
583{
584 return c + 0x20; /* sic */
585}
586
587#if _MSVCR_VER>=120
588/*********************************************************************
589 * wctype (MSVCR120.@)
590 */
591unsigned short __cdecl wctype(const char *property)
592{
593 static const struct {
594 const char *name;
595 unsigned short mask;
596 } properties[] = {
597 { "alnum", _DIGIT|_ALPHA },
598 { "alpha", _ALPHA },
599 { "cntrl", _CONTROL },
600 { "digit", _DIGIT },
601 { "graph", _DIGIT|_PUNCT|_ALPHA },
602 { "lower", _LOWER },
603 { "print", _DIGIT|_PUNCT|_BLANK|_ALPHA },
604 { "punct", _PUNCT },
605 { "space", _SPACE },
606 { "upper", _UPPER },
607 { "xdigit", _HEX }
608 };
609 unsigned int i;
610
611 for(i=0; i<ARRAY_SIZE(properties); i++)
612 if(!strcmp(property, properties[i].name))
613 return properties[i].mask;
614
615 return 0;
616}
617#endif
#define isspace(c)
Definition: acclib.h:69
#define islower(c)
Definition: acclib.h:72
#define isalpha(c)
Definition: acclib.h:74
#define isdigit(c)
Definition: acclib.h:68
#define isprint(c)
Definition: acclib.h:73
#define isxdigit(c)
Definition: acclib.h:70
#define isupper(c)
Definition: acclib.h:71
#define ARRAY_SIZE(A)
Definition: main.h:20
Definition: _locale.h:75
#define _isleadbyte_l(_C, _L)
#define NULL
Definition: types.h:112
#define CDECL
Definition: compat.h:29
BOOL WINAPI GetStringTypeExA(LCID locale, DWORD type, LPCSTR src, INT count, LPWORD chartype)
Definition: locale.c:3259
#define _D_
Definition: ctype.c:29
int CDECL iscntrl(int c)
Definition: ctype.c:246
const unsigned short *CDECL __pwctype_func(void)
Definition: ctype.c:157
#define D120
Definition: ctype.c:63
#define _P_
Definition: ctype.c:28
int CDECL _isctype_l(int c, int type, _locale_t locale)
Definition: ctype.c:165
#define L140
Definition: ctype.c:72
int CDECL _tolower_l(int c, _locale_t locale)
Definition: ctype.c:532
int CDECL isgraph(int c)
Definition: ctype.c:278
WORD * MSVCRT__pwctype
Definition: ctype.c:128
unsigned short **CDECL __p__pctype(void)
Definition: ctype.c:133
WORD MSVCRT__wctype[257]
Definition: ctype.c:75
int CDECL isalnum(int c)
Definition: ctype.c:214
WORD MSVCRT__ctype[257]
Definition: ctype.c:34
#define S140
Definition: ctype.c:71
int CDECL ispunct(int c)
Definition: ctype.c:334
int CDECL _isctype(int c, int type)
Definition: ctype.c:198
const unsigned short *CDECL __pctype_func(void)
Definition: ctype.c:141
#define _L_
Definition: ctype.c:32
#define C140
Definition: ctype.c:73
int CDECL tolower(int c)
Definition: ctype.c:572
unsigned short **CDECL __p__pwctype(void)
Definition: ctype.c:149
#define _C_
Definition: ctype.c:26
#define B110
Definition: ctype.c:55
int CDECL _toupper_l(int c, _locale_t locale)
Definition: ctype.c:474
#define _U_
Definition: ctype.c:31
int CDECL toupper(int c)
Definition: ctype.c:514
#define _S_
Definition: ctype.c:27
#define _H_
Definition: ctype.c:30
int *CDECL _errno(void)
Definition: errno.c:215
#define __cdecl
Definition: corecrt.h:121
unsigned short wint_t
Definition: corecrt.h:243
#define _BLANK
#define _PUNCT
#define _CONTROL
#define _LOWER
#define _SPACE
#define _ALPHA
#define _LEADBYTE
#define _UPPER
#define _HEX
#define _DIGIT
#define EILSEQ
Definition: errno.h:62
#define LC_CTYPE
Definition: locale.h:27
_ACRTIMP int __cdecl strcmp(const char *, const char *)
Definition: string.c:3319
wctype_t __cdecl wctype(const char *)
Definition: wctype.cpp:41
int CDECL __crtLCMapStringA(LCID lcid, DWORD mapflags, const char *src, int srclen, char *dst, int dstlen, unsigned int codepage, int xflag)
Definition: locale.c:877
BOOL initial_locale
Definition: locale.c:49
else locinfo
Definition: scanf.h:225
return ret
Definition: mutex.c:146
unsigned short WORD
Definition: ntddk_ex.h:93
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
const GLubyte * c
Definition: glext.h:8905
GLenum GLint GLuint mask
Definition: glext.h:6028
GLfloat GLfloat p
Definition: glext.h:8902
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define c
Definition: ke_i.h:80
int convert
Definition: msacm.c:1374
unsigned int UINT
Definition: ndis.h:50
const WCHAR * str
#define __iscsym(_c)
Definition: ctype.h:691
#define _islower_l(_Char, _Locale)
Definition: ctype.h:645
#define _isspace_l(_Char, _Locale)
Definition: ctype.h:648
#define _tolower(_Char)
Definition: ctype.h:654
#define __isascii(_Char)
Definition: ctype.h:656
#define _isprint_l(_Char, _Locale)
Definition: ctype.h:651
#define _isalnum_l(_Char, _Locale)
Definition: ctype.h:650
#define __toascii(_Char)
Definition: ctype.h:657
#define _isalpha_l(_Char, _Locale)
Definition: ctype.h:643
#define _isdigit_l(_Char, _Locale)
Definition: ctype.h:646
#define _ispunct_l(_Char, _Locale)
Definition: ctype.h:649
#define iswalnum(_c)
Definition: ctype.h:671
#define __iswcsymf(_c)
Definition: ctype.h:692
#define __iswcsym(_c)
Definition: ctype.h:693
#define iswascii(_c)
Definition: ctype.h:675
#define _iscntrl_l(_Char, _Locale)
Definition: ctype.h:653
#define _isgraph_l(_Char, _Locale)
Definition: ctype.h:652
#define __iscsymf(_c)
Definition: ctype.h:690
#define _isupper_l(_Char, _Locale)
Definition: ctype.h:644
#define _isxdigit_l(_Char, _Locale)
Definition: ctype.h:647
#define _toupper(_Char)
Definition: ctype.h:655
#define iswalpha(_c)
Definition: ctype.h:664
#define isleadbyte(_c)
Definition: wchar.h:598
#define _isblank_l(c, locale)
Definition: ctype.h:270
Definition: name.c:39
#define isblank(x)
Definition: trio.c:93
#define get_locinfo()
Definition: winesup.h:25
#define CT_CTYPE1
Definition: winnls.h:255
#define LCMAP_UPPERCASE
Definition: winnls.h:198
#define LCMAP_LOWERCASE
Definition: winnls.h:197