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 7 #ifndef _INC_SWPRINTF_INL 8 #define _INC_SWPRINTF_INL 9 10 #include <vadefs.h> 11 12 #undef __mingw_ovr 13 #if defined (__GNUC__) 14 #define __mingw_ovr static __attribute__ ((__unused__)) __inline__ __cdecl 15 #elif defined(__cplusplus) 16 #define __mingw_ovr inline __cdecl 17 #else 18 #define __mingw_ovr static __cdecl 19 #endif 20 21 __mingw_ovr 22 /* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3) 23 int vswprintf (wchar_t *__stream, size_t __count, const wchar_t *__format, __builtin_va_list __local_argv) 24 { 25 return vsnwprintf( __stream, __count, __format, __local_argv ); 26 } 27 28 __mingw_ovr 29 /* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3) 30 int swprintf (wchar_t *__stream, size_t __count, const wchar_t *__format, ...) 31 { 32 register int __retval; 33 __builtin_va_list __local_argv; 34 35 __builtin_va_start( __local_argv, __format ); 36 __retval = vswprintf( __stream, __count, __format, __local_argv ); 37 __builtin_va_end( __local_argv ); 38 return __retval; 39 } 40 41 #ifdef __cplusplus 42 43 extern "C++" { 44 45 __mingw_ovr 46 /* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2) 47 int vswprintf (wchar_t *__stream, const wchar_t *__format, __builtin_va_list __local_argv) 48 { 49 #if __USE_MINGW_ANSI_STDIO 50 return __mingw_vswprintf( __stream, __format, __local_argv ); 51 #else 52 return _vswprintf( __stream, __format, __local_argv ); 53 #endif 54 } 55 56 __mingw_ovr 57 /* __attribute__((__format__ (gnu_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2) 58 int swprintf (wchar_t *__stream, const wchar_t *__format, ...) 59 { 60 register int __retval; 61 __builtin_va_list __local_argv; 62 63 __builtin_va_start( __local_argv, __format ); 64 __retval = vswprintf( __stream, __format, __local_argv ); 65 __builtin_va_end( __local_argv ); 66 return __retval; 67 } 68 69 } 70 71 #elif defined(_CRT_NON_CONFORMING_SWPRINTFS) 72 73 #if __USE_MINGW_ANSI_STDIO 74 #define swprintf __mingw_swprintf 75 #define vswprintf __mingw_vswprintf 76 #else 77 #define swprintf _swprintf 78 #define vswprintf _vswprintf 79 #endif 80 81 #endif /* __cplusplus */ 82 83 #endif /* _INC_SWPRINTF_INL */