Use MZ_Current() instead of pModule->lpDosTask. Cleaned up the RMCB32
[wine/dcerpc.git] / dlls / crtdll / wcstring.c
blob45ff28f1b2b013f6f1069d479318e35fdd3d0c30
1 /*
2 * CRTDLL wide-char functions
4 * Copyright 1999 Alexandre Julliard
5 */
7 #include "config.h"
9 #include <ctype.h>
10 #include <stdlib.h>
11 #include <string.h>
13 #include "windef.h"
14 #include "wine/unicode.h"
15 #include "crtdll.h"
16 #include "debugtools.h"
18 DEFAULT_DEBUG_CHANNEL(crtdll);
21 /*********************************************************************
22 * CRTDLL__wcsdup (CRTDLL.320)
24 LPWSTR __cdecl CRTDLL__wcsdup( LPCWSTR str )
26 LPWSTR ret = NULL;
27 if (str)
29 int size = (strlenW(str) + 1) * sizeof(WCHAR);
30 ret = CRTDLL_malloc( size );
31 if (ret) memcpy( ret, str, size );
33 return ret;
37 /*********************************************************************
38 * CRTDLL__wcsicoll (CRTDLL.322)
40 INT __cdecl CRTDLL__wcsicoll( LPCWSTR str1, LPCWSTR str2 )
42 /* FIXME: handle collates */
43 return strcmpiW( str1, str2 );
47 /*********************************************************************
48 * CRTDLL__wcsnset (CRTDLL.325)
50 LPWSTR __cdecl CRTDLL__wcsnset( LPWSTR str, WCHAR c, INT n )
52 LPWSTR ret = str;
53 while ((n-- > 0) && *str) *str++ = c;
54 return ret;
58 /*********************************************************************
59 * CRTDLL__wcsrev (CRTDLL.326)
61 LPWSTR __cdecl CRTDLL__wcsrev( LPWSTR str )
63 LPWSTR ret = str;
64 LPWSTR end = str + strlenW(str) - 1;
65 while (end > str)
67 WCHAR t = *end;
68 *end-- = *str;
69 *str++ = t;
71 return ret;
75 /*********************************************************************
76 * CRTDLL__wcsset (CRTDLL.327)
78 LPWSTR __cdecl CRTDLL__wcsset( LPWSTR str, WCHAR c )
80 LPWSTR ret = str;
81 while (*str) *str++ = c;
82 return ret;
86 /*********************************************************************
87 * CRTDLL_wcscoll (CRTDLL.506)
89 DWORD __cdecl CRTDLL_wcscoll( LPCWSTR str1, LPCWSTR str2 )
91 /* FIXME: handle collates */
92 return strcmpW( str1, str2 );
96 /*********************************************************************
97 * CRTDLL_wcspbrk (CRTDLL.514)
99 LPWSTR __cdecl CRTDLL_wcspbrk( LPCWSTR str, LPCWSTR accept )
101 LPCWSTR p;
102 while (*str)
104 for (p = accept; *p; p++) if (*p == *str) return (LPWSTR)str;
105 str++;
107 return NULL;
111 /*********************************************************************
112 * CRTDLL_wctomb (CRTDLL.524)
114 INT __cdecl CRTDLL_wctomb( LPSTR dst, WCHAR ch )
116 return wctomb( dst, (wchar_t)ch );
119 extern INT __cdecl NTDLL_iswctype( WCHAR wc, WCHAR wct ); /* FIXME */
121 /*********************************************************************
122 * CRTDLL_iswalnum (CRTDLL.405)
124 INT __cdecl CRTDLL_iswalnum( WCHAR wc )
126 return NTDLL_iswctype( wc, 0x0107 );
129 /*********************************************************************
130 * CRTDLL_iswalpha (CRTDLL.406)
132 INT __cdecl CRTDLL_iswalpha( WCHAR wc )
134 return NTDLL_iswctype( wc, 0x0103 );
137 /*********************************************************************
138 * CRTDLL_iswcntrl (CRTDLL.408)
140 INT __cdecl CRTDLL_iswcntrl( WCHAR wc )
142 return NTDLL_iswctype( wc, 0x0020 );
145 /*********************************************************************
146 * CRTDLL_iswdigit (CRTDLL.410)
148 INT __cdecl CRTDLL_iswdigit( WCHAR wc )
150 return NTDLL_iswctype( wc, 0x0004 );
153 /*********************************************************************
154 * CRTDLL_iswgraph (CRTDLL.411)
156 INT __cdecl CRTDLL_iswgraph( WCHAR wc )
158 return NTDLL_iswctype( wc, 0x0117 );
161 /*********************************************************************
162 * CRTDLL_iswlower (CRTDLL.412)
164 INT __cdecl CRTDLL_iswlower( WCHAR wc )
166 return NTDLL_iswctype( wc, 0x0002 );
169 /*********************************************************************
170 * CRTDLL_iswprint (CRTDLL.413)
172 INT __cdecl CRTDLL_iswprint( WCHAR wc )
174 return NTDLL_iswctype( wc, 0x0157 );
177 /*********************************************************************
178 * CRTDLL_iswpunct (CRTDLL.414)
180 INT __cdecl CRTDLL_iswpunct( WCHAR wc )
182 return NTDLL_iswctype( wc, 0x0010 );
185 /*********************************************************************
186 * CRTDLL_iswspace (CRTDLL.415)
188 INT __cdecl CRTDLL_iswspace( WCHAR wc )
190 return NTDLL_iswctype( wc, 0x0008 );
193 /*********************************************************************
194 * CRTDLL_iswupper (CRTDLL.416)
196 INT __cdecl CRTDLL_iswupper( WCHAR wc )
198 return NTDLL_iswctype( wc, 0x0001 );
201 /*********************************************************************
202 * CRTDLL_iswxdigit (CRTDLL.417)
204 INT __cdecl CRTDLL_iswxdigit( WCHAR wc )
206 return NTDLL_iswctype( wc, 0x0080 );