2011/11/4 Rafaël Carré <[email protected]>:
> * _mingw_print_push.h: Remove wscanf-defines.
> * _mingw_print_pop.h: Likewise.
> * stdio.h: Replace macro-wscanf override via alias.
> ---
>  trunk/mingw-w64-headers/crt/_mingw_print_pop.h  |   18 -----
>  trunk/mingw-w64-headers/crt/_mingw_print_push.h |    7 --
>  trunk/mingw-w64-headers/crt/stdio.h             |   84 
> +++++++++++++++++++----
>  trunk/mingw-w64-headers/crt/wchar.h             |   84 +++++++++++++++++++---
>  4 files changed, 143 insertions(+), 50 deletions(-)
>
> diff --git a/trunk/mingw-w64-headers/crt/_mingw_print_pop.h 
> b/trunk/mingw-w64-headers/crt/_mingw_print_pop.h
> index 56aa8b0..c40042e 100644
> --- a/trunk/mingw-w64-headers/crt/_mingw_print_pop.h
> +++ b/trunk/mingw-w64-headers/crt/_mingw_print_pop.h
> @@ -7,24 +7,6 @@
>  /* Define __mingw_<printf> macros.  */
>  #if defined(__USE_MINGW_ANSI_STDIO) && (defined(_INC_STDIO) || 
> defined(_WSTDIO_DEFINED)) && ((__USE_MINGW_ANSI_STDIO + 0) != 0)
>
> -#ifdef _WSTDIO_DEFINED
> -
> -#undef swscanf
> -#undef vswscanf
> -#undef wscanf
> -#undef vwscanf
> -#undef fwscanf
> -#undef vfwscanf
> -
> -#define swscanf __mingw_swscanf
> -#define vswscanf __mingw_vswscanf
> -#define wscanf __mingw_wscanf
> -#define vwscanf __mingw_vwscanf
> -#define fwscanf __mingw_fwscanf
> -#define vfwscanf __mingw_vfwscanf
> -
> -#endif
> -
>  /* Redefine to GNU specific PRI... and SCN... macros.  */
>  #if defined(_INTTYPES_H_) && defined(PRId64)
>  #undef PRId64
> diff --git a/trunk/mingw-w64-headers/crt/_mingw_print_push.h 
> b/trunk/mingw-w64-headers/crt/_mingw_print_push.h
> index 29db3a8..25a229d 100644
> --- a/trunk/mingw-w64-headers/crt/_mingw_print_push.h
> +++ b/trunk/mingw-w64-headers/crt/_mingw_print_push.h
> @@ -7,13 +7,6 @@
>  /* Undefine __mingw_<printf> macros.  */
>  #if defined(__USE_MINGW_ANSI_STDIO) && ((__USE_MINGW_ANSI_STDIO + 0) != 0)
>
> -#undef swscanf
> -#undef vswscanf
> -#undef wscanf
> -#undef vwscanf
> -#undef fwscanf
> -#undef vfwscanf
> -
>  /* Redefine to MS specific PRI... and SCN... macros.  */
>  #if defined(_INTTYPES_H_) && defined(PRId64)
>  #undef PRId64
> diff --git a/trunk/mingw-w64-headers/crt/stdio.h 
> b/trunk/mingw-w64-headers/crt/stdio.h
> index 5873b48..3ac21b5 100644
> --- a/trunk/mingw-w64-headers/crt/stdio.h
> +++ b/trunk/mingw-w64-headers/crt/stdio.h
> @@ -522,6 +522,19 @@ int vsnprintf (char *__stream, size_t __n, const char 
> *__format, __builtin_va_li
>  #define _WSTDIO_DEFINED
>
>  __attribute__((__format__ (gnu_printf, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
> +  int __cdecl __mingw_swscanf(const wchar_t * __restrict__ _Src,const 
> wchar_t * __restrict__ _Format,...);
> +__attribute__((__format__ (gnu_printf, 2, 0))) __MINGW_ATTRIB_NONNULL(2)
> +  int __cdecl __mingw_vswscanf (const wchar_t * __restrict__ _Str,const 
> wchar_t * __restrict__ Format,va_list argp);
> +__attribute__((__format__ (gnu_printf, 1, 2))) __MINGW_ATTRIB_NONNULL(1)
> +  int __cdecl __mingw_wscanf(const wchar_t * __restrict__ _Format,...);
> +__attribute__((__format__ (gnu_printf, 1, 0))) __MINGW_ATTRIB_NONNULL(1)
> +  int __cdecl __mingw_vwscanf(const wchar_t * __restrict__ Format, va_list 
> argp);
> +__attribute__((__format__ (gnu_printf, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
> +  int __cdecl __mingw_fwscanf(FILE * __restrict__ _File,const wchar_t * 
> __restrict__ _Format,...);
> +__attribute__((__format__ (gnu_printf, 2, 0))) __MINGW_ATTRIB_NONNULL(2)
> +  int __cdecl __mingw_vfwscanf (FILE * __restrict__ fp, const wchar_t * 
> __restrict__ Format,va_list argp);
> +
> +__attribute__((__format__ (gnu_printf, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
>   int __cdecl __mingw_fwprintf(FILE * __restrict__ _File,const wchar_t * 
> __restrict__ _Format,...);
>  __attribute__((__format__ (gnu_printf, 1, 2))) __MINGW_ATTRIB_NONNULL(1)
>   int __cdecl __mingw_wprintf(const wchar_t * __restrict__ _Format,...);
> @@ -544,6 +557,64 @@ __attribute__((__format__ (gnu_printf, 3, 0))) 
> __MINGW_ATTRIB_NONNULL(3)
>  */
>  __forceinline
>  __attribute__((__format__ (gnu_printf, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
> +int swscanf(const wchar_t *__source, const wchar_t *__format, ...)
> +{
> +  register int __retval;
> +  __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format 
> );
> +  __retval = __mingw_vswscanf( __source, __format, __local_argv );
> +  __builtin_va_end( __local_argv );
> +  return __retval;
> +}
> +
> +__forceinline
> +__attribute__((__format__ (gnu_printf, 1, 2))) __MINGW_ATTRIB_NONNULL(1)
> +int wscanf(const wchar_t *__format, ...)
> +{
> +  register int __retval;
> +  __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format 
> );
> +  __retval = __mingw_vwscanf( __format, __local_argv );
> +  __builtin_va_end( __local_argv );
> +  return __retval;
> +}
> +
> +__forceinline
> +__attribute__((__format__ (gnu_printf, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
> +int fwscanf(FILE *__stream, const wchar_t *__format, ...)
> +{
> +  register int __retval;
> +  __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format 
> );
> +  __retval = __mingw_vfwscanf( __stream, __format, __local_argv );
> +  __builtin_va_end( __local_argv );
> +  return __retval;
> +}
> +
> +#ifndef __NO_ISOCEXT  /* externs in libmingwex.a */
> +__forceinline
> +__attribute__((__format__ (gnu_printf, 2, 0))) __MINGW_ATTRIB_NONNULL(2)
> +int vswscanf (const wchar_t *__source, const wchar_t *__format, 
> __builtin_va_list __local_argv)
> +{
> +  return __mingw_vswscanf( __source, __format, __local_argv );
> +}
> +
> +__forceinline
> +__attribute__((__format__ (gnu_printf, 1, 0))) __MINGW_ATTRIB_NONNULL(1)
> +int vwscanf(const wchar_t *__format,  __builtin_va_list __local_argv)
> +{
> +  return __mingw_vwscanf( __format, __local_argv );
> +}
> +
> +__forceinline
> +__attribute__((__format__ (gnu_printf, 2, 0))) __MINGW_ATTRIB_NONNULL(2)
> +int vfwscanf (FILE *__stream,  const wchar_t *__format, __builtin_va_list 
> __local_argv)
> +{
> +  return __mingw_vfwscanf( __stream, __format, __local_argv );
> +}
> +#endif /* __NO_ISOCEXT */
> +
> +
> +
> +__forceinline
> +__attribute__((__format__ (gnu_printf, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
>  int fwprintf (FILE *__stream, const wchar_t *__format, ...)
>  {
>   register int __retval;
> @@ -675,16 +746,6 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const 
> wchar_t *__format, __builti
>  #pragma pop_macro ("snwprintf")
>  #endif
>
> -  int __cdecl __mingw_swscanf(const wchar_t * __restrict__ _Src,const 
> wchar_t * __restrict__ _Format,...);
> -  int __cdecl __mingw_vswscanf (const wchar_t * __restrict__ _Str,const 
> wchar_t * __restrict__ Format,va_list argp);
> -  int __cdecl __mingw_wscanf(const wchar_t * __restrict__ _Format,...);
> -  int __cdecl __mingw_vwscanf(const wchar_t * __restrict__ Format, va_list 
> argp);
> -  int __cdecl __mingw_fwscanf(FILE * __restrict__ _File,const wchar_t * 
> __restrict__ _Format,...);
> -  int __cdecl __mingw_vfwscanf (FILE * __restrict__ fp, const wchar_t * 
> __restrict__ Format,va_list argp);
> -
> -  int __cdecl vwscanf (const wchar_t * __restrict__ , va_list);
> -  int __cdecl vfwscanf (FILE * __restrict__ ,const wchar_t * __restrict__ 
> ,va_list);
> -  int __cdecl vswscanf (const wchar_t * __restrict__ ,const wchar_t * 
> __restrict__ ,va_list);
>  #endif /* ! __NO_ISOCEXT */
>   _CRTIMP int __cdecl _fwprintf_p(FILE * __restrict__ _File,const wchar_t * 
> __restrict__ _Format,...);
>   _CRTIMP int __cdecl _wprintf_p(const wchar_t * __restrict__ _Format,...);
> @@ -729,13 +790,10 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const 
> wchar_t *__format, __builti
>   _CRTIMP wchar_t *__cdecl _wtempnam(const wchar_t *_Directory,const wchar_t 
> *_FilePrefix);
>   _CRTIMP int __cdecl _vscwprintf(const wchar_t * __restrict__ 
> _Format,va_list _ArgList);
>   _CRTIMP int __cdecl _vscwprintf_l(const wchar_t * __restrict__ 
> _Format,_locale_t _Locale,va_list _ArgList);
> -  int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ 
> _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
>   _CRTIMP int __cdecl _fwscanf_l(FILE * __restrict__ _File,const wchar_t * 
> __restrict__ _Format,_locale_t _Locale,...) 
> __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
> -  int __cdecl swscanf(const wchar_t * __restrict__ _Src,const wchar_t * 
> __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
>   _CRTIMP int __cdecl _swscanf_l(const wchar_t * __restrict__ _Src,const 
> wchar_t * __restrict__ _Format,_locale_t _Locale,...) 
> __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
>   _CRTIMP int __cdecl _snwscanf(const wchar_t * __restrict__ _Src,size_t 
> _MaxCount,const wchar_t * __restrict__ _Format,...);
>   _CRTIMP int __cdecl _snwscanf_l(const wchar_t * __restrict__ _Src,size_t 
> _MaxCount,const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
> -  int __cdecl wscanf(const wchar_t * __restrict__ _Format,...) 
> __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
>   _CRTIMP int __cdecl _wscanf_l(const wchar_t * __restrict__ 
> _Format,_locale_t _Locale,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
>   _CRTIMP FILE *__cdecl _wfdopen(int _FileHandle ,const wchar_t *_Mode);
>   _CRTIMP FILE *__cdecl _wfopen(const wchar_t * __restrict__ _Filename,const 
> wchar_t *__restrict__  _Mode) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
> diff --git a/trunk/mingw-w64-headers/crt/wchar.h 
> b/trunk/mingw-w64-headers/crt/wchar.h
> index 8034b6e..9d43399 100644
> --- a/trunk/mingw-w64-headers/crt/wchar.h
> +++ b/trunk/mingw-w64-headers/crt/wchar.h
> @@ -419,6 +419,20 @@ extern FILE (* __MINGW_IMP_SYMBOL(_iob))[];        /* A 
> pointer to an array of FILE */
>  #define _WSTDIO_DEFINED
>
>  __attribute__((__format__ (gnu_printf, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
> +  int __cdecl __mingw_swscanf(const wchar_t * __restrict__ _Src,const 
> wchar_t * __restrict__ _Format,...);
> +__attribute__((__format__ (gnu_printf, 2, 0))) __MINGW_ATTRIB_NONNULL(2)
> +  int __cdecl __mingw_vswscanf (const wchar_t * __restrict__ _Str,const 
> wchar_t * __restrict__ Format,va_list argp);
> +__attribute__((__format__ (gnu_printf, 1, 2))) __MINGW_ATTRIB_NONNULL(1)
> +  int __cdecl __mingw_wscanf(const wchar_t * __restrict__ _Format,...);
> +__attribute__((__format__ (gnu_printf, 1, 0))) __MINGW_ATTRIB_NONNULL(1)
> +  int __cdecl __mingw_vwscanf(const wchar_t * __restrict__ Format, va_list 
> argp);
> +__attribute__((__format__ (gnu_printf, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
> +  int __cdecl __mingw_fwscanf(FILE * __restrict__ _File,const wchar_t * 
> __restrict__ _Format,...);
> +__attribute__((__format__ (gnu_printf, 2, 0))) __MINGW_ATTRIB_NONNULL(2)
> +  int __cdecl __mingw_vfwscanf (FILE * __restrict__ fp, const wchar_t * 
> __restrict__ Format,va_list argp);
> +
> +
> +__attribute__((__format__ (gnu_printf, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
>   int __cdecl __mingw_fwprintf(FILE * __restrict__ _File,const wchar_t * 
> __restrict__ _Format,...);
>  __attribute__((__format__ (gnu_printf, 1, 2))) __MINGW_ATTRIB_NONNULL(1)
>   int __cdecl __mingw_wprintf(const wchar_t * __restrict__ _Format,...);
> @@ -441,6 +455,64 @@ __attribute__((__format__ (gnu_printf, 3, 0))) 
> __MINGW_ATTRIB_NONNULL(3)
>  */
>  __forceinline
>  __attribute__((__format__ (gnu_printf, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
> +int swscanf(const wchar_t *__source, const wchar_t *__format, ...)
> +{
> +  register int __retval;
> +  __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format 
> );
> +  __retval = __mingw_vswscanf( __source, __format, __local_argv );
> +  __builtin_va_end( __local_argv );
> +  return __retval;
> +}
> +
> +__forceinline
> +__attribute__((__format__ (gnu_printf, 1, 2))) __MINGW_ATTRIB_NONNULL(1)
> +int wscanf(const wchar_t *__format, ...)
> +{
> +  register int __retval;
> +  __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format 
> );
> +  __retval = __mingw_vwscanf( __format, __local_argv );
> +  __builtin_va_end( __local_argv );
> +  return __retval;
> +}
> +
> +__forceinline
> +__attribute__((__format__ (gnu_printf, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
> +int fwscanf(FILE *__stream, const wchar_t *__format, ...)
> +{
> +  register int __retval;
> +  __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format 
> );
> +  __retval = __mingw_vfwscanf( __stream, __format, __local_argv );
> +  __builtin_va_end( __local_argv );
> +  return __retval;
> +}
> +
> +#ifndef __NO_ISOCEXT  /* externs in libmingwex.a */
> +__forceinline
> +__attribute__((__format__ (gnu_printf, 2, 0))) __MINGW_ATTRIB_NONNULL(2)
> +int vswscanf (const wchar_t *__source, const wchar_t *__format, 
> __builtin_va_list __local_argv)
> +{
> +  return __mingw_vswscanf( __source, __format, __local_argv );
> +}
> +
> +__forceinline
> +__attribute__((__format__ (gnu_printf, 1, 0))) __MINGW_ATTRIB_NONNULL(1)
> +int vwscanf(const wchar_t *__format,  __builtin_va_list __local_argv)
> +{
> +  return __mingw_vwscanf( __format, __local_argv );
> +}
> +
> +__forceinline
> +__attribute__((__format__ (gnu_printf, 2, 0))) __MINGW_ATTRIB_NONNULL(2)
> +int vfwscanf (FILE *__stream,  const wchar_t *__format, __builtin_va_list 
> __local_argv)
> +{
> +  return __mingw_vfwscanf( __stream, __format, __local_argv );
> +}
> +#endif /* __NO_ISOCEXT */
> +
> +
> +
> +__forceinline
> +__attribute__((__format__ (gnu_printf, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
>  int fwprintf (FILE *__stream, const wchar_t *__format, ...)
>  {
>   register int __retval;
> @@ -572,17 +644,8 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const 
> wchar_t *__format, __builti
>  #pragma pop_macro ("snwprintf")
>  #endif
>
> -  int __cdecl vwscanf (const wchar_t * __restrict__ , va_list);
> -  int __cdecl vfwscanf (FILE * __restrict__ ,const wchar_t * __restrict__ 
> ,va_list);
> -  int __cdecl vswscanf (const wchar_t * __restrict__ ,const wchar_t * 
> __restrict__ ,va_list);
>  #endif
>
> -  int __cdecl __mingw_swscanf(const wchar_t * __restrict__ _Src,const 
> wchar_t * __restrict__ _Format,...);
> -  int __cdecl __mingw_vswscanf (const wchar_t * __restrict__ _Str,const 
> wchar_t * __restrict__ Format,va_list argp);
> -  int __cdecl __mingw_wscanf(const wchar_t * __restrict__ _Format,...);
> -  int __cdecl __mingw_vwscanf(const wchar_t * __restrict__ Format, va_list 
> argp);
> -  int __cdecl __mingw_fwscanf(FILE * __restrict__ _File,const wchar_t * 
> __restrict__ _Format,...);
> -  int __cdecl __mingw_vfwscanf (FILE * __restrict__ fp, const wchar_t * 
> __restrict__ Format,va_list argp);
>   _CRTIMP int __cdecl _fwprintf_p(FILE * __restrict__ _File,const wchar_t * 
> __restrict__ _Format,...);
>   _CRTIMP int __cdecl _wprintf_p(const wchar_t * __restrict__ _Format,...);
>   _CRTIMP int __cdecl _vfwprintf_p(FILE * __restrict__ _File,const wchar_t * 
> __restrict__ _Format,va_list _ArgList);
> @@ -626,13 +689,10 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const 
> wchar_t *__format, __builti
>   _CRTIMP wchar_t *__cdecl _wtempnam(const wchar_t *_Directory,const wchar_t 
> *_FilePrefix);
>   _CRTIMP int __cdecl _vscwprintf(const wchar_t * __restrict__ 
> _Format,va_list _ArgList);
>   _CRTIMP int __cdecl _vscwprintf_l(const wchar_t * __restrict__ 
> _Format,_locale_t _Locale,va_list _ArgList);
> -  int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ 
> _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
>   _CRTIMP int __cdecl _fwscanf_l(FILE * __restrict__ _File,const wchar_t * 
> __restrict__ _Format,_locale_t _Locale,...) 
> __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
> -  int __cdecl swscanf(const wchar_t * __restrict__ _Src,const wchar_t * 
> __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
>   _CRTIMP int __cdecl _swscanf_l(const wchar_t * __restrict__ _Src,const 
> wchar_t * __restrict__ _Format,_locale_t _Locale,...) 
> __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
>   _CRTIMP int __cdecl _snwscanf(const wchar_t * __restrict__ _Src,size_t 
> _MaxCount,const wchar_t * __restrict__ _Format,...);
>   _CRTIMP int __cdecl _snwscanf_l(const wchar_t * __restrict__ _Src,size_t 
> _MaxCount,const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
> -  int __cdecl wscanf(const wchar_t * __restrict__ _Format,...) 
> __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
>   _CRTIMP int __cdecl _wscanf_l(const wchar_t * __restrict__ 
> _Format,_locale_t _Locale,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
>   _CRTIMP FILE *__cdecl _wfdopen(int _FileHandle ,const wchar_t *_Mode);
>   _CRTIMP FILE *__cdecl _wfopen(const wchar_t * __restrict__ _Filename,const 
> wchar_t * __restrict__ _Mode) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
> --
> 1.7.5.4

Patch is ok. Could you please attach diff to reply and provide a
changelog for it.

Thanks,
Kai

------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to