source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/wchar.h@ 1175

Last change on this file since 1175 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 66.8 KB
RevLine 
[1166]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
29extern "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_
63extern FILE _iob[]; /* A pointer to an array of FILE */
64#define __iob_func() (_iob)
65#else
66extern 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)
543int 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)
554int 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)
565int 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)
577int 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)
584int 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)
591int 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)
601int 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)
612int 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)
623int 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)
630int 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)
638int 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)
649int 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 */
1528int __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
1542int __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
1551void __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
Note: See TracBrowser for help on using the repository browser.