Module: wine Branch: master Commit: b4c82b263ff97a6ff07bce44d615a0e00a32dcb0 URL: https://source.winehq.org/git/wine.git/?a=commit;h=b4c82b263ff97a6ff07bce44d...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Feb 26 15:16:41 2020 +0100
include: Make corecrt_wio.h compatible with ucrt.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
include/msvcrt/corecrt_wio.h | 92 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 74 insertions(+), 18 deletions(-)
diff --git a/include/msvcrt/corecrt_wio.h b/include/msvcrt/corecrt_wio.h index 6d4b73c915..8a4e0636a0 100644 --- a/include/msvcrt/corecrt_wio.h +++ b/include/msvcrt/corecrt_wio.h @@ -12,24 +12,76 @@
typedef __msvcrt_ulong _fsize_t;
-struct _wfinddata_t { - unsigned attrib; - time_t time_create; - time_t time_access; - time_t time_write; - _fsize_t size; - wchar_t name[260]; +#if defined(_USE_32BIT_TIME_T) +# define _wfinddata_t _wfinddata32_t +# define _wfinddatai64_t _wfinddata32i64_t +#else +# define _wfinddata_t _wfinddata64i32_t +# define _wfinddatai64_t _wfinddata64_t +#endif + +struct _wfinddata32_t { + unsigned attrib; + __time32_t time_create; + __time32_t time_access; + __time32_t time_write; + _fsize_t size; + wchar_t name[260]; +}; + +struct _wfinddata32i64_t { + unsigned attrib; + __time32_t time_create; + __time32_t time_access; + __time32_t time_write; + __int64 DECLSPEC_ALIGN(8) size; + wchar_t name[260]; };
-struct _wfinddatai64_t { - unsigned attrib; - time_t time_create; - time_t time_access; - time_t time_write; - __int64 DECLSPEC_ALIGN(8) size; - wchar_t name[260]; +struct _wfinddata64i32_t { + unsigned attrib; + __time64_t time_create; + __time64_t time_access; + __time64_t time_write; + _fsize_t size; + wchar_t name[260]; };
+struct _wfinddata64_t { + unsigned attrib; + __time64_t time_create; + __time64_t time_access; + __time64_t time_write; + __int64 DECLSPEC_ALIGN(8) size; + wchar_t name[260]; +}; + +#ifdef _UCRT +# ifdef _USE_32BIT_TIME_T +# define _wfindfirst _wfindfirst32 +# define _wfindfirsti64 _wfindfirst32i64 +# define _wfindnext _wfindnext32 +# define _wfindnexti64 _wfindnext32i64 +# else +# define _wfindfirst _wfindfirst64i32 +# define _wfindfirsti64 _wfindfirst64 +# define _wfindnext _wfindnext64i32 +# define _wfindnexti64 _wfindnext64 +# endif +#else /* _UCRT */ +# ifdef _USE_32BIT_TIME_T +# define _wfindfirst32 _wfindfirst +# define _wfindfirst32i64 _wfindfirsti64 +# define _wfindnext32 _wfindnext +# define _wfindnext32i64 _wfindnexti64 +# else +# define _wfindfirst64i32 _wfindfirst +# define _wfindfirst64 _wfindfirsti64 +# define _wfindnext64i32 _wfindnext +# define _wfindnext64 _wfindnexti64 +# endif +#endif + #ifdef __cplusplus extern "C" { #endif @@ -37,10 +89,14 @@ extern "C" { int __cdecl _waccess(const wchar_t*,int); int __cdecl _wchmod(const wchar_t*,int); int __cdecl _wcreat(const wchar_t*,int); -intptr_t __cdecl _wfindfirst(const wchar_t*,struct _wfinddata_t*); -intptr_t __cdecl _wfindfirsti64(const wchar_t*, struct _wfinddatai64_t*); -int __cdecl _wfindnext(intptr_t,struct _wfinddata_t*); -int __cdecl _wfindnexti64(intptr_t, struct _wfinddatai64_t*); +intptr_t __cdecl _wfindfirst32(const wchar_t*,struct _wfinddata32_t*); +intptr_t __cdecl _wfindfirst32i64(const wchar_t*, struct _wfinddata32i64_t*); +intptr_t __cdecl _wfindfirst64(const wchar_t*,struct _wfinddata64_t*); +intptr_t __cdecl _wfindfirst64i32(const wchar_t*, struct _wfinddata64i32_t*); +int __cdecl _wfindnext32(intptr_t,struct _wfinddata32_t*); +int __cdecl _wfindnext32i64(intptr_t,struct _wfinddata32i64_t*); +int __cdecl _wfindnext64(intptr_t,struct _wfinddata64_t*); +int __cdecl _wfindnext64i32(intptr_t,struct _wfinddata64i32_t*); wchar_t* __cdecl _wmktemp(wchar_t*); int WINAPIV _wopen(const wchar_t*,int,...); int __cdecl _wrename(const wchar_t*,const wchar_t*);