1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _INC_MBSTRING
7#define _INC_MBSTRING
8
9#include <crtdefs.h>
10
11#pragma pack(push,_CRT_PACKING)
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17#ifndef _FILE_DEFINED
18 struct _iobuf {
19#ifdef _UCRT
20 void *_Placeholder;
21#else
22 char *_ptr;
23 int _cnt;
24 char *_base;
25 int _flag;
26 int _file;
27 int _charbuf;
28 int _bufsiz;
29 char *_tmpfname;
30#endif
31 };
32 typedef struct _iobuf FILE;
33#define _FILE_DEFINED
34#endif
35
36#ifndef _MBSTRING_DEFINED
37#define _MBSTRING_DEFINED
38#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
39#pragma push_macro("_mbsdup")
40#undef _mbsdup
41#endif
42 _CRTIMP unsigned char *__cdecl _mbsdup(const unsigned char *_Str);
43#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
44#pragma pop_macro("_mbsdup")
45#endif
46 _CRTIMP unsigned int __cdecl _mbbtombc(unsigned int _Ch);
47 _CRTIMP unsigned int __cdecl _mbbtombc_l(unsigned int _Ch,_locale_t _Locale);
48 _CRTIMP int __cdecl _mbbtype(unsigned char _Ch,int _CType);
49 _CRTIMP int __cdecl _mbbtype_l(unsigned char _Ch,int _CType,_locale_t _Locale);
50 _CRTIMP unsigned int __cdecl _mbctombb(unsigned int _Ch);
51 _CRTIMP unsigned int __cdecl _mbctombb_l(unsigned int _Ch,_locale_t _Locale);
52 _CRTIMP int __cdecl _mbsbtype(const unsigned char *_Str,size_t _Pos);
53 _CRTIMP int __cdecl _mbsbtype_l(const unsigned char *_Str,size_t _Pos,_locale_t _Locale);
54#if __MSVCRT_VERSION__ < 0x0800
55 _CRTIMP unsigned char *__cdecl _mbscat(unsigned char *_Dest,const unsigned char *_Source);
56#endif
57 _CRTIMP _CONST_RETURN unsigned char *__cdecl _mbschr(const unsigned char *_Str,unsigned int _Ch);
58 _CRTIMP _CONST_RETURN unsigned char *__cdecl _mbschr_l(const unsigned char *_Str,unsigned int _Ch,_locale_t _Locale);
59 _CRTIMP int __cdecl _mbscmp(const unsigned char *_Str1,const unsigned char *_Str2);
60 _CRTIMP int __cdecl _mbscmp_l(const unsigned char *_Str1,const unsigned char *_Str2,_locale_t _Locale);
61#if __MSVCRT_VERSION__ >= 0x0200
62 _CRTIMP int __cdecl _mbscoll(const unsigned char *_Str1,const unsigned char *_Str2);
63 _CRTIMP int __cdecl _mbscoll_l(const unsigned char *_Str1,const unsigned char *_Str2,_locale_t _Locale);
64#endif
65#if __MSVCRT_VERSION__ < 0x0800
66 _CRTIMP unsigned char *__cdecl _mbscpy(unsigned char *_Dest,const unsigned char *_Source);
67#endif
68 _CRTIMP size_t __cdecl _mbscspn(const unsigned char *_Str,const unsigned char *_Control);
69 _CRTIMP size_t __cdecl _mbscspn_l(const unsigned char *_Str,const unsigned char *_Control,_locale_t _Locale);
70 _CRTIMP unsigned char *__cdecl _mbsdec(const unsigned char *_Start,const unsigned char *_Pos);
71 _CRTIMP unsigned char *__cdecl _mbsdec_l(const unsigned char *_Start,const unsigned char *_Pos,_locale_t _Locale);
72 _CRTIMP int __cdecl _mbsicmp(const unsigned char *_Str1,const unsigned char *_Str2);
73 _CRTIMP int __cdecl _mbsicmp_l(const unsigned char *_Str1,const unsigned char *_Str2,_locale_t _Locale);
74#if __MSVCRT_VERSION__ >= 0x0200
75 _CRTIMP int __cdecl _mbsicoll(const unsigned char *_Str1,const unsigned char *_Str2);
76 _CRTIMP int __cdecl _mbsicoll_l(const unsigned char *_Str1,const unsigned char *_Str2,_locale_t _Locale);
77#endif
78 _CRTIMP unsigned char *__cdecl _mbsinc(const unsigned char *_Ptr);
79 _CRTIMP unsigned char *__cdecl _mbsinc_l(const unsigned char *_Ptr,_locale_t _Locale);
80 _CRTIMP size_t __cdecl _mbslen(const unsigned char *_Str);
81 _CRTIMP size_t __cdecl _mbslen_l(const unsigned char *_Str,_locale_t _Locale);
82#if __MSVCRT_VERSION__ >= 0x0800
83 _CRTIMP size_t __cdecl _mbsnlen(const unsigned char *_Str,size_t _MaxCount);
84 _CRTIMP size_t __cdecl _mbsnlen_l(const unsigned char *_Str,size_t _MaxCount,_locale_t _Locale);
85#endif
86 _CRTIMP unsigned char *__cdecl _mbslwr(unsigned char *_String);
87 _CRTIMP unsigned char *__cdecl _mbslwr_l(unsigned char *_String,_locale_t _Locale);
88 _CRTIMP unsigned char *__cdecl _mbsnbcat(unsigned char *_Dest,const unsigned char *_Source,size_t _Count) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
89 _CRTIMP unsigned char *__cdecl _mbsnbcat_l(unsigned char *_Dest,const unsigned char *_Source,size_t _Count,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
90 _CRTIMP int __cdecl _mbsnbcmp(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount);
91 _CRTIMP int __cdecl _mbsnbcmp_l(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount,_locale_t _Locale);
92#if __MSVCRT_VERSION__ >= 0x0200
93 _CRTIMP int __cdecl _mbsnbcoll(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount);
94 _CRTIMP int __cdecl _mbsnbcoll_l(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount,_locale_t _Locale);
95#endif
96 _CRTIMP size_t __cdecl _mbsnbcnt(const unsigned char *_Str,size_t _MaxCount);
97 _CRTIMP size_t __cdecl _mbsnbcnt_l(const unsigned char *_Str,size_t _MaxCount,_locale_t _Locale);
98 _CRTIMP unsigned char *__cdecl _mbsnbcpy(unsigned char *_Dest,const unsigned char *_Source,size_t _Count) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
99 _CRTIMP unsigned char *__cdecl _mbsnbcpy_l(unsigned char *_Dest,const unsigned char *_Source,size_t _Count,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
100 _CRTIMP int __cdecl _mbsnbicmp(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount);
101 _CRTIMP int __cdecl _mbsnbicmp_l(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount,_locale_t _Locale);
102#if __MSVCRT_VERSION__ >= 0x0200
103 _CRTIMP int __cdecl _mbsnbicoll(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount);
104 _CRTIMP int __cdecl _mbsnbicoll_l(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount,_locale_t _Locale);
105#endif
106 _CRTIMP unsigned char *__cdecl _mbsnbset(unsigned char *_Str,unsigned int _Ch,size_t _MaxCount) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
107 _CRTIMP unsigned char *__cdecl _mbsnbset_l(unsigned char *_Str,unsigned int _Ch,size_t _MaxCount,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
108 _CRTIMP unsigned char *__cdecl _mbsncat(unsigned char *_Dest,const unsigned char *_Source,size_t _Count) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
109 _CRTIMP unsigned char *__cdecl _mbsncat_l(unsigned char *_Dest,const unsigned char *_Source,size_t _Count,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
110 _CRTIMP size_t __cdecl _mbsnccnt(const unsigned char *_Str,size_t _MaxCount);
111 _CRTIMP size_t __cdecl _mbsnccnt_l(const unsigned char *_Str,size_t _MaxCount,_locale_t _Locale);
112 _CRTIMP int __cdecl _mbsncmp(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount);
113 _CRTIMP int __cdecl _mbsncmp_l(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount,_locale_t _Locale);
114#if __MSVCRT_VERSION__ >= 0x0200
115 _CRTIMP int __cdecl _mbsncoll(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount);
116 _CRTIMP int __cdecl _mbsncoll_l(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount,_locale_t _Locale);
117#endif
118 _CRTIMP unsigned char *__cdecl _mbsncpy(unsigned char *_Dest,const unsigned char *_Source,size_t _Count) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
119 _CRTIMP unsigned char *__cdecl _mbsncpy_l(unsigned char *_Dest,const unsigned char *_Source,size_t _Count,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
120 _CRTIMP unsigned int __cdecl _mbsnextc (const unsigned char *_Str);
121 _CRTIMP unsigned int __cdecl _mbsnextc_l(const unsigned char *_Str,_locale_t _Locale);
122 _CRTIMP int __cdecl _mbsnicmp(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount);
123 _CRTIMP int __cdecl _mbsnicmp_l(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount,_locale_t _Locale);
124#if __MSVCRT_VERSION__ >= 0x0200
125 _CRTIMP int __cdecl _mbsnicoll(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount);
126 _CRTIMP int __cdecl _mbsnicoll_l(const unsigned char *_Str1,const unsigned char *_Str2,size_t _MaxCount,_locale_t _Locale);
127#endif
128 _CRTIMP unsigned char *__cdecl _mbsninc(const unsigned char *_Str,size_t _Count);
129 _CRTIMP unsigned char *__cdecl _mbsninc_l(const unsigned char *_Str,size_t _Count,_locale_t _Locale);
130 _CRTIMP unsigned char *__cdecl _mbsnset(unsigned char *_Dst,unsigned int _Val,size_t _MaxCount) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
131 _CRTIMP unsigned char *__cdecl _mbsnset_l(unsigned char *_Dst,unsigned int _Val,size_t _MaxCount,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
132 _CRTIMP _CONST_RETURN unsigned char *__cdecl _mbspbrk(const unsigned char *_Str,const unsigned char *_Control);
133 _CRTIMP _CONST_RETURN unsigned char *__cdecl _mbspbrk_l(const unsigned char *_Str,const unsigned char *_Control,_locale_t _Locale);
134 _CRTIMP _CONST_RETURN unsigned char *__cdecl _mbsrchr(const unsigned char *_Str,unsigned int _Ch);
135 _CRTIMP _CONST_RETURN unsigned char *__cdecl _mbsrchr_l(const unsigned char *_Str,unsigned int _Ch,_locale_t _Locale);
136 _CRTIMP unsigned char *__cdecl _mbsrev(unsigned char *_Str);
137 _CRTIMP unsigned char *__cdecl _mbsrev_l(unsigned char *_Str,_locale_t _Locale);
138 _CRTIMP unsigned char *__cdecl _mbsset(unsigned char *_Str,unsigned int _Val) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
139 _CRTIMP unsigned char *__cdecl _mbsset_l(unsigned char *_Str,unsigned int _Val,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
140 _CRTIMP size_t __cdecl _mbsspn(const unsigned char *_Str,const unsigned char *_Control);
141 _CRTIMP size_t __cdecl _mbsspn_l(const unsigned char *_Str,const unsigned char *_Control,_locale_t _Locale);
142 _CRTIMP unsigned char *__cdecl _mbsspnp(const unsigned char *_Str1,const unsigned char *_Str2);
143 _CRTIMP unsigned char *__cdecl _mbsspnp_l(const unsigned char *_Str1,const unsigned char *_Str2,_locale_t _Locale);
144 _CRTIMP _CONST_RETURN unsigned char *__cdecl _mbsstr(const unsigned char *_Str,const unsigned char *_Substr);
145 _CRTIMP _CONST_RETURN unsigned char *__cdecl _mbsstr_l(const unsigned char *_Str,const unsigned char *_Substr,_locale_t _Locale);
146 _CRTIMP unsigned char *__cdecl _mbstok(unsigned char *_Str,const unsigned char *_Delim) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
147 _CRTIMP unsigned char *__cdecl _mbstok_l(unsigned char *_Str,const unsigned char *_Delim,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
148 _CRTIMP unsigned char *__cdecl _mbsupr(unsigned char *_String) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
149 _CRTIMP unsigned char *__cdecl _mbsupr_l(unsigned char *_String,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
150 _CRTIMP size_t __cdecl _mbclen(const unsigned char *_Str);
151 _CRTIMP size_t __cdecl _mbclen_l(const unsigned char *_Str,_locale_t _Locale);
152 _CRTIMP void __cdecl _mbccpy(unsigned char *_Dst,const unsigned char *_Src) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
153 _CRTIMP void __cdecl _mbccpy_l(unsigned char *_Dst,const unsigned char *_Src,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
154#define _mbccmp(_cpc1,_cpc2) _mbsncmp((_cpc1),(_cpc2),1)
155
156#ifdef __cplusplus
157#ifndef _CPP_MBCS_INLINES_DEFINED
158#define _CPP_MBCS_INLINES_DEFINED
159 extern "C++" {
160 static inline unsigned char *__cdecl _mbschr(unsigned char *_String,unsigned int _Char) { return ((unsigned char *)_mbschr((const unsigned char *)_String,_Char)); }
161 static inline unsigned char *__cdecl _mbschr_l(unsigned char *_String,unsigned int _Char,_locale_t _Locale) { return ((unsigned char *)_mbschr_l((const unsigned char *)_String,_Char,_Locale)); }
162 static inline unsigned char *__cdecl _mbspbrk(unsigned char *_String,const unsigned char *_CharSet) { return ((unsigned char *)_mbspbrk((const unsigned char *)_String,_CharSet)); }
163 static inline unsigned char *__cdecl _mbspbrk_l(unsigned char *_String,const unsigned char *_CharSet,_locale_t _Locale) { return ((unsigned char *)_mbspbrk_l((const unsigned char *)_String,_CharSet,_Locale)); }
164 static inline unsigned char *__cdecl _mbsrchr(unsigned char *_String,unsigned int _Char) { return ((unsigned char *)_mbsrchr((const unsigned char *)_String,_Char)); }
165 static inline unsigned char *__cdecl _mbsrchr_l(unsigned char *_String,unsigned int _Char,_locale_t _Locale) { return ((unsigned char *)_mbsrchr_l((const unsigned char *)_String,_Char,_Locale)); }
166 static inline unsigned char *__cdecl _mbsstr(unsigned char *_String,const unsigned char *_Match) { return ((unsigned char *)_mbsstr((const unsigned char *)_String,_Match)); }
167 static inline unsigned char *__cdecl _mbsstr_l(unsigned char *_String,const unsigned char *_Match,_locale_t _Locale) { return ((unsigned char *)_mbsstr_l((const unsigned char *)_String,_Match,_Locale)); }
168 }
169#endif
170#endif
171
172#if __MSVCRT_VERSION__ >= 0x0200
173 _CRTIMP int __cdecl _ismbcalnum(unsigned int _Ch);
174 _CRTIMP int __cdecl _ismbcalnum_l(unsigned int _Ch,_locale_t _Locale);
175#endif
176 _CRTIMP int __cdecl _ismbcalpha(unsigned int _Ch);
177 _CRTIMP int __cdecl _ismbcalpha_l(unsigned int _Ch,_locale_t _Locale);
178#if __MSVCRT_VERSION__ >= 0x0C00
179 _CRTIMP int __cdecl _ismbcblank(unsigned int _Ch);
180 _CRTIMP int __cdecl _ismbcblank_l(unsigned int _Ch,_locale_t _Locale);
181#endif
182 _CRTIMP int __cdecl _ismbcdigit(unsigned int _Ch);
183 _CRTIMP int __cdecl _ismbcdigit_l(unsigned int _Ch,_locale_t _Locale);
184#if __MSVCRT_VERSION__ >= 0x0200
185 _CRTIMP int __cdecl _ismbcgraph(unsigned int _Ch);
186 _CRTIMP int __cdecl _ismbcgraph_l(unsigned int _Ch,_locale_t _Locale);
187#endif
188 _CRTIMP int __cdecl _ismbclegal(unsigned int _Ch);
189 _CRTIMP int __cdecl _ismbclegal_l(unsigned int _Ch,_locale_t _Locale);
190 _CRTIMP int __cdecl _ismbclower(unsigned int _Ch);
191 _CRTIMP int __cdecl _ismbclower_l(unsigned int _Ch,_locale_t _Locale);
192 _CRTIMP int __cdecl _ismbcprint(unsigned int _Ch);
193 _CRTIMP int __cdecl _ismbcprint_l(unsigned int _Ch,_locale_t _Locale);
194#if __MSVCRT_VERSION__ >= 0x0200
195 _CRTIMP int __cdecl _ismbcpunct(unsigned int _Ch);
196 _CRTIMP int __cdecl _ismbcpunct_l(unsigned int _Ch,_locale_t _Locale);
197#endif
198 _CRTIMP int __cdecl _ismbcspace(unsigned int _Ch);
199 _CRTIMP int __cdecl _ismbcspace_l(unsigned int _Ch,_locale_t _Locale);
200 _CRTIMP int __cdecl _ismbcupper(unsigned int _Ch);
201 _CRTIMP int __cdecl _ismbcupper_l(unsigned int _Ch,_locale_t _Locale);
202 _CRTIMP unsigned int __cdecl _mbctolower(unsigned int _Ch);
203 _CRTIMP unsigned int __cdecl _mbctolower_l(unsigned int _Ch,_locale_t _Locale);
204 _CRTIMP unsigned int __cdecl _mbctoupper(unsigned int _Ch);
205 _CRTIMP unsigned int __cdecl _mbctoupper_l(unsigned int _Ch,_locale_t _Locale);
206#endif
207
208#ifndef _MBLEADTRAIL_DEFINED
209#define _MBLEADTRAIL_DEFINED
210 _CRTIMP int __cdecl _ismbblead(unsigned int _Ch);
211 _CRTIMP int __cdecl _ismbblead_l(unsigned int _Ch,_locale_t _Locale);
212 _CRTIMP int __cdecl _ismbbtrail(unsigned int _Ch);
213 _CRTIMP int __cdecl _ismbbtrail_l(unsigned int _Ch,_locale_t _Locale);
214 _CRTIMP int __cdecl _ismbslead(const unsigned char *_Str,const unsigned char *_Pos);
215 _CRTIMP int __cdecl _ismbslead_l(const unsigned char *_Str,const unsigned char *_Pos,_locale_t _Locale);
216 _CRTIMP int __cdecl _ismbstrail(const unsigned char *_Str,const unsigned char *_Pos);
217 _CRTIMP int __cdecl _ismbstrail_l(const unsigned char *_Str,const unsigned char *_Pos,_locale_t _Locale);
218#endif
219
220 _CRTIMP int __cdecl _ismbchira(unsigned int _Ch);
221 _CRTIMP int __cdecl _ismbchira_l(unsigned int _Ch,_locale_t _Locale);
222 _CRTIMP int __cdecl _ismbckata(unsigned int _Ch);
223 _CRTIMP int __cdecl _ismbckata_l(unsigned int _Ch,_locale_t _Locale);
224 _CRTIMP int __cdecl _ismbcsymbol(unsigned int _Ch);
225 _CRTIMP int __cdecl _ismbcsymbol_l(unsigned int _Ch,_locale_t _Locale);
226 _CRTIMP int __cdecl _ismbcl0(unsigned int _Ch);
227 _CRTIMP int __cdecl _ismbcl0_l(unsigned int _Ch,_locale_t _Locale);
228 _CRTIMP int __cdecl _ismbcl1(unsigned int _Ch);
229 _CRTIMP int __cdecl _ismbcl1_l(unsigned int _Ch,_locale_t _Locale);
230 _CRTIMP int __cdecl _ismbcl2(unsigned int _Ch);
231 _CRTIMP int __cdecl _ismbcl2_l(unsigned int _Ch,_locale_t _Locale);
232 _CRTIMP unsigned int __cdecl _mbcjistojms(unsigned int _Ch);
233 _CRTIMP unsigned int __cdecl _mbcjistojms_l(unsigned int _Ch,_locale_t _Locale);
234 _CRTIMP unsigned int __cdecl _mbcjmstojis(unsigned int _Ch);
235 _CRTIMP unsigned int __cdecl _mbcjmstojis_l(unsigned int _Ch,_locale_t _Locale);
236 _CRTIMP unsigned int __cdecl _mbctohira(unsigned int _Ch);
237 _CRTIMP unsigned int __cdecl _mbctohira_l(unsigned int _Ch,_locale_t _Locale);
238 _CRTIMP unsigned int __cdecl _mbctokata(unsigned int _Ch);
239 _CRTIMP unsigned int __cdecl _mbctokata_l(unsigned int _Ch,_locale_t _Locale);
240
241#ifdef __cplusplus
242}
243#endif
244
245#pragma pack(pop)
246
247#include <sec_api/mbstring_s.h>
248
249#endif