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