ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/wchar.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 68408 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
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_WCHAR
7 #define _INC_WCHAR
8
9 #include <corecrt.h>
10 #include <corecrt_stdio_config.h>
11 #include <corecrt_wstdlib.h>
12
13 #if __USE_MINGW_ANSI_STDIO && !defined (__USE_MINGW_STRTOX) && !defined(_CRTBLD)
14 #define __USE_MINGW_STRTOX 1
15 #endif
16
17 #if defined(__LIBMSVCRT__)
18 /* When building mingw-w64, this should be blank. */
19 #define _SECIMP
20 #else
21 #ifndef _SECIMP
22 #define _SECIMP __declspec(dllimport)
23 #endif /* _SECIMP */
24 #endif /* defined(_CRTBLD) || defined(__LIBMSVCRT__) */
25
26 #pragma pack(push,_CRT_PACKING)
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
32 #ifndef WCHAR_MIN /* also in stdint.h */
33 #define WCHAR_MIN 0U
34 #define WCHAR_MAX 0xffffU
35 #endif
36
37 #ifndef WEOF
38 #define WEOF (wint_t)(0xFFFF)
39 #endif
40
41 #ifndef _FILE_DEFINED
42 struct _iobuf {
43 char *_ptr;
44 int _cnt;
45 char *_base;
46 int _flag;
47 int _file;
48 int _charbuf;
49 int _bufsiz;
50 char *_tmpfname;
51 };
52 typedef struct _iobuf FILE;
53 #define _FILE_DEFINED
54 #endif
55
56 _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);
57 #ifndef _STDIO_DEFINED
58 #ifdef _WIN64
59 _CRTIMP FILE *__cdecl __iob_func(void);
60 #define _iob __iob_func()
61 #else
62 #ifdef _MSVCRT_
63 extern FILE _iob[]; /* A pointer to an array of FILE */
64 #define __iob_func() (_iob)
65 #else
66 extern FILE (* __MINGW_IMP_SYMBOL(_iob))[]; /* A pointer to an array of FILE */
67 #define __iob_func() (* __MINGW_IMP_SYMBOL(_iob))
68 #endif
69 #endif
70
71 #define _iob __iob_func()
72 #endif
73
74 #ifndef _STDSTREAM_DEFINED
75 #define stdin (__acrt_iob_func(0))
76 #define stdout (__acrt_iob_func(1))
77 #define stderr (__acrt_iob_func(2))
78 #define _STDSTREAM_DEFINED
79 #endif
80
81 #ifndef _FSIZE_T_DEFINED
82 typedef unsigned long _fsize_t;
83 #define _FSIZE_T_DEFINED
84 #endif
85
86 #ifndef _WFINDDATA_T_DEFINED
87 struct _wfinddata32_t {
88 unsigned attrib;
89 __time32_t time_create;
90 __time32_t time_access;
91 __time32_t time_write;
92 _fsize_t size;
93 wchar_t name[260];
94 };
95
96 struct _wfinddata32i64_t {
97 unsigned attrib;
98 __time32_t time_create;
99 __time32_t time_access;
100 __time32_t time_write;
101 __MINGW_EXTENSION __int64 size;
102 wchar_t name[260];
103 };
104
105 struct _wfinddata64i32_t {
106 unsigned attrib;
107 __time64_t time_create;
108 __time64_t time_access;
109 __time64_t time_write;
110 _fsize_t size;
111 wchar_t name[260];
112 };
113
114 struct _wfinddata64_t {
115 unsigned attrib;
116 __time64_t time_create;
117 __time64_t time_access;
118 __time64_t time_write;
119 __MINGW_EXTENSION __int64 size;
120 wchar_t name[260];
121 };
122 /* #endif */
123
124 #ifdef _USE_32BIT_TIME_T
125 #define _wfinddata_t _wfinddata32_t
126 #define _wfinddatai64_t _wfinddata32i64_t
127
128 #define _wfindfirst _wfindfirst32
129 #define _wfindnext _wfindnext32
130 #define _wfindfirst32i64 _wfindfirsti64
131 #define _wfindnext32i64 _wfindnexti64
132 #else
133 #define _wfinddata_t _wfinddata64i32_t
134 #define _wfinddatai64_t _wfinddata64_t
135
136 #define _wfindfirst _wfindfirst64i32
137 #define _wfindnext _wfindnext64i32
138 #define _wfindfirsti64 _wfindfirst64
139 #define _wfindnexti64 _wfindnext64
140 #endif
141
142 #define _WFINDDATA_T_DEFINED
143 #endif
144
145 #ifndef NULL
146 #ifdef __cplusplus
147 #ifndef _WIN64
148 #define NULL 0
149 #else
150 #define NULL 0LL
151 #endif /* W64 */
152 #else
153 #define NULL ((void *)0)
154 #endif
155 #endif
156
157 #ifndef _CONST_RETURN
158 #define _CONST_RETURN
159 #endif
160
161 #define _WConst_return _CONST_RETURN
162
163 #ifndef _CRT_CTYPEDATA_DEFINED
164 #define _CRT_CTYPEDATA_DEFINED
165 #ifndef _CTYPE_DISABLE_MACROS
166
167 #ifndef __PCTYPE_FUNC
168 #define __PCTYPE_FUNC __pctype_func()
169 #ifdef _MSVCRT_
170 #define __pctype_func() (_pctype)
171 #else
172 #ifdef _UCRT
173 _CRTIMP unsigned short* __pctype_func(void);
174 #else
175 #define __pctype_func() (* __MINGW_IMP_SYMBOL(_pctype))
176 #endif
177 #endif
178 #endif
179
180 #ifndef _pctype
181 #ifdef _MSVCRT_
182 extern unsigned short *_pctype;
183 #else
184 #ifdef _UCRT
185 #define _pctype (__pctype_func())
186 #else
187 extern unsigned short ** __MINGW_IMP_SYMBOL(_pctype);
188 #define _pctype (* __MINGW_IMP_SYMBOL(_pctype))
189 #endif
190 #endif
191 #endif
192 #endif
193 #endif
194
195 #ifndef _CRT_WCTYPEDATA_DEFINED
196 #define _CRT_WCTYPEDATA_DEFINED
197 #ifndef _CTYPE_DISABLE_MACROS
198 #if !defined(_wctype) && defined(_CRT_USE_WINAPI_FAMILY_DESKTOP_APP)
199 #ifdef _MSVCRT_
200 extern unsigned short *_wctype;
201 #else
202 extern unsigned short ** __MINGW_IMP_SYMBOL(_wctype);
203 #define _wctype (* __MINGW_IMP_SYMBOL(_wctype))
204 #endif
205 #endif
206
207 #ifdef _MSVCRT_
208 #define __pwctype_func() (_pwctype)
209 #else
210 #define __pwctype_func() (* __MINGW_IMP_SYMBOL(_pwctype))
211 #endif
212
213 #ifndef _pwctype
214 #ifdef _MSVCRT_
215 extern unsigned short *_pwctype;
216 #else
217 extern unsigned short ** __MINGW_IMP_SYMBOL(_pwctype);
218 #define _pwctype (* __MINGW_IMP_SYMBOL(_pwctype))
219 #endif
220 #endif
221
222 #endif
223 #endif
224
225 #define _UPPER 0x1
226 #define _LOWER 0x2
227 #define _DIGIT 0x4
228 #define _SPACE 0x8
229
230 #define _PUNCT 0x10
231 #define _CONTROL 0x20
232 #define _BLANK 0x40
233 #define _HEX 0x80
234
235 #define _LEADBYTE 0x8000
236 #define _ALPHA (0x0100|_UPPER|_LOWER)
237
238 #ifndef _WCTYPE_DEFINED
239 #define _WCTYPE_DEFINED
240
241 int __cdecl iswalpha(wint_t _C);
242 _CRTIMP int __cdecl _iswalpha_l(wint_t _C,_locale_t _Locale);
243 int __cdecl iswupper(wint_t _C);
244 _CRTIMP int __cdecl _iswupper_l(wint_t _C,_locale_t _Locale);
245 int __cdecl iswlower(wint_t _C);
246 _CRTIMP int __cdecl _iswlower_l(wint_t _C,_locale_t _Locale);
247 int __cdecl iswdigit(wint_t _C);
248 _CRTIMP int __cdecl _iswdigit_l(wint_t _C,_locale_t _Locale);
249 int __cdecl iswxdigit(wint_t _C);
250 _CRTIMP int __cdecl _iswxdigit_l(wint_t _C,_locale_t _Locale);
251 int __cdecl iswspace(wint_t _C);
252 _CRTIMP int __cdecl _iswspace_l(wint_t _C,_locale_t _Locale);
253 int __cdecl iswpunct(wint_t _C);
254 _CRTIMP int __cdecl _iswpunct_l(wint_t _C,_locale_t _Locale);
255 int __cdecl iswalnum(wint_t _C);
256 _CRTIMP int __cdecl _iswalnum_l(wint_t _C,_locale_t _Locale);
257 int __cdecl iswprint(wint_t _C);
258 _CRTIMP int __cdecl _iswprint_l(wint_t _C,_locale_t _Locale);
259 int __cdecl iswgraph(wint_t _C);
260 _CRTIMP int __cdecl _iswgraph_l(wint_t _C,_locale_t _Locale);
261 int __cdecl iswcntrl(wint_t _C);
262 _CRTIMP int __cdecl _iswcntrl_l(wint_t _C,_locale_t _Locale);
263 int __cdecl iswascii(wint_t _C);
264 #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
265 int __cdecl isleadbyte(int _C);
266 _CRTIMP int __cdecl _isleadbyte_l(int _C,_locale_t _Locale);
267 #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
268 wint_t __cdecl towupper(wint_t _C);
269 _CRTIMP wint_t __cdecl _towupper_l(wint_t _C,_locale_t _Locale);
270 wint_t __cdecl towlower(wint_t _C);
271 _CRTIMP wint_t __cdecl _towlower_l(wint_t _C,_locale_t _Locale);
272 int __cdecl iswctype(wint_t _C,wctype_t _Type);
273 #if __MSVCRT_VERSION__ >= 0x800
274 _CRTIMP int __cdecl _iswctype_l(wint_t _C,wctype_t _Type,_locale_t _Locale);
275 _CRTIMP int __cdecl __iswcsymf(wint_t _C);
276 _CRTIMP int __cdecl _iswcsymf_l(wint_t _C,_locale_t _Locale);
277 _CRTIMP int __cdecl __iswcsym(wint_t _C);
278 _CRTIMP int __cdecl _iswcsym_l(wint_t _C,_locale_t _Locale);
279 #endif
280 #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
281 int __cdecl is_wctype(wint_t _C,wctype_t _Type);
282 #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
283
284 #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) || defined (__cplusplus)
285 int __cdecl iswblank(wint_t _C);
286 #endif
287
288 #endif
289
290 #ifndef _WDIRECT_DEFINED
291 #define _WDIRECT_DEFINED
292
293 _CRTIMP wchar_t *__cdecl _wgetcwd(wchar_t *_DstBuf,int _SizeInWords);
294 _CRTIMP wchar_t *__cdecl _wgetdcwd(int _Drive,wchar_t *_DstBuf,int _SizeInWords);
295 #if __MSVCRT_VERSION__ >= 0x800
296 wchar_t *__cdecl _wgetdcwd_nolock(int _Drive,wchar_t *_DstBuf,int _SizeInWords);
297 #endif
298 _CRTIMP int __cdecl _wchdir(const wchar_t *_Path);
299 _CRTIMP int __cdecl _wmkdir(const wchar_t *_Path);
300 _CRTIMP int __cdecl _wrmdir(const wchar_t *_Path);
301 #endif
302
303 #ifndef _WIO_DEFINED
304 #define _WIO_DEFINED
305
306 _CRTIMP int __cdecl _waccess(const wchar_t *_Filename,int _AccessMode);
307 _CRTIMP int __cdecl _wchmod(const wchar_t *_Filename,int _Mode);
308 _CRTIMP int __cdecl _wcreat(const wchar_t *_Filename,int _PermissionMode) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
309 _CRTIMP intptr_t __cdecl _wfindfirst32(const wchar_t *_Filename,struct _wfinddata32_t *_FindData);
310 _CRTIMP int __cdecl _wfindnext32(intptr_t _FindHandle,struct _wfinddata32_t *_FindData);
311 _CRTIMP int __cdecl _wunlink(const wchar_t *_Filename);
312 _CRTIMP int __cdecl _wrename(const wchar_t *_OldFilename,const wchar_t *_NewFilename);
313 _CRTIMP wchar_t *__cdecl _wmktemp(wchar_t *_TemplateName) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
314 _CRTIMP intptr_t __cdecl _wfindfirst32i64(const wchar_t *_Filename,struct _wfinddata32i64_t *_FindData);
315 intptr_t __cdecl _wfindfirst64i32(const wchar_t *_Filename,struct _wfinddata64i32_t *_FindData);
316 _CRTIMP intptr_t __cdecl _wfindfirst64(const wchar_t *_Filename,struct _wfinddata64_t *_FindData);
317 _CRTIMP int __cdecl _wfindnext32i64(intptr_t _FindHandle,struct _wfinddata32i64_t *_FindData);
318 int __cdecl _wfindnext64i32(intptr_t _FindHandle,struct _wfinddata64i32_t *_FindData);
319 _CRTIMP int __cdecl _wfindnext64(intptr_t _FindHandle,struct _wfinddata64_t *_FindData);
320 _CRTIMP errno_t __cdecl _wsopen_s(int *_FileHandle,const wchar_t *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionFlag);
321 _CRTIMP int __cdecl _wopen(const wchar_t *_Filename,int _OpenFlag,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
322 _CRTIMP int __cdecl _wsopen(const wchar_t *_Filename,int _OpenFlag,int _ShareFlag,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
323 #endif
324
325 #ifndef _WLOCALE_DEFINED
326 #define _WLOCALE_DEFINED
327 _CRTIMP wchar_t *__cdecl _wsetlocale(int _Category,const wchar_t *_Locale);
328 #endif
329
330 #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
331 #ifndef _WEXEC_DEFINED
332 #define _WEXEC_DEFINED
333 _CRTIMP intptr_t __cdecl _wexecl(const wchar_t *_Filename,const wchar_t *_ArgList,...);
334 _CRTIMP intptr_t __cdecl _wexecle(const wchar_t *_Filename,const wchar_t *_ArgList,...);
335 _CRTIMP intptr_t __cdecl _wexeclp(const wchar_t *_Filename,const wchar_t *_ArgList,...);
336 _CRTIMP intptr_t __cdecl _wexeclpe(const wchar_t *_Filename,const wchar_t *_ArgList,...);
337 _CRTIMP intptr_t __cdecl _wexecv(const wchar_t *_Filename,const wchar_t *const *_ArgList);
338 _CRTIMP intptr_t __cdecl _wexecve(const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env);
339 _CRTIMP intptr_t __cdecl _wexecvp(const wchar_t *_Filename,const wchar_t *const *_ArgList);
340 _CRTIMP intptr_t __cdecl _wexecvpe(const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env);
341 #endif
342
343 #ifndef _WSPAWN_DEFINED
344 #define _WSPAWN_DEFINED
345 _CRTIMP intptr_t __cdecl _wspawnl(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...);
346 _CRTIMP intptr_t __cdecl _wspawnle(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...);
347 _CRTIMP intptr_t __cdecl _wspawnlp(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...);
348 _CRTIMP intptr_t __cdecl _wspawnlpe(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...);
349 _CRTIMP intptr_t __cdecl _wspawnv(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList);
350 _CRTIMP intptr_t __cdecl _wspawnve(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env);
351 _CRTIMP intptr_t __cdecl _wspawnvp(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList);
352 _CRTIMP intptr_t __cdecl _wspawnvpe(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env);
353 #endif
354
355 #ifndef _CRT_WSYSTEM_DEFINED
356 #define _CRT_WSYSTEM_DEFINED
357 _CRTIMP int __cdecl _wsystem(const wchar_t *_Command);
358 #endif
359 #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
360
361 #ifndef _WCTYPE_INLINE_DEFINED
362 #undef _CRT_WCTYPE_NOINLINE
363 #if !defined(__cplusplus) || defined(_CRT_WCTYPE_NOINLINE)
364 #define iswalpha(_c) (iswctype(_c,_ALPHA))
365 #define iswupper(_c) (iswctype(_c,_UPPER))
366 #define iswlower(_c) (iswctype(_c,_LOWER))
367 #define iswdigit(_c) (iswctype(_c,_DIGIT))
368 #define iswxdigit(_c) (iswctype(_c,_HEX))
369 #define iswspace(_c) (iswctype(_c,_SPACE))
370 #define iswpunct(_c) (iswctype(_c,_PUNCT))
371 #define iswalnum(_c) (iswctype(_c,_ALPHA|_DIGIT))
372 #define iswprint(_c) (iswctype(_c,_BLANK|_PUNCT|_ALPHA|_DIGIT))
373 #define iswgraph(_c) (iswctype(_c,_PUNCT|_ALPHA|_DIGIT))
374 #define iswcntrl(_c) (iswctype(_c,_CONTROL))
375 #define iswascii(_c) ((unsigned)(_c) < 0x80)
376
377 #define _iswalpha_l(_c,_p) (_iswctype_l(_c,_ALPHA,_p))
378 #define _iswupper_l(_c,_p) (_iswctype_l(_c,_UPPER,_p))
379 #define _iswlower_l(_c,_p) (_iswctype_l(_c,_LOWER,_p))
380 #define _iswdigit_l(_c,_p) (_iswctype_l(_c,_DIGIT,_p))
381 #define _iswxdigit_l(_c,_p) (_iswctype_l(_c,_HEX,_p))
382 #define _iswspace_l(_c,_p) (_iswctype_l(_c,_SPACE,_p))
383 #define _iswpunct_l(_c,_p) (_iswctype_l(_c,_PUNCT,_p))
384 #define _iswalnum_l(_c,_p) (_iswctype_l(_c,_ALPHA|_DIGIT,_p))
385 #define _iswprint_l(_c,_p) (_iswctype_l(_c,_BLANK|_PUNCT|_ALPHA|_DIGIT,_p))
386 #define _iswgraph_l(_c,_p) (_iswctype_l(_c,_PUNCT|_ALPHA|_DIGIT,_p))
387 #define _iswcntrl_l(_c,_p) (_iswctype_l(_c,_CONTROL,_p))
388 #if !defined(_CTYPE_DISABLE_MACROS) && defined(_CRT_USE_WINAPI_FAMILY_DESKTOP_APP)
389 #define isleadbyte(_c) (__PCTYPE_FUNC[(unsigned char)(_c)] & _LEADBYTE)
390 #endif
391 #endif
392 #define _WCTYPE_INLINE_DEFINED
393 #endif
394
395 #if !defined(_POSIX_) || defined(__GNUC__)
396 #ifndef _INO_T_DEFINED
397 #define _INO_T_DEFINED
398 typedef unsigned short _ino_t;
399 #ifndef NO_OLDNAMES
400 typedef unsigned short ino_t;
401 #endif
402 #endif
403
404 #ifndef _DEV_T_DEFINED
405 #define _DEV_T_DEFINED
406 typedef unsigned int _dev_t;
407 #ifndef NO_OLDNAMES
408 typedef unsigned int dev_t;
409 #endif
410 #endif
411
412 #include <_mingw_off_t.h>
413 #include <_mingw_stat64.h>
414
415 #ifndef _WSTAT_DEFINED
416 #define _WSTAT_DEFINED
417
418 _CRTIMP int __cdecl _wstat32(const wchar_t *_Name,struct _stat32 *_Stat);
419 _CRTIMP int __cdecl _wstat32i64(const wchar_t *_Name,struct _stat32i64 *_Stat);
420 int __cdecl _wstat64i32(const wchar_t *_Name,struct _stat64i32 *_Stat);
421 _CRTIMP int __cdecl _wstat64(const wchar_t *_Name,struct _stat64 *_Stat);
422 #endif
423 #endif
424
425 #ifndef _WCONIO_DEFINED
426 #define _WCONIO_DEFINED
427
428 #ifndef WEOF
429 #define WEOF (wint_t)(0xFFFF)
430 #endif
431
432 _CRTIMP wchar_t *_cgetws(wchar_t *_Buffer) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
433 _CRTIMP wint_t __cdecl _getwch(void);
434 _CRTIMP wint_t __cdecl _getwche(void);
435 _CRTIMP wint_t __cdecl _putwch(wchar_t _WCh);
436 _CRTIMP wint_t __cdecl _ungetwch(wint_t _WCh);
437 _CRTIMP int __cdecl _cputws(const wchar_t *_String);
438 _CRTIMP int __cdecl _cwprintf(const wchar_t * __restrict__ _Format,...);
439 _CRTIMP int __cdecl _cwscanf(const wchar_t * __restrict__ _Format,...);
440 _CRTIMP int __cdecl _cwscanf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
441 _CRTIMP int __cdecl _vcwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
442 _CRTIMP int __cdecl _cwprintf_p(const wchar_t * __restrict__ _Format,...);
443 _CRTIMP int __cdecl _vcwprintf_p(const wchar_t * __restrict__ _Format,va_list _ArgList);
444
445 _CRTIMP int __cdecl _cwprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
446 _CRTIMP int __cdecl _vcwprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
447 _CRTIMP int __cdecl _cwprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
448 _CRTIMP int __cdecl _vcwprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
449 #if __MSVCRT_VERSION__ >= 0x800
450 wint_t __cdecl _putwch_nolock(wchar_t _WCh);
451 wint_t __cdecl _getwch_nolock(void);
452 wint_t __cdecl _getwche_nolock(void);
453 wint_t __cdecl _ungetwch_nolock(wint_t _WCh);
454 #endif
455 #endif
456
457 #ifdef _UCRT
458 int __cdecl __stdio_common_vswprintf_p(unsigned __int64 _Options, wchar_t *_Str, size_t _Len, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
459 int __cdecl __stdio_common_vfwprintf_p(unsigned __int64 _Options, FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
460 #endif
461
462 #ifndef _WSTDIO_DEFINED
463 #define _WSTDIO_DEFINED
464
465 /* __attribute__((__format__ (gnu_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
466 int __cdecl __mingw_swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...);
467 /* __attribute__((__format__ (gnu_wscanf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
468 int __cdecl __mingw_vswscanf (const wchar_t * __restrict__ _Str,const wchar_t * __restrict__ Format,va_list argp);
469 /* __attribute__((__format__ (gnu_wscanf, 1, 2))) */ __MINGW_ATTRIB_NONNULL(1)
470 int __cdecl __mingw_wscanf(const wchar_t * __restrict__ _Format,...);
471 /* __attribute__((__format__ (gnu_wscanf, 1, 0))) */ __MINGW_ATTRIB_NONNULL(1)
472 int __cdecl __mingw_vwscanf(const wchar_t * __restrict__ Format, va_list argp);
473 /* __attribute__((__format__ (gnu_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
474 int __cdecl __mingw_fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...);
475 /* __attribute__((__format__ (gnu_wscanf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
476 int __cdecl __mingw_vfwscanf (FILE * __restrict__ fp, const wchar_t * __restrict__ Format,va_list argp);
477
478
479 /* __attribute__((__format__ (gnu_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
480 int __cdecl __mingw_fwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...);
481 /* __attribute__((__format__ (gnu_wprintf, 1, 2))) */ __MINGW_ATTRIB_NONNULL(1)
482 int __cdecl __mingw_wprintf(const wchar_t * __restrict__ _Format,...);
483 /* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
484 int __cdecl __mingw_vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);
485 /* __attribute__((__format__ (gnu_printf, 1, 0))) */ __MINGW_ATTRIB_NONNULL(1)
486 int __cdecl __mingw_vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
487 /* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
488 int __cdecl __mingw_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);
489 /* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
490 int __cdecl __mingw_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);
491 /* __attribute__((__format__ (gnu_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
492 int __cdecl __mingw_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);
493 /* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
494 int __cdecl __mingw_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list);
495
496 /* __attribute__((__format__ (ms_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
497 int __cdecl __ms_swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...);
498 /* __attribute__((__format__ (ms_wscanf, 1, 2))) */ __MINGW_ATTRIB_NONNULL(1)
499 int __cdecl __ms_wscanf(const wchar_t * __restrict__ _Format,...);
500 /* __attribute__((__format__ (ms_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
501 int __cdecl __ms_fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...);
502
503 /* __attribute__((__format__ (ms_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
504 int __cdecl __ms_fwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...);
505 /* __attribute__((__format__ (ms_wprintf, 1, 2))) */ __MINGW_ATTRIB_NONNULL(1)
506 int __cdecl __ms_wprintf(const wchar_t * __restrict__ _Format,...);
507 /* __attribute__((__format__ (ms_wprintf, 2, 0))) */__MINGW_ATTRIB_NONNULL(2)
508 int __cdecl __ms_vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);
509 /*__attribute__((__format__ (ms_wprintf, 1, 0))) */ __MINGW_ATTRIB_NONNULL(1)
510 int __cdecl __ms_vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
511 /* __attribute__((__format__ (ms_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
512 int __cdecl __ms_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);
513 /* __attribute__((__format__ (ms_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
514 int __cdecl __ms_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list);
515
516 #ifdef _UCRT
517 int __cdecl __stdio_common_vswprintf(unsigned __int64 options, wchar_t *str, size_t len, const wchar_t *format, _locale_t locale, va_list valist);
518 int __cdecl __stdio_common_vfwprintf(unsigned __int64 options, FILE *file, const wchar_t *format, _locale_t locale, va_list valist);
519 int __cdecl __stdio_common_vswscanf(unsigned __int64 options, const wchar_t *input, size_t length, const wchar_t *format, _locale_t locale, va_list valist);
520 int __cdecl __stdio_common_vfwscanf(unsigned __int64 options, FILE *file, const wchar_t *format, _locale_t locale, va_list valist);
521 #endif
522
523 #undef __mingw_ovr
524 #if defined (__GNUC__)
525 #define __mingw_ovr static __attribute__ ((__unused__)) __inline__ __cdecl
526 #ifdef __mingw_static_ovr
527 #undef __mingw_static_ovr
528 #define __mingw_static_ovr __mingw_ovr
529 #endif
530 #elif defined(__cplusplus)
531 #define __mingw_ovr inline __cdecl
532 #else
533 #define __mingw_ovr static __cdecl
534 #endif
535
536 #if __USE_MINGW_ANSI_STDIO
537
538 /*
539 * User has expressed a preference for C99 conformance...
540 */
541 __mingw_ovr
542 /* __attribute__((__format__ (gnu_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
543 int swscanf(const wchar_t *__source, const wchar_t *__format, ...)
544 {
545 int __retval;
546 __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format );
547 __retval = __mingw_vswscanf( __source, __format, __local_argv );
548 __builtin_va_end( __local_argv );
549 return __retval;
550 }
551
552 __mingw_ovr
553 /* __attribute__((__format__ (gnu_wscanf, 1, 2))) */ __MINGW_ATTRIB_NONNULL(1)
554 int wscanf(const wchar_t *__format, ...)
555 {
556 int __retval;
557 __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format );
558 __retval = __mingw_vfwscanf( stdin, __format, __local_argv );
559 __builtin_va_end( __local_argv );
560 return __retval;
561 }
562
563 __mingw_ovr
564 /* __attribute__((__format__ (gnu_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
565 int fwscanf(FILE *__stream, const wchar_t *__format, ...)
566 {
567 int __retval;
568 __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format );
569 __retval = __mingw_vfwscanf( __stream, __format, __local_argv );
570 __builtin_va_end( __local_argv );
571 return __retval;
572 }
573
574 #ifndef __NO_ISOCEXT /* externs in libmingwex.a */
575 __mingw_ovr
576 /* __attribute__((__format__ (gnu_wscanf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
577 int vswscanf (const wchar_t *__source, const wchar_t *__format, __builtin_va_list __local_argv)
578 {
579 return __mingw_vswscanf( __source, __format, __local_argv );
580 }
581
582 __mingw_ovr
583 /* __attribute__((__format__ (gnu_wscanf, 1, 0))) */ __MINGW_ATTRIB_NONNULL(1)
584 int vwscanf(const wchar_t *__format, __builtin_va_list __local_argv)
585 {
586 return __mingw_vfwscanf( stdin, __format, __local_argv );
587 }
588
589 __mingw_ovr
590 /* __attribute__((__format__ (gnu_wscanf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
591 int vfwscanf (FILE *__stream, const wchar_t *__format, __builtin_va_list __local_argv)
592 {
593 return __mingw_vfwscanf( __stream, __format, __local_argv );
594 }
595 #endif /* __NO_ISOCEXT */
596
597
598
599 __mingw_ovr
600 /* __attribute__((__format__ (gnu_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
601 int fwprintf (FILE *__stream, const wchar_t *__format, ...)
602 {
603 int __retval;
604 __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format );
605 __retval = __mingw_vfwprintf( __stream, __format, __local_argv );
606 __builtin_va_end( __local_argv );
607 return __retval;
608 }
609
610 __mingw_ovr
611 /* __attribute__((__format__ (gnu_wprintf, 1, 2))) */ __MINGW_ATTRIB_NONNULL(1)
612 int wprintf (const wchar_t *__format, ...)
613 {
614 int __retval;
615 __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format );
616 __retval = __mingw_vfwprintf( stdout, __format, __local_argv );
617 __builtin_va_end( __local_argv );
618 return __retval;
619 }
620
621 __mingw_ovr
622 /* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
623 int vfwprintf (FILE *__stream, const wchar_t *__format, __builtin_va_list __local_argv)
624 {
625 return __mingw_vfwprintf( __stream, __format, __local_argv );
626 }
627
628 __mingw_ovr
629 /* __attribute__((__format__ (gnu_wprintf, 1, 0))) */ __MINGW_ATTRIB_NONNULL(1)
630 int vwprintf (const wchar_t *__format, __builtin_va_list __local_argv)
631 {
632 return __mingw_vfwprintf( stdout, __format, __local_argv );
633 }
634
635 /*#ifndef __NO_ISOCEXT */ /* externs in libmingwex.a */
636 __mingw_ovr
637 /* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
638 int snwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, ...)
639 {
640 int __retval;
641 __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format );
642 __retval = __mingw_vsnwprintf( __stream, __n, __format, __local_argv );
643 __builtin_va_end( __local_argv );
644 return __retval;
645 }
646
647 __mingw_ovr
648 /* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
649 int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builtin_va_list __local_argv)
650 {
651 return __mingw_vsnwprintf( __stream, __n, __format, __local_argv );
652 }
653 /* #endif */ /* __NO_ISOCEXT */
654 #else /* !__USE_MINGW_ANSI_STDIO */
655
656 #ifdef _UCRT
657 __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
658 int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...)
659 {
660 __builtin_va_list __ap;
661 int __ret;
662 __builtin_va_start(__ap, _Format);
663 __ret = __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, _File, _Format, NULL, __ap);
664 __builtin_va_end(__ap);
665 return __ret;
666 }
667 __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
668 int __cdecl swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...)
669 {
670 __builtin_va_list __ap;
671 int __ret;
672 __builtin_va_start(__ap, _Format);
673 __ret = __stdio_common_vswscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, _Src, (size_t)-1, _Format, NULL, __ap);
674 __builtin_va_end(__ap);
675 return __ret;
676 }
677 __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
678 int __cdecl wscanf(const wchar_t * __restrict__ _Format,...)
679 {
680 __builtin_va_list __ap;
681 int __ret;
682 __builtin_va_start(__ap, _Format);
683 __ret = __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, stdin, _Format, NULL, __ap);
684 __builtin_va_end(__ap);
685 return __ret;
686 }
687 __mingw_ovr
688 __MINGW_ATTRIB_NONNULL(2)
689 int vfwscanf (FILE *__stream, const wchar_t *__format, va_list __local_argv)
690 {
691 return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, __stream, __format, NULL, __local_argv);
692 }
693
694 __mingw_ovr
695 __MINGW_ATTRIB_NONNULL(2)
696 int vswscanf (const wchar_t * __restrict__ __source, const wchar_t * __restrict__ __format, va_list __local_argv)
697 {
698 return __stdio_common_vswscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, __source, (size_t)-1, __format, NULL, __local_argv);
699 }
700 __mingw_ovr
701 __MINGW_ATTRIB_NONNULL(1)
702 int vwscanf(const wchar_t *__format, va_list __local_argv)
703 {
704 return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, stdin, __format, NULL, __local_argv);
705 }
706
707 __mingw_static_ovr
708 int __cdecl fwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...)
709 {
710 __builtin_va_list __ap;
711 int __ret;
712 __builtin_va_start(__ap, _Format);
713 __ret = __stdio_common_vfwprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _File, _Format, NULL, __ap);
714 __builtin_va_end(__ap);
715 return __ret;
716 }
717 __mingw_ovr
718 int __cdecl wprintf(const wchar_t * __restrict__ _Format,...)
719 {
720 __builtin_va_list __ap;
721 int __ret;
722 __builtin_va_start(__ap, _Format);
723 __ret = __stdio_common_vfwprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, stdout, _Format, NULL, __ap);
724 __builtin_va_end(__ap);
725 return __ret;
726 }
727 __mingw_ovr
728 int __cdecl vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList)
729 {
730 return __stdio_common_vfwprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _File, _Format, NULL, _ArgList);
731 }
732 __mingw_ovr
733 int __cdecl vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList)
734 {
735 return __stdio_common_vfwprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, stdout, _Format, NULL, _ArgList);
736 }
737 #else
738
739 int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
740 int __cdecl swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
741 int __cdecl wscanf(const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
742 #ifndef __NO_ISOCEXT /* externs in libmingwex.a */
743 int __cdecl __ms_vwscanf (const wchar_t * __restrict__ , va_list);
744 int __cdecl __ms_vfwscanf (FILE * __restrict__ ,const wchar_t * __restrict__ ,va_list);
745 int __cdecl __ms_vswscanf (const wchar_t * __restrict__ ,const wchar_t * __restrict__ ,va_list);
746
747 __mingw_ovr
748 __MINGW_ATTRIB_NONNULL(2)
749 int vfwscanf (FILE *__stream, const wchar_t *__format, __builtin_va_list __local_argv)
750 {
751 return __ms_vfwscanf (__stream, __format, __local_argv);
752 }
753
754 __mingw_ovr
755 __MINGW_ATTRIB_NONNULL(2)
756 int vswscanf (const wchar_t * __restrict__ __source, const wchar_t * __restrict__ __format, __builtin_va_list __local_argv)
757 {
758 return __ms_vswscanf( __source, __format, __local_argv );
759 }
760 __mingw_ovr
761 __MINGW_ATTRIB_NONNULL(1)
762 int vwscanf(const wchar_t *__format, __builtin_va_list __local_argv)
763 {
764 return __ms_vwscanf (__format, __local_argv);
765 }
766
767 #endif /* __NO_ISOCEXT */
768
769 int __cdecl fwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...);
770 int __cdecl wprintf(const wchar_t * __restrict__ _Format,...);
771 int __cdecl vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);
772 int __cdecl vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
773 #endif /* _UCRT */
774 #endif /* __USE_MINGW_ANSI_STDIO */
775
776
777 #ifndef WEOF
778 #define WEOF (wint_t)(0xFFFF)
779 #endif
780
781 #ifdef _POSIX_
782 _CRTIMP FILE *__cdecl _wfsopen(const wchar_t *_Filename,const wchar_t *_Mode);
783 #else
784 _CRTIMP FILE *__cdecl _wfsopen(const wchar_t *_Filename,const wchar_t *_Mode,int _ShFlag);
785 #endif
786
787 wint_t __cdecl fgetwc(FILE *_File);
788 _CRTIMP wint_t __cdecl _fgetwchar(void);
789 wint_t __cdecl fputwc(wchar_t _Ch,FILE *_File);
790 _CRTIMP wint_t __cdecl _fputwchar(wchar_t _Ch);
791 wint_t __cdecl getwc(FILE *_File);
792 wint_t __cdecl getwchar(void);
793 wint_t __cdecl putwc(wchar_t _Ch,FILE *_File);
794 wint_t __cdecl putwchar(wchar_t _Ch);
795 wint_t __cdecl ungetwc(wint_t _Ch,FILE *_File);
796 wchar_t *__cdecl fgetws(wchar_t * __restrict__ _Dst,int _SizeInWords,FILE * __restrict__ _File);
797 int __cdecl fputws(const wchar_t * __restrict__ _Str,FILE * __restrict__ _File);
798 _CRTIMP wchar_t *__cdecl _getws(wchar_t *_String) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
799 _CRTIMP int __cdecl _putws(const wchar_t *_Str);
800
801 #ifdef _UCRT
802 __mingw_ovr
803 int __cdecl _scwprintf(const wchar_t * __restrict__ _Format,...)
804 {
805 __builtin_va_list __ap;
806 int __ret;
807 __builtin_va_start(__ap, _Format);
808 __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, NULL, 0, _Format, NULL, __ap);
809 __builtin_va_end(__ap);
810 return __ret;
811 }
812 __mingw_static_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
813 int __cdecl _snwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...)
814 {
815 __builtin_va_list __ap;
816 int __ret;
817 __builtin_va_start(__ap, _Format);
818 __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION, _Dest, _Count, _Format, NULL, __ap);
819 __builtin_va_end(__ap);
820 return __ret;
821 }
822 __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
823 int __cdecl _vsnwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args)
824 {
825 return __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION, _Dest, _Count, _Format, NULL, _Args);
826 }
827
828 #if __USE_MINGW_ANSI_STDIO == 0
829 __mingw_ovr
830 int snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...)
831 {
832 __builtin_va_list __ap;
833 int __ret;
834 __builtin_va_start(__ap, format);
835 __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, s, n, format, NULL, __ap);
836 __builtin_va_end(__ap);
837 return __ret;
838 }
839 __mingw_ovr
840 int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)
841 {
842 int __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, s, n, format, NULL, arg);
843 return __ret < 0 ? -1 : __ret;
844 }
845 #endif
846
847 #else
848 _CRTIMP int __cdecl _scwprintf(const wchar_t * __restrict__ _Format,...);
849 _CRTIMP int __cdecl _swprintf_l(wchar_t * __restrict__ ,size_t _SizeInWords,const wchar_t * __restrict__ _Format,_locale_t _Locale,... ) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
850 _CRTIMP int __cdecl _swprintf_c(wchar_t * __restrict__ _DstBuf,size_t _SizeInWords,const wchar_t * __restrict__ _Format,...);
851 _CRTIMP int __cdecl _vswprintf_c(wchar_t * __restrict__ _DstBuf,size_t _SizeInWords,const wchar_t * __restrict__ _Format,va_list _ArgList);
852 _CRTIMP int __cdecl _snwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
853 _CRTIMP int __cdecl _vsnwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
854
855 #ifndef __NO_ISOCEXT /* externs in libmingwex.a */
856
857 #if __USE_MINGW_ANSI_STDIO == 0
858 #pragma push_macro("snwprintf")
859 #pragma push_macro("vsnwprintf")
860 # undef snwprintf
861 # undef vsnwprintf
862 int __cdecl __ms_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);
863 int __cdecl __ms_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);
864 __mingw_ovr
865 int snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...)
866 {
867 int r;
868 va_list argp;
869 __builtin_va_start (argp, format);
870 r = _vsnwprintf (s, n, format, argp);
871 __builtin_va_end (argp);
872 return r;
873 }
874 __mingw_ovr
875 int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)
876 {
877 return _vsnwprintf(s,n,format,arg);
878 }
879 #pragma pop_macro ("vsnwprintf")
880 #pragma pop_macro ("snwprintf")
881 #endif
882
883 #endif /* _UCRT */
884
885 #endif /* _WSTDIO_DEFINED */
886
887
888 #ifdef _UCRT
889 __mingw_ovr int __cdecl _vfwscanf_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
890 {
891 return __stdio_common_vfwscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, _File, _Format, _Locale, _ArgList);
892 }
893 __mingw_ovr int __cdecl _fwscanf_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, ...)
894 {
895 __builtin_va_list _ArgList;
896 int _Ret;
897 __builtin_va_start(_ArgList, _Locale);
898 _Ret = _vfwscanf_l(_File, _Format, _Locale, _ArgList);
899 __builtin_va_end(_ArgList);
900 return _Ret;
901 }
902 __mingw_ovr int __cdecl _wscanf_l(const wchar_t *_Format, _locale_t _Locale, ...)
903 {
904 __builtin_va_list _ArgList;
905 int _Ret;
906 __builtin_va_start(_ArgList, _Locale);
907 _Ret = _vfwscanf_l(stdin, _Format, _Locale, _ArgList);
908 __builtin_va_end(_ArgList);
909 return _Ret;
910 }
911
912 __mingw_ovr int __cdecl _vsnwscanf_l(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
913 {
914 return __stdio_common_vswscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, _Src, _MaxCount, _Format, _Locale, _ArgList);
915 }
916 __mingw_ovr int __cdecl _snwscanf_l(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
917 {
918 __builtin_va_list _ArgList;
919 int _Ret;
920 __builtin_va_start(_ArgList, _Locale);
921 _Ret = _vsnwscanf_l(_Src, _MaxCount, _Format, _Locale, _ArgList);
922 __builtin_va_end(_ArgList);
923 return _Ret;
924 }
925 __mingw_ovr int __cdecl _snwscanf(const wchar_t *_Src, size_t _MaxCount, const wchar_t *_Format, ...)
926 {
927 __builtin_va_list _ArgList;
928 int _Ret;
929 __builtin_va_start(_ArgList, _Format);
930 _Ret = _vsnwscanf_l(_Src, _MaxCount, _Format, NULL, _ArgList);
931 __builtin_va_end(_ArgList);
932 return _Ret;
933 }
934
935 __mingw_ovr int __cdecl _vswscanf_l(const wchar_t *_Src, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
936 {
937 return __stdio_common_vswscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS, _Src, (size_t)-1, _Format, _Locale, _ArgList);
938 }
939 __mingw_ovr int __cdecl _swscanf_l(const wchar_t *_Src, const wchar_t *_Format, _locale_t _Locale, ...)
940 {
941 __builtin_va_list _ArgList;
942 int _Ret;
943 __builtin_va_start(_ArgList, _Locale);
944 _Ret = _vswscanf_l(_Src, _Format, _Locale, _ArgList);
945 __builtin_va_end(_ArgList);
946 return _Ret;
947 }
948
949 __mingw_ovr int __cdecl _vfwprintf_p_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
950 {
951 return __stdio_common_vfwprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _File, _Format, _Locale, _ArgList);
952 }
953 __mingw_ovr int __cdecl _vwprintf_p_l(const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
954 {
955 return _vfwprintf_p_l(stdout, _Format, _Locale, _ArgList);
956 }
957 __mingw_ovr int __cdecl _vfwprintf_p(FILE *_File, const wchar_t *_Format, va_list _ArgList)
958 {
959 return _vfwprintf_p_l(_File, _Format, NULL, _ArgList);
960 }
961 __mingw_ovr int __cdecl _vwprintf_p(const wchar_t *_Format, va_list _ArgList)
962 {
963 return _vfwprintf_p_l(stdout, _Format, NULL, _ArgList);
964 }
965 __mingw_ovr int __cdecl _fwprintf_p_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, ...)
966 {
967 __builtin_va_list _ArgList;
968 int _Ret;
969 __builtin_va_start(_ArgList, _Locale);
970 _Ret = _vfwprintf_p_l(_File, _Format, _Locale, _ArgList);
971 __builtin_va_end(_ArgList);
972 return _Ret;
973 }
974 __mingw_ovr int __cdecl _wprintf_p_l(const wchar_t *_Format, _locale_t _Locale, ...)
975 {
976 __builtin_va_list _ArgList;
977 int _Ret;
978 __builtin_va_start(_ArgList, _Locale);
979 _Ret = _vfwprintf_p_l(stdout, _Format, _Locale, _ArgList);
980 __builtin_va_end(_ArgList);
981 return _Ret;
982 }
983 __mingw_ovr int __cdecl _fwprintf_p(FILE *_File, const wchar_t *_Format, ...)
984 {
985 __builtin_va_list _ArgList;
986 int _Ret;
987 __builtin_va_start(_ArgList, _Format);
988 _Ret = _vfwprintf_p_l(_File, _Format, NULL, _ArgList);
989 __builtin_va_end(_ArgList);
990 return _Ret;
991 }
992 __mingw_ovr int __cdecl _wprintf_p(const wchar_t *_Format, ...)
993 {
994 __builtin_va_list _ArgList;
995 int _Ret;
996 __builtin_va_start(_ArgList, _Format);
997 _Ret = _vfwprintf_p_l(stdout, _Format, NULL, _ArgList);
998 __builtin_va_end(_ArgList);
999 return _Ret;
1000 }
1001
1002 __mingw_ovr int __cdecl _vfwprintf_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
1003 {
1004 return __stdio_common_vfwprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _File, _Format, _Locale, _ArgList);
1005 }
1006 __mingw_ovr int __cdecl _vwprintf_l(const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
1007 {
1008 return _vfwprintf_l(stdout, _Format, _Locale, _ArgList);
1009 }
1010 __mingw_ovr int __cdecl _fwprintf_l(FILE *_File, const wchar_t *_Format, _locale_t _Locale, ...)
1011 {
1012 __builtin_va_list _ArgList;
1013 int _Ret;
1014 __builtin_va_start(_ArgList, _Locale);
1015 _Ret = _vfwprintf_l(_File, _Format, _Locale, _ArgList);
1016 __builtin_va_end(_ArgList);
1017 return _Ret;
1018 }
1019 __mingw_ovr int __cdecl _wprintf_l(const wchar_t *_Format, _locale_t _Locale, ...)
1020 {
1021 __builtin_va_list _ArgList;
1022 int _Ret;
1023 __builtin_va_start(_ArgList, _Locale);
1024 _Ret = _vfwprintf_l(stdout, _Format, _Locale, _ArgList);
1025 __builtin_va_end(_ArgList);
1026 return _Ret;
1027 }
1028
1029 __mingw_ovr int __cdecl _vswprintf_p_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
1030 {
1031 return __stdio_common_vswprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _DstBuf, _MaxCount, _Format, _Locale, _ArgList);
1032 }
1033 __mingw_ovr int __cdecl _vswprintf_p(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, va_list _ArgList)
1034 {
1035 return _vswprintf_p_l(_DstBuf, _MaxCount, _Format, NULL, _ArgList);
1036 }
1037 __mingw_ovr int __cdecl _swprintf_p_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
1038 {
1039 __builtin_va_list _ArgList;
1040 int _Ret;
1041 __builtin_va_start(_ArgList, _Locale);
1042 _Ret = _vswprintf_p_l(_DstBuf, _MaxCount, _Format, _Locale, _ArgList);
1043 __builtin_va_end(_ArgList);
1044 return _Ret;
1045 }
1046 __mingw_ovr int __cdecl _swprintf_p(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, ...)
1047 {
1048 __builtin_va_list _ArgList;
1049 int _Ret;
1050 __builtin_va_start(_ArgList, _Format);
1051 _Ret = _vswprintf_p_l(_DstBuf, _MaxCount, _Format, NULL, _ArgList);
1052 __builtin_va_end(_ArgList);
1053 return _Ret;
1054 }
1055
1056 __mingw_ovr int __cdecl _vsnwprintf_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
1057 {
1058 return __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION, _DstBuf, _MaxCount, _Format, _Locale, _ArgList);
1059 }
1060 __mingw_ovr int __cdecl _snwprintf_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
1061 {
1062 __builtin_va_list _ArgList;
1063 int _Ret;
1064 __builtin_va_start(_ArgList, _Locale);
1065 _Ret = _vsnwprintf_l(_DstBuf, _MaxCount, _Format, _Locale, _ArgList);
1066 __builtin_va_end(_ArgList);
1067 return _Ret;
1068 }
1069
1070 __mingw_ovr int __cdecl _vscwprintf_p_l(const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
1071 {
1072 return __stdio_common_vswprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, NULL, 0, _Format, _Locale, _ArgList);
1073 }
1074 __mingw_ovr int __cdecl _vscwprintf_p(const wchar_t *_Format, va_list _ArgList)
1075 {
1076 return _vscwprintf_p_l(_Format, NULL, _ArgList);
1077 }
1078 __mingw_ovr int __cdecl _scwprintf_p_l(const wchar_t *_Format, _locale_t _Locale, ...)
1079 {
1080 __builtin_va_list _ArgList;
1081 int _Ret;
1082 __builtin_va_start(_ArgList, _Locale);
1083 _Ret = _vscwprintf_p_l(_Format, _Locale, _ArgList);
1084 __builtin_va_end(_ArgList);
1085 return _Ret;
1086 }
1087 __mingw_ovr int __cdecl _scwprintf_p(const wchar_t *_Format, ...)
1088 {
1089 __builtin_va_list _ArgList;
1090 int _Ret;
1091 __builtin_va_start(_ArgList, _Format);
1092 _Ret = _vscwprintf_p_l(_Format, NULL, _ArgList);
1093 __builtin_va_end(_ArgList);
1094 return _Ret;
1095 }
1096
1097 __mingw_ovr int __cdecl _vscwprintf_l(const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
1098 {
1099 return __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, NULL, 0, _Format, _Locale, _ArgList);
1100 }
1101 __mingw_ovr int __cdecl _vscwprintf(const wchar_t *_Format, va_list _ArgList)
1102 {
1103 return _vscwprintf_l(_Format, NULL, _ArgList);
1104 }
1105 __mingw_ovr int __cdecl _scwprintf_l(const wchar_t *_Format, _locale_t _Locale, ...)
1106 {
1107 __builtin_va_list _ArgList;
1108 int _Ret;
1109 __builtin_va_start(_ArgList, _Locale);
1110 _Ret = _vscwprintf_l(_Format, _Locale, _ArgList);
1111 __builtin_va_end(_ArgList);
1112 return _Ret;
1113 }
1114
1115 __mingw_ovr int __cdecl _vswprintf_c_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
1116 {
1117 return __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _DstBuf, _MaxCount, _Format, _Locale, _ArgList);
1118 }
1119 __mingw_ovr int __cdecl __vswprintf_l(wchar_t *_DstBuf, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
1120 {
1121 return _vswprintf_c_l(_DstBuf, (size_t)-1, _Format, _Locale, _ArgList);
1122 }
1123 __mingw_ovr int __cdecl _vswprintf_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList)
1124 {
1125 return _vswprintf_c_l(_DstBuf, _MaxCount, _Format, _Locale, _ArgList);
1126 }
1127 __mingw_ovr int __cdecl _vswprintf(wchar_t *_DstBuf, const wchar_t *_Format, va_list _ArgList)
1128 {
1129 return _vswprintf_c_l(_DstBuf, (size_t)-1, _Format, NULL, _ArgList);
1130 }
1131 __mingw_ovr int __cdecl _swprintf_c_l(wchar_t *_DstBuf, size_t _MaxCount, const wchar_t *_Format, _locale_t _Locale, ...)
1132 {
1133 __builtin_va_list _ArgList;
1134 int _Ret;
1135 __builtin_va_start(_ArgList, _Locale);
1136 _Ret = _vswprintf_c_l(_DstBuf, _MaxCount, _Format, _Locale, _ArgList);
1137 __builtin_va_end(_ArgList);
1138 return _Ret;
1139 }
1140 __mingw_ovr int __cdecl __swprintf_l(wchar_t *_DstBuf, const wchar_t *_Format, _locale_t _Locale, ...)
1141 {
1142 __builtin_va_list _ArgList;
1143 int _Ret;
1144 __builtin_va_start(_ArgList, _Locale);
1145 _Ret = _vswprintf_c_l(_DstBuf, (size_t)-1, _Format, _Locale, _ArgList);
1146 __builtin_va_end(_ArgList);
1147 return _Ret;
1148 }
1149 __mingw_ovr int __cdecl _swprintf(wchar_t *_DstBuf, const wchar_t *_Format, ...)
1150 {
1151 __builtin_va_list _ArgList;
1152 int _Ret;
1153 __builtin_va_start(_ArgList, _Format);
1154 _Ret = _vswprintf_c_l(_DstBuf, (size_t)-1, _Format, NULL, _ArgList);
1155 __builtin_va_end(_ArgList);
1156 return _Ret;
1157 }
1158 #else /* _UCRT */
1159 _CRTIMP int __cdecl _fwprintf_p(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...);
1160 _CRTIMP int __cdecl _wprintf_p(const wchar_t * __restrict__ _Format,...);
1161 _CRTIMP int __cdecl _vfwprintf_p(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);
1162 _CRTIMP int __cdecl _vwprintf_p(const wchar_t * __restrict__ _Format,va_list _ArgList);
1163 _CRTIMP int __cdecl _swprintf_p(wchar_t * __restrict__ _DstBuf,size_t _MaxCount,const wchar_t * __restrict__ _Format,...);
1164 _SECIMP int __cdecl _vswprintf_p(wchar_t * __restrict__ _DstBuf,size_t _MaxCount,const wchar_t * __restrict__ _Format,va_list _ArgList);
1165 _CRTIMP int __cdecl _scwprintf_p(const wchar_t * __restrict__ _Format,...);
1166 _SECIMP int __cdecl _vscwprintf_p(const wchar_t * __restrict__ _Format,va_list _ArgList);
1167 _CRTIMP int __cdecl _wprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
1168 _CRTIMP int __cdecl _wprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
1169 _CRTIMP int __cdecl _vwprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
1170 _CRTIMP int __cdecl _vwprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
1171 _CRTIMP int __cdecl _fwprintf_l(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
1172 _CRTIMP int __cdecl _fwprintf_p_l(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
1173 _CRTIMP int __cdecl _vfwprintf_l(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
1174 _CRTIMP int __cdecl _vfwprintf_p_l(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
1175 _CRTIMP int __cdecl _swprintf_c_l(wchar_t * __restrict__ _DstBuf,size_t _MaxCount,const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
1176 _CRTIMP int __cdecl _swprintf_p_l(wchar_t * __restrict__ _DstBuf,size_t _MaxCount,const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
1177 _CRTIMP int __cdecl _vswprintf_c_l(wchar_t * __restrict__ _DstBuf,size_t _MaxCount,const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
1178 _CRTIMP int __cdecl _vswprintf_p_l(wchar_t * __restrict__ _DstBuf,size_t _MaxCount,const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
1179 _CRTIMP int __cdecl _scwprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
1180 _CRTIMP int __cdecl _scwprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
1181 _CRTIMP int __cdecl _vscwprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
1182 _CRTIMP int __cdecl _snwprintf_l(wchar_t * __restrict__ _DstBuf,size_t _MaxCount,const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
1183 _CRTIMP int __cdecl _vsnwprintf_l(wchar_t * __restrict__ _DstBuf,size_t _MaxCount,const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1184 _CRTIMP int __cdecl _swprintf(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,...);
1185 _CRTIMP int __cdecl _vswprintf(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,va_list _Args);
1186 _CRTIMP int __cdecl __swprintf_l(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,_locale_t _Plocinfo,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1187 _CRTIMP int __cdecl _vswprintf_l(wchar_t * __restrict__ _Dest,size_t _MaxCount,const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1188 _CRTIMP int __cdecl __vswprintf_l(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,_locale_t _Plocinfo,va_list _Args) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1189 #endif /* !_UCRT */
1190
1191 #ifndef RC_INVOKED
1192 #include <swprintf.inl>
1193 #endif
1194
1195 #ifdef _CRT_NON_CONFORMING_SWPRINTFS
1196 #ifndef __cplusplus
1197 #define _swprintf_l __swprintf_l
1198 #define _vswprintf_l __vswprintf_l
1199 #endif
1200 #endif
1201
1202 _CRTIMP wchar_t *__cdecl _wtempnam(const wchar_t *_Directory,const wchar_t *_FilePrefix);
1203 #ifndef _UCRT
1204 _CRTIMP int __cdecl _vscwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
1205 _CRTIMP int __cdecl _vscwprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
1206 _CRTIMP int __cdecl _fwscanf_l(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,_locale_t _Locale,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1207 _CRTIMP int __cdecl _swscanf_l(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,_locale_t _Locale,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1208 _CRTIMP int __cdecl _snwscanf(const wchar_t * __restrict__ _Src,size_t _MaxCount,const wchar_t * __restrict__ _Format,...);
1209 _CRTIMP int __cdecl _snwscanf_l(const wchar_t * __restrict__ _Src,size_t _MaxCount,const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
1210 _CRTIMP int __cdecl _wscanf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1211 #endif /* !_UCRT */
1212 _CRTIMP FILE *__cdecl _wfdopen(int _FileHandle ,const wchar_t *_Mode);
1213 _CRTIMP FILE *__cdecl _wfopen(const wchar_t * __restrict__ _Filename,const wchar_t * __restrict__ _Mode) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1214 _CRTIMP FILE *__cdecl _wfreopen(const wchar_t * __restrict__ _Filename,const wchar_t * __restrict__ _Mode,FILE * __restrict__ _OldFile) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1215
1216 #ifndef _CRT_WPERROR_DEFINED
1217 #define _CRT_WPERROR_DEFINED
1218 _CRTIMP void __cdecl _wperror(const wchar_t *_ErrMsg);
1219 #endif
1220 _CRTIMP FILE *__cdecl _wpopen(const wchar_t *_Command,const wchar_t *_Mode);
1221 #if !defined(NO_OLDNAMES) && !defined(wpopen)
1222 #define wpopen _wpopen
1223 #endif
1224 _CRTIMP int __cdecl _wremove(const wchar_t *_Filename);
1225 _CRTIMP wchar_t *__cdecl _wtmpnam(wchar_t *_Buffer);
1226 #if __MSVCRT_VERSION__ >= 0x800
1227 _CRTIMP wint_t __cdecl _fgetwc_nolock(FILE *_File);
1228 _CRTIMP wint_t __cdecl _fputwc_nolock(wchar_t _Ch,FILE *_File);
1229 _CRTIMP wint_t __cdecl _ungetwc_nolock(wint_t _Ch,FILE *_File);
1230 #endif
1231
1232 #undef _CRT_GETPUTWCHAR_NOINLINE
1233
1234 #if !defined(__cplusplus) || defined(_CRT_GETPUTWCHAR_NOINLINE) || defined (__CRT__NO_INLINE)
1235 #define getwchar() fgetwc(stdin)
1236 #define putwchar(_c) fputwc((_c),stdout)
1237 #else
1238 __CRT_INLINE wint_t __cdecl getwchar() {return (fgetwc(stdin)); }
1239 __CRT_INLINE wint_t __cdecl putwchar(wchar_t _C) {return (fputwc(_C,stdout)); }
1240 #endif
1241
1242 #define getwc(_stm) fgetwc(_stm)
1243 #define putwc(_c,_stm) fputwc(_c,_stm)
1244 #if __MSVCRT_VERSION__ >= 0x800
1245 #define _putwc_nolock(_c,_stm) _fputwc_nolock(_c,_stm)
1246 #define _getwc_nolock(_c) _fgetwc_nolock(_c)
1247 #endif
1248 #endif
1249
1250 #ifndef _WSTDLIB_DEFINED
1251 #define _WSTDLIB_DEFINED
1252
1253 _CRTIMP wchar_t *__cdecl _itow(int _Value,wchar_t *_Dest,int _Radix) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1254 _CRTIMP wchar_t *__cdecl _ltow(long _Value,wchar_t *_Dest,int _Radix) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1255 _CRTIMP wchar_t *__cdecl _ultow(unsigned long _Value,wchar_t *_Dest,int _Radix) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1256 _CRTIMP double __cdecl _wcstod_l(const wchar_t * __restrict__ _Str,wchar_t ** __restrict__ _EndPtr,_locale_t _Locale);
1257
1258 double __cdecl __mingw_wcstod(const wchar_t * __restrict__ _Str,wchar_t ** __restrict__ _EndPtr);
1259 float __cdecl __mingw_wcstof(const wchar_t * __restrict__ nptr, wchar_t ** __restrict__ endptr);
1260 long double __cdecl __mingw_wcstold(const wchar_t * __restrict__, wchar_t ** __restrict__);
1261
1262 #if __USE_MINGW_STRTOX
1263 __mingw_ovr
1264 double __cdecl wcstod(const wchar_t * __restrict__ _Str,wchar_t ** __restrict__ _EndPtr){
1265 return __mingw_wcstod(_Str,_EndPtr);
1266 }
1267 __mingw_ovr
1268 float __cdecl wcstof(const wchar_t * __restrict__ _Str,wchar_t ** __restrict__ _EndPtr){
1269 return __mingw_wcstof(_Str,_EndPtr);
1270 }
1271 /* wcstold is already a mingw implementation */
1272 #else
1273 double __cdecl wcstod(const wchar_t * __restrict__ _Str,wchar_t ** __restrict__ _EndPtr);
1274 float __cdecl wcstof(const wchar_t * __restrict__ nptr, wchar_t ** __restrict__ endptr);
1275 #endif /* defined(__USE_MINGW_STRTOX) */
1276 #if !defined __NO_ISOCEXT /* in libmingwex.a */
1277 long double __cdecl wcstold (const wchar_t * __restrict__, wchar_t ** __restrict__);
1278 #endif /* __NO_ISOCEXT */
1279 long __cdecl wcstol(const wchar_t * __restrict__ _Str,wchar_t ** __restrict__ _EndPtr,int _Radix);
1280 _CRTIMP long __cdecl _wcstol_l(const wchar_t * __restrict__ _Str,wchar_t ** __restrict__ _EndPtr,int _Radix,_locale_t _Locale);
1281 unsigned long __cdecl wcstoul(const wchar_t * __restrict__ _Str,wchar_t ** __restrict__ _EndPtr,int _Radix);
1282 _CRTIMP unsigned long __cdecl _wcstoul_l(const wchar_t * __restrict__ _Str,wchar_t ** __restrict__ _EndPtr,int _Radix,_locale_t _Locale);
1283 _CRTIMP wchar_t *__cdecl _wgetenv(const wchar_t *_VarName) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1284 #ifndef _CRT_WSYSTEM_DEFINED
1285 #define _CRT_WSYSTEM_DEFINED
1286 _CRTIMP int __cdecl _wsystem(const wchar_t *_Command);
1287 #endif
1288 _CRTIMP double __cdecl _wtof(const wchar_t *_Str);
1289 _CRTIMP double __cdecl _wtof_l(const wchar_t *_Str,_locale_t _Locale);
1290 _CRTIMP int __cdecl _wtoi(const wchar_t *_Str);
1291 _CRTIMP int __cdecl _wtoi_l(const wchar_t *_Str,_locale_t _Locale);
1292 _CRTIMP long __cdecl _wtol(const wchar_t *_Str);
1293 _CRTIMP long __cdecl _wtol_l(const wchar_t *_Str,_locale_t _Locale);
1294
1295 __MINGW_EXTENSION _CRTIMP wchar_t *__cdecl _i64tow(__int64 _Val,wchar_t *_DstBuf,int _Radix) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1296 __MINGW_EXTENSION _CRTIMP wchar_t *__cdecl _ui64tow(unsigned __int64 _Val,wchar_t *_DstBuf,int _Radix);
1297 __MINGW_EXTENSION _CRTIMP __int64 __cdecl _wtoi64(const wchar_t *_Str);
1298 __MINGW_EXTENSION _CRTIMP __int64 __cdecl _wtoi64_l(const wchar_t *_Str,_locale_t _Locale);
1299 __MINGW_EXTENSION _CRTIMP __int64 __cdecl _wcstoi64(const wchar_t *_Str,wchar_t **_EndPtr,int _Radix);
1300 __MINGW_EXTENSION _CRTIMP __int64 __cdecl _wcstoi64_l(const wchar_t *_Str,wchar_t **_EndPtr,int _Radix,_locale_t _Locale);
1301 __MINGW_EXTENSION _CRTIMP unsigned __int64 __cdecl _wcstoui64(const wchar_t *_Str,wchar_t **_EndPtr,int _Radix);
1302 __MINGW_EXTENSION _CRTIMP unsigned __int64 __cdecl _wcstoui64_l(const wchar_t *_Str,wchar_t **_EndPtr,int _Radix,_locale_t _Locale);
1303 #endif
1304
1305 #ifndef _POSIX_
1306 #ifndef _WSTDLIBP_DEFINED
1307 #define _WSTDLIBP_DEFINED
1308 _CRTIMP wchar_t *__cdecl _wfullpath(wchar_t *_FullPath,const wchar_t *_Path,size_t _SizeInWords);
1309 _CRTIMP void __cdecl _wmakepath(wchar_t *_ResultPath,const wchar_t *_Drive,const wchar_t *_Dir,const wchar_t *_Filename,const wchar_t *_Ext);
1310 #ifndef _CRT_WPERROR_DEFINED
1311 #define _CRT_WPERROR_DEFINED
1312 _CRTIMP void __cdecl _wperror(const wchar_t *_ErrMsg);
1313 #endif
1314 _CRTIMP int __cdecl _wputenv(const wchar_t *_EnvString);
1315 _CRTIMP void __cdecl _wsearchenv(const wchar_t *_Filename,const wchar_t *_EnvVar,wchar_t *_ResultPath) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1316 _CRTIMP void __cdecl _wsplitpath(const wchar_t *_FullPath,wchar_t *_Drive,wchar_t *_Dir,wchar_t *_Filename,wchar_t *_Ext) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1317 #endif
1318 #endif
1319
1320 #ifndef _WSTRING_DEFINED
1321 #define _WSTRING_DEFINED
1322 _CRTIMP wchar_t *__cdecl _wcsdup(const wchar_t *_Str);
1323 wchar_t *__cdecl wcscat(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Source) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1324 _CONST_RETURN wchar_t *__cdecl wcschr(const wchar_t *_Str,wchar_t _Ch);
1325 int __cdecl wcscmp(const wchar_t *_Str1,const wchar_t *_Str2);
1326 wchar_t *__cdecl wcscpy(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Source) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1327 size_t __cdecl wcscspn(const wchar_t *_Str,const wchar_t *_Control);
1328 size_t __cdecl wcslen(const wchar_t *_Str);
1329 size_t __cdecl wcsnlen(const wchar_t *_Src,size_t _MaxCount);
1330 wchar_t *__cdecl wcsncat(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Source,size_t _Count) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1331 int __cdecl wcsncmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
1332 wchar_t *__cdecl wcsncpy(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Source,size_t _Count) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1333 wchar_t *__cdecl _wcsncpy_l(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Source,size_t _Count,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1334 _CONST_RETURN wchar_t *__cdecl wcspbrk(const wchar_t *_Str,const wchar_t *_Control);
1335 _CONST_RETURN wchar_t *__cdecl wcsrchr(const wchar_t *_Str,wchar_t _Ch);
1336 size_t __cdecl wcsspn(const wchar_t *_Str,const wchar_t *_Control);
1337 _CONST_RETURN wchar_t *__cdecl wcsstr(const wchar_t *_Str,const wchar_t *_SubStr);
1338 #if defined(_UCRT)
1339 wchar_t *__cdecl wcstok(wchar_t * __restrict__ _Str,const wchar_t * __restrict__ _Delim,wchar_t **_Ptr) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1340 #else
1341 wchar_t *__cdecl wcstok(wchar_t * __restrict__ _Str,const wchar_t * __restrict__ _Delim) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1342 #endif
1343 _CRTIMP wchar_t *__cdecl _wcserror(int _ErrNum) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1344 _CRTIMP wchar_t *__cdecl __wcserror(const wchar_t *_Str) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1345 _CRTIMP int __cdecl _wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2);
1346 _CRTIMP int __cdecl _wcsicmp_l(const wchar_t *_Str1,const wchar_t *_Str2,_locale_t _Locale);
1347 _CRTIMP int __cdecl _wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
1348 _CRTIMP int __cdecl _wcsnicmp_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
1349 _CRTIMP wchar_t *__cdecl _wcsnset(wchar_t *_Str,wchar_t _Val,size_t _MaxCount) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1350 _CRTIMP wchar_t *__cdecl _wcsrev(wchar_t *_Str);
1351 _CRTIMP wchar_t *__cdecl _wcsset(wchar_t *_Str,wchar_t _Val) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1352 _CRTIMP wchar_t *__cdecl _wcslwr(wchar_t *_String) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1353 _CRTIMP wchar_t *_wcslwr_l(wchar_t *_String,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1354 _CRTIMP wchar_t *__cdecl _wcsupr(wchar_t *_String) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1355 _CRTIMP wchar_t *_wcsupr_l(wchar_t *_String,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1356 size_t __cdecl wcsxfrm(wchar_t * __restrict__ _Dst,const wchar_t * __restrict__ _Src,size_t _MaxCount);
1357 _CRTIMP size_t __cdecl _wcsxfrm_l(wchar_t * __restrict__ _Dst,const wchar_t * __restrict__ _Src,size_t _MaxCount,_locale_t _Locale);
1358 int __cdecl wcscoll(const wchar_t *_Str1,const wchar_t *_Str2);
1359 _CRTIMP int __cdecl _wcscoll_l(const wchar_t *_Str1,const wchar_t *_Str2,_locale_t _Locale);
1360 _CRTIMP int __cdecl _wcsicoll(const wchar_t *_Str1,const wchar_t *_Str2);
1361 _CRTIMP int __cdecl _wcsicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,_locale_t _Locale);
1362 _CRTIMP int __cdecl _wcsncoll(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
1363 _CRTIMP int __cdecl _wcsncoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
1364 _CRTIMP int __cdecl _wcsnicoll(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
1365 _CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
1366
1367 #ifndef NO_OLDNAMES
1368 wchar_t *__cdecl wcsdup(const wchar_t *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1369 #define wcswcs wcsstr
1370 int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1371 int __cdecl wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1372 wchar_t *__cdecl wcsnset(wchar_t *_Str,wchar_t _Val,size_t _MaxCount) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1373 wchar_t *__cdecl wcsrev(wchar_t *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1374 wchar_t *__cdecl wcsset(wchar_t *_Str,wchar_t _Val) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1375 wchar_t *__cdecl wcslwr(wchar_t *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1376 wchar_t *__cdecl wcsupr(wchar_t *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1377 int __cdecl wcsicoll(const wchar_t *_Str1,const wchar_t *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
1378 #endif
1379 #endif
1380
1381 #ifndef _TM_DEFINED
1382 #define _TM_DEFINED
1383 struct tm {
1384 int tm_sec;
1385 int tm_min;
1386 int tm_hour;
1387 int tm_mday;
1388 int tm_mon;
1389 int tm_year;
1390 int tm_wday;
1391 int tm_yday;
1392 int tm_isdst;
1393 };
1394 #endif
1395
1396 #ifndef _WTIME_DEFINED
1397 #define _WTIME_DEFINED
1398
1399 _CRTIMP wchar_t *__cdecl _wasctime(const struct tm *_Tm);
1400 _SECIMP errno_t __cdecl _wasctime_s (wchar_t *_Buf,size_t _SizeInWords,const struct tm *_Tm);
1401 wchar_t *__cdecl _wctime32(const __time32_t *_Time) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1402 _SECIMP errno_t __cdecl _wctime32_s (wchar_t *_Buf,size_t _SizeInWords,const __time32_t *_Time);
1403 size_t __cdecl wcsftime(wchar_t * __restrict__ _Buf,size_t _SizeInWords,const wchar_t * __restrict__ _Format,const struct tm * __restrict__ _Tm);
1404 _CRTIMP size_t __cdecl _wcsftime_l(wchar_t * __restrict__ _Buf,size_t _SizeInWords,const wchar_t * __restrict__ _Format,const struct tm * __restrict__ _Tm,_locale_t _Locale);
1405 _CRTIMP wchar_t *__cdecl _wstrdate(wchar_t *_Buffer) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1406 _SECIMP errno_t __cdecl _wstrdate_s (wchar_t *_Buf,size_t _SizeInWords);
1407 _CRTIMP wchar_t *__cdecl _wstrtime(wchar_t *_Buffer) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1408 _SECIMP errno_t __cdecl _wstrtime_s (wchar_t *_Buf,size_t _SizeInWords);
1409 _CRTIMP wchar_t *__cdecl _wctime64(const __time64_t *_Time) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1410 _SECIMP errno_t __cdecl _wctime64_s (wchar_t *_Buf,size_t _SizeInWords,const __time64_t *_Time);
1411
1412 #if !defined (RC_INVOKED) && !defined (_INC_WTIME_INL)
1413 #define _INC_WTIME_INL
1414 wchar_t *__cdecl _wctime(const time_t *_Time) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1415 #ifndef __CRT__NO_INLINE
1416 #ifndef _USE_32BIT_TIME_T
1417 __CRT_INLINE wchar_t *__cdecl _wctime(const time_t *_Time) { return _wctime64(_Time); }
1418 #else
1419 __CRT_INLINE wchar_t *__cdecl _wctime(const time_t *_Time) { return _wctime32(_Time); }
1420 #endif
1421 #endif /* __CRT__NO_INLINE */
1422 #endif
1423
1424 #if !defined (RC_INVOKED) && !defined (_INC_WTIME_S_INL)
1425 #define _INC_WTIME_S_INL
1426 errno_t __cdecl _wctime_s(wchar_t *, size_t, const time_t *);
1427 #ifndef __CRT__NO_INLINE
1428 #ifndef _USE_32BIT_TIME_T
1429 __CRT_INLINE errno_t __cdecl _wctime_s (wchar_t *_Buffer,size_t _SizeInWords,const time_t *_Time) { return _wctime64_s (_Buffer,_SizeInWords,_Time); }
1430 #else
1431 __CRT_INLINE errno_t __cdecl _wctime_s (wchar_t *_Buffer,size_t _SizeInWords,const time_t *_Time) { return _wctime32_s (_Buffer,_SizeInWords,_Time); }
1432 #endif /* _USE_32BIT_TIME_T */
1433 #endif /* __CRT__NO_INLINE */
1434 #endif /* !defined (RC_INVOKED) && !defined (_INC_WTIME_S_INL) */
1435
1436 #endif
1437
1438 #if defined(_UCRT) || defined(__LARGE_MBSTATE_T)
1439 typedef struct _Mbstatet {
1440 unsigned long _Wchar;
1441 unsigned short _Byte, _State;
1442 } _Mbstatet;
1443 typedef _Mbstatet mbstate_t;
1444 #else
1445 typedef int mbstate_t;
1446 #endif
1447 typedef wchar_t _Wint_t;
1448
1449 wint_t __cdecl btowc(int);
1450 size_t __cdecl mbrlen(const char * __restrict__ _Ch,size_t _SizeInBytes,mbstate_t * __restrict__ _State);
1451 size_t __cdecl mbrtowc(wchar_t * __restrict__ _DstCh,const char * __restrict__ _SrcCh,size_t _SizeInBytes,mbstate_t * __restrict__ _State);
1452 size_t __cdecl mbsrtowcs(wchar_t * __restrict__ _Dest,const char ** __restrict__ _PSrc,size_t _Count,mbstate_t * __restrict__ _State) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1453 size_t __cdecl wcrtomb(char * __restrict__ _Dest,wchar_t _Source,mbstate_t * __restrict__ _State) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1454 size_t __cdecl wcsrtombs(char * __restrict__ _Dest,const wchar_t ** __restrict__ _PSource,size_t _Count,mbstate_t * __restrict__ _State) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1455 int __cdecl wctob(wint_t _WCh);
1456
1457 #ifndef __NO_ISOCEXT /* these need static lib libmingwex.a */
1458 wchar_t *__cdecl wmemset(wchar_t *s, wchar_t c, size_t n);
1459 _CONST_RETURN wchar_t *__cdecl wmemchr(const wchar_t *s, wchar_t c, size_t n);
1460 int __cdecl wmemcmp(const wchar_t *s1, const wchar_t *s2,size_t n);
1461 wchar_t *__cdecl wmemcpy(wchar_t * __restrict__ s1,const wchar_t * __restrict__ s2,size_t n) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1462 wchar_t * __cdecl wmempcpy (wchar_t *_Dst, const wchar_t *_Src, size_t _Size);
1463 wchar_t *__cdecl wmemmove(wchar_t *s1, const wchar_t *s2, size_t n) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1464 int __cdecl fwide(FILE *stream,int mode);
1465 #if defined(_UCRT) || defined(__LARGE_MBSTATE_T)
1466 /* With UCRT, mbsinit is only available as inline. */
1467 __mingw_static_ovr int __cdecl mbsinit(const mbstate_t *_P) { return (!_P || _P->_Wchar == 0); }
1468 #else
1469 int __cdecl mbsinit(const mbstate_t *ps);
1470 #endif
1471 __MINGW_EXTENSION long long __cdecl wcstoll(const wchar_t * __restrict__ nptr,wchar_t ** __restrict__ endptr, int base);
1472 __MINGW_EXTENSION unsigned long long __cdecl wcstoull(const wchar_t * __restrict__ nptr,wchar_t ** __restrict__ endptr, int base);
1473 #endif /* __NO_ISOCEXT */
1474
1475 void *__cdecl memmove(void *_Dst,const void *_Src,size_t _MaxCount);
1476 void *__cdecl memcpy(void * __restrict__ _Dst,const void * __restrict__ _Src,size_t _MaxCount) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
1477 #ifndef __CRT__NO_INLINE
1478 __CRT_INLINE int __cdecl fwide(FILE *_F,int _M) { (void)_F; return (_M); }
1479 #if !defined(_UCRT) && !defined(__LARGE_MBSTATE_T)
1480 __CRT_INLINE int __cdecl mbsinit(const mbstate_t *_P) { return (!_P || *_P==0); }
1481 #endif
1482 __CRT_INLINE _CONST_RETURN wchar_t *__cdecl wmemchr(const wchar_t *_S,wchar_t _C,size_t _N) {
1483 if (_S) {
1484 for ( ; 0 < _N; ++_S, --_N)
1485 if (*_S == _C)
1486 return (_CONST_RETURN wchar_t *)(_S);
1487 }
1488 return (_CONST_RETURN wchar_t *) NULL;
1489 }
1490 __CRT_INLINE int __cdecl wmemcmp(const wchar_t *_S1,const wchar_t *_S2,size_t _N) {
1491 if (_N == 0 || _S1 == _S2)
1492 return 0; /* even for NULL pointers. */
1493 if ((_S1 && !(_S2)) || (_S2 && !(_S1)))
1494 return !(_S2) ? 1 : -1; /* robust. */
1495 for ( ; 0 < _N; ++_S1, ++_S2, --_N)
1496 if (*_S1 != *_S2)
1497 return (*_S1 < *_S2 ? -1 : +1);
1498 return 0;
1499 }
1500 __CRT_INLINE wchar_t *__cdecl wmemcpy(wchar_t * __restrict__ _S1,const wchar_t * __restrict__ _S2,size_t _N)
1501 {
1502 return (wchar_t *) memcpy (_S1,_S2,_N*sizeof(wchar_t));
1503 }
1504 __CRT_INLINE wchar_t *__cdecl wmemmove(wchar_t *_S1,const wchar_t *_S2,size_t _N) { return (wchar_t *)memmove(_S1,_S2,_N*sizeof(wchar_t)); }
1505 __CRT_INLINE wchar_t *__cdecl wmemset(wchar_t *_S,wchar_t _C,size_t _N) {
1506 wchar_t *_Su = _S;
1507 for (;0<_N;++_Su,--_N) {
1508 *_Su = _C;
1509 }
1510 return (_S);
1511 }
1512 #endif /* !__CRT__NO_INLINE */
1513
1514 #ifndef __MINGW_MBWC_CONVERT_DEFINED
1515 #define __MINGW_MBWC_CONVERT_DEFINED
1516
1517 /**
1518 * __mingw_str_wide_utf8
1519 * Converts a null terminated UCS-2 string to a multibyte (UTF-8) equivalent.
1520 * Caller is supposed to free allocated buffer with __mingw_str_free().
1521 * @param[in] wptr Pointer to wide string.
1522 * @param[out] mbptr Pointer to multibyte string.
1523 * @param[out] buflen Optional parameter for length of allocated buffer.
1524 * @return bytes written by WideCharToMultiByte conversion, 0 for failure.
1525 *
1526 * WideCharToMultiByte - http://msdn.microsoft.com/en-us/library/dd374130(VS.85).aspx
1527 */
1528 int __cdecl __mingw_str_wide_utf8 (const wchar_t * const wptr, char **mbptr, size_t * buflen);
1529
1530 /**
1531 * __mingw_str_utf8_wide
1532 * Converts a null terminated UTF-8 string to a UCS-2 equivalent.
1533 * Caller is supposed to free allocated buffer with __mingw_str_free().
1534 * @param[out] mbptr Pointer to multibyte string.
1535 * @param[in] wptr Pointer to wide string.
1536 * @param[out] buflen Optional parameter for length of allocated buffer.
1537 * @return bytes written by WideCharToMultiByte conversion, 0 for failure.
1538 *
1539 * MultiByteToWideChar - http://msdn.microsoft.com/en-us/library/dd319072(VS.85).aspx
1540 */
1541
1542 int __cdecl __mingw_str_utf8_wide (const char *const mbptr, wchar_t ** wptr, size_t * buflen);
1543
1544 /**
1545 * __mingw_str_free
1546 * Frees buffer create by __mingw_str_wide_utf8 and __mingw_str_utf8_wide.
1547 * @param[in] ptr memory block to free.
1548 *
1549 */
1550
1551 void __cdecl __mingw_str_free(void *ptr);
1552
1553 #endif /* __MINGW_MBWC_CONVERT_DEFINED */
1554
1555 #ifdef __cplusplus
1556 }
1557 #endif
1558
1559 #pragma pack(pop)
1560
1561 #include <sec_api/wchar_s.h>
1562
1563 #endif /* _INC_WCHAR */
1564