4 * Copyright 1993 Yngvi Sigurjonsson (yngvi@hafro.is)
5 * Copyright 1996 Marcus Meissner
20 #include "wine/winbase16.h"
21 #include "wine/winuser16.h"
22 #include "wine/unicode.h"
26 #include "debugtools.h"
28 DEFAULT_DEBUG_CHANNEL(resource
);
30 extern const WORD OLE2NLS_CT_CType3_LUT
[]; /* FIXME: does not belong here */
32 /***********************************************************************
33 * CharLowerA (USER32.25)
34 * FIXME: handle current locale
36 LPSTR WINAPI
CharLowerA(LPSTR x
)
50 else return (LPSTR
)tolower((char)(int)x
);
53 /***********************************************************************
54 * CharLowerBuffA (USER32.26)
55 * FIXME: handle current locale
57 DWORD WINAPI
CharLowerBuffA(LPSTR x
,DWORD buflen
)
61 if (!x
) return 0; /* YES */
62 while (*x
&& (buflen
--))
71 /***********************************************************************
72 * CharLowerBuffW (USER32.27)
74 DWORD WINAPI
CharLowerBuffW(LPWSTR x
,DWORD buflen
)
78 if (!x
) return 0; /* YES */
79 while (*x
&& (buflen
--))
88 /***********************************************************************
89 * CharLowerW (USER32.28)
90 * FIXME: handle current locale
92 LPWSTR WINAPI
CharLowerW(LPWSTR x
)
104 else return (LPWSTR
)((UINT
)tolowerW(LOWORD(x
)));
107 /***********************************************************************
108 * CharUpperA (USER32.41)
109 * FIXME: handle current locale
111 LPSTR WINAPI
CharUpperA(LPSTR x
)
123 return (LPSTR
)toupper((char)(int)x
);
126 /***********************************************************************
127 * CharUpperBuffA (USER32.42)
128 * FIXME: handle current locale
130 DWORD WINAPI
CharUpperBuffA( LPSTR str
, DWORD len
)
133 if (!str
) return 0; /* YES */
134 for (; len
; len
--, str
++) *str
= toupper(*str
);
138 /***********************************************************************
139 * CharUpperBuffW (USER32.43)
140 * FIXME: handle current locale
142 DWORD WINAPI
CharUpperBuffW( LPWSTR str
, DWORD len
)
145 if (!str
) return 0; /* YES */
146 for (; len
; len
--, str
++) *str
= toupperW(*str
);
150 /***********************************************************************
151 * CharUpperW (USER32.44)
152 * FIXME: handle current locale
154 LPWSTR WINAPI
CharUpperW(LPWSTR x
)
166 else return (LPWSTR
)((UINT
)toupperW(LOWORD(x
)));
169 /***********************************************************************
170 * IsCharAlphaA (USER.433) (USER32.331)
171 * FIXME: handle current locale
173 BOOL WINAPI
IsCharAlphaA(CHAR x
)
175 return (OLE2NLS_CT_CType3_LUT
[(unsigned char)x
] & C3_ALPHA
);
178 /***********************************************************************
179 * IsCharAlphaNumericA (USER.434) (USER32.332)
180 * FIXME: handle current locale
182 BOOL WINAPI
IsCharAlphaNumericA(CHAR x
)
184 return IsCharAlphaA(x
) || isdigit(x
) ;