From d7b6e7cdad977ff14460a439dd905ed1e0aa7efc Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Tue, 23 Dec 2008 02:15:24 +0000 Subject: [PATCH] CRT header compatibility update. asser.h: - prototypes for _assert and _wassert, add wassert macro, TODO: reenable assert macro conio.h: - Add deprecation macros and some cleanup crtdbg.h: - Add _ASSERT_WRN, ASSERTE_WRN, ASSERT_EXPR_WRN ctype.h: - cleaup and fix _pctype and __pctype_func - add _CRTIMP where needed - add deprecation macros dos.h: - enable _enable and _disable io.h: - enable use of _INTEGRAL_MAX_BITS - remove some defines, other cleanup math.h: - remove system_header - rename include guard to _INC_MATH - fix definition of _HUGE - add _CRTIMP where needed stdio.h: - fix _iob[] and stdstram defines - add _CRTIMP where needed - enable non-conforming swprintf defines - remove some mingw specific stuff string.h: - add _CRTIMP and deprecation macros sys/stat.h: - some cleanup sys/timeb.h: - add struct timeb - remove #defines - add deprecation macros sys/utime.h: - remove unneeded inline functions, cleanup time.h: - remove #defines - add _CRTIMP and deprecation macros wchar.h: - fix _iob[], stdstream, _pctype and __pctype_func - add _wfinddate_t, _wfinddatai64_t and _stat - add _CRTIMP where needed - remove defines svn path=/trunk/; revision=38292 --- reactos/include/crt/assert.h | 8 +- reactos/include/crt/conio.h | 59 ++++---- reactos/include/crt/crtdbg.h | 12 ++ reactos/include/crt/ctype.h | 139 +++++++----------- reactos/include/crt/dos.h | 4 +- reactos/include/crt/io.h | 113 +++++++------- reactos/include/crt/math.h | 32 ++-- reactos/include/crt/stdio.h | 216 ++++++++++++--------------- reactos/include/crt/string.h | 125 ++++++++-------- reactos/include/crt/sys/stat.h | 113 +++++++------- reactos/include/crt/sys/timeb.h | 49 +++---- reactos/include/crt/sys/utime.h | 45 ++---- reactos/include/crt/time.h | 91 ++++++------ reactos/include/crt/wchar.h | 252 +++++++++++++------------------- 14 files changed, 567 insertions(+), 691 deletions(-) diff --git a/reactos/include/crt/assert.h b/reactos/include/crt/assert.h index 3d21b906b0b..252fd54a269 100644 --- a/reactos/include/crt/assert.h +++ b/reactos/include/crt/assert.h @@ -20,16 +20,22 @@ extern "C" { #endif -//extern void __cdecl _wassert(const wchar_t *_Message,const wchar_t *_File,unsigned _Line); + _CRTIMP void __cdecl _assert(const char *_Message,const char *_File,unsigned _Line); + _CRTIMP void __cdecl _wassert(const wchar_t *_Message,const wchar_t *_File,unsigned _Line); #ifdef __cplusplus } #endif #ifndef assert +//#define assert(_Expression) (void)((!!(_Expression)) || (_assert(#_Expression,__FILE__,__LINE__),0)) #define assert(_Expression) (void)((!!(_Expression)))// || (_wassert(_CRT_WIDE(#_Expression),_CRT_WIDE(__FILE__),__LINE__),0)) #endif +#ifndef wassert +#define wassert(_Expression) (void)((!!(_Expression)) || (_wassert(_CRT_WIDE(#_Expression),_CRT_WIDE(__FILE__),__LINE__),0)) +#endif + #endif #endif diff --git a/reactos/include/crt/conio.h b/reactos/include/crt/conio.h index 8942ce39284..0c77d3c3dba 100644 --- a/reactos/include/crt/conio.h +++ b/reactos/include/crt/conio.h @@ -12,11 +12,11 @@ extern "C" { #endif - _CRTIMP char *_cgets(char *_Buffer); + _CRTIMP char * __cdecl _cgets(char *_Buffer); _CRTIMP int __cdecl _cprintf(const char *_Format,...); _CRTIMP int __cdecl _cputs(const char *_Str); - _CRTIMP int __cdecl _cscanf(const char *_Format,...); - _CRTIMP int __cdecl _cscanf_l(const char *_Format,_locale_t _Locale,...); + _CRT_INSECURE_DEPRECATE(_cscanf_s) _CRTIMP int __cdecl _cscanf(const char *_Format,...); + _CRT_INSECURE_DEPRECATE(_cscanf_s_l) _CRTIMP int __cdecl _cscanf_l(const char *_Format,_locale_t _Locale,...); _CRTIMP int __cdecl _getch(void); _CRTIMP int __cdecl _getche(void); _CRTIMP int __cdecl _vcprintf(const char *_Format,va_list _ArgList); @@ -27,6 +27,12 @@ extern "C" { _CRTIMP int __cdecl _cprintf_p_l(const char *_Format,_locale_t _Locale,...); _CRTIMP int __cdecl _vcprintf_p_l(const char *_Format,_locale_t _Locale,va_list _ArgList); _CRTIMP int __cdecl _kbhit(void); + _CRTIMP int __cdecl _putch(int _Ch); + _CRTIMP int __cdecl _ungetch(int _Ch); + _CRTIMP int __cdecl _getch_nolock(void); + _CRTIMP int __cdecl _getche_nolock(void); + _CRTIMP int __cdecl _putch_nolock(int _Ch); + _CRTIMP int __cdecl _ungetch_nolock(int _Ch); #if defined(_X86_) && !defined(__x86_64) int __cdecl _inp(unsigned short); @@ -37,12 +43,6 @@ extern "C" { unsigned long __cdecl _outpd(unsigned short,unsigned long); #endif - _CRTIMP int __cdecl _putch(int _Ch); - _CRTIMP int __cdecl _ungetch(int _Ch); - _CRTIMP int __cdecl _getch_nolock(void); - _CRTIMP int __cdecl _getche_nolock(void); - _CRTIMP int __cdecl _putch_nolock(int _Ch); - _CRTIMP int __cdecl _ungetch_nolock(int _Ch); #ifndef _WCONIO_DEFINED #define _WCONIO_DEFINED @@ -58,8 +58,8 @@ extern "C" { _CRTIMP wint_t __cdecl _ungetwch(wint_t _WCh); _CRTIMP int __cdecl _cputws(const wchar_t *_String); _CRTIMP int __cdecl _cwprintf(const wchar_t *_Format,...); - _CRTIMP int __cdecl _cwscanf(const wchar_t *_Format,...); - _CRTIMP int __cdecl _cwscanf_l(const wchar_t *_Format,_locale_t _Locale,...); + _CRT_INSECURE_DEPRECATE(_cwscanf_s) _CRTIMP int __cdecl _cwscanf(const wchar_t *_Format,...); + _CRT_INSECURE_DEPRECATE(_cwscanf_s_l) _CRTIMP int __cdecl _cwscanf_l(const wchar_t *_Format,_locale_t _Locale,...); _CRTIMP int __cdecl _vcwprintf(const wchar_t *_Format,va_list _ArgList); _CRTIMP int __cdecl _cwprintf_p(const wchar_t *_Format,...); _CRTIMP int __cdecl _vcwprintf_p(const wchar_t *_Format,va_list _ArgList); @@ -71,31 +71,38 @@ extern "C" { _CRTIMP wint_t __cdecl _getwch_nolock(void); _CRTIMP wint_t __cdecl _getwche_nolock(void); _CRTIMP wint_t __cdecl _ungetwch_nolock(wint_t _WCh); +#endif /* _WCONIO_DEFINED */ + +#ifndef _MT +#define _putwch() _putwch_nolock() +#define _getwch() _getwch_nolock() +#define _getwche() _getwche_nolock() +#define _ungetwch() _ungetwch_nolock() #endif #ifndef NO_OLDNAMES - char *__cdecl cgets(char *_Buffer); - int __cdecl cprintf(const char *_Format,...); - int __cdecl cputs(const char *_Str); - int __cdecl cscanf(const char *_Format,...); - int __cdecl getch(void); - int __cdecl getche(void); - int __cdecl kbhit(void); - int __cdecl putch(int _Ch); - int __cdecl ungetch(int _Ch); + _CRT_NONSTDC_DEPRECATE(_cgets) _CRT_INSECURE_DEPRECATE(_cgets_s) _CRTIMP char *__cdecl cgets(char *_Buffer); + _CRT_NONSTDC_DEPRECATE(_cprintf) _CRTIMP int __cdecl cprintf(const char *_Format,...); + _CRT_NONSTDC_DEPRECATE(_cputs) _CRTIMP int __cdecl cputs(const char *_Str); + _CRT_NONSTDC_DEPRECATE(_cscanf) _CRTIMP int __cdecl cscanf(const char *_Format,...); + _CRT_NONSTDC_DEPRECATE(_getch) _CRTIMP int __cdecl getch(void); + _CRT_NONSTDC_DEPRECATE(_getche) _CRTIMP int __cdecl getche(void); + _CRT_NONSTDC_DEPRECATE(_kbhit) _CRTIMP int __cdecl kbhit(void); + _CRT_NONSTDC_DEPRECATE(_putch) _CRTIMP int __cdecl putch(int _Ch); + _CRT_NONSTDC_DEPRECATE(_ungetch) _CRTIMP int __cdecl ungetch(int _Ch); #if (defined(_X86_) && !defined(__x86_64)) - int __cdecl inp(unsigned short); - unsigned short __cdecl inpw(unsigned short); - int __cdecl outp(unsigned short,int); - unsigned short __cdecl outpw(unsigned short,unsigned short); + _CRT_NONSTDC_DEPRECATE(_inp) _CRTIMP int __cdecl inp(unsigned short); + _CRT_NONSTDC_DEPRECATE(_inpw) _CRTIMP unsigned short __cdecl inpw(unsigned short); + _CRT_NONSTDC_DEPRECATE(_outp) _CRTIMP int __cdecl outp(unsigned short,int); + _CRT_NONSTDC_DEPRECATE(_outpw) _CRTIMP unsigned short __cdecl outpw(unsigned short,unsigned short); #endif +#endif /* !NO_OLDNAMES */ -#endif #ifdef __cplusplus } #endif #include -#endif +#endif /* _INC_CONIO */ diff --git a/reactos/include/crt/crtdbg.h b/reactos/include/crt/crtdbg.h index 4dc3b9d2e4e..16cf030f5d4 100644 --- a/reactos/include/crt/crtdbg.h +++ b/reactos/include/crt/crtdbg.h @@ -97,14 +97,26 @@ extern "C" { #define _ASSERT(expr) ((void)0) #endif +#ifndef _ASSERT_WRN +#define _ASSERT_WRN(expr) ((void)0) +#endif + #ifndef _ASSERTE #define _ASSERTE(expr) ((void)0) #endif +#ifndef _ASSERTE_WRN +#define _ASSERTE_WRN(expr) ((void)0) +#endif + #ifndef _ASSERT_EXPR #define _ASSERT_EXPR(expr,expr_str) ((void)0) #endif +#ifndef _ASSERT_EXPR_WRN +#define _ASSERT_EXPR_WRN(expr,expr_str) ((void)0) +#endif + #ifndef _ASSERT_BASE #define _ASSERT_BASE _ASSERT_EXPR #endif diff --git a/reactos/include/crt/ctype.h b/reactos/include/crt/ctype.h index 4ee33b0da9b..4c899ac608c 100644 --- a/reactos/include/crt/ctype.h +++ b/reactos/include/crt/ctype.h @@ -17,69 +17,36 @@ extern "C" { #endif #ifndef _CRT_CTYPEDATA_DEFINED -#define _CRT_CTYPEDATA_DEFINED -#ifndef _CTYPE_DISABLE_MACROS - -#ifndef __PCTYPE_FUNC -#define __PCTYPE_FUNC __pctype_func() -#ifdef _MSVCRT_ -#define __pctype_func() (_pctype) -#else -#define __pctype_func() (*_imp___pctype) -#endif -#endif - -#ifndef _pctype -#ifdef _MSVCRT_ - extern const unsigned short *_pctype; -#else - extern const unsigned short **_imp___pctype; -#define _pctype (*_imp___pctype) -#endif -#endif - -#endif -#endif +# define _CRT_CTYPEDATA_DEFINED +# ifndef _CTYPE_DISABLE_MACROS +# ifndef __PCTYPE_FUNC +# ifdef _DLL +# define __PCTYPE_FUNC __pctype_func() +# else +# define __PCTYPE_FUNC _pctype +# endif +# endif /* !__PCTYPE_FUNC */ + _CRTIMP const unsigned short * __cdecl __pctype_func(void); +# ifndef _M_CEE_PURE + _CRTDATA(extern const unsigned short *_pctype); +# else +# define _pctype (__pctype_func()) +# endif /* !_M_CEE_PURE */ +# endif /* !_CTYPE_DISABLE_MACROS */ +#endif /* !_CRT_CTYPEDATA_DEFINED */ #ifndef _CRT_WCTYPEDATA_DEFINED #define _CRT_WCTYPEDATA_DEFINED -#ifndef _CTYPE_DISABLE_MACROS -#ifndef _wctype -#ifdef _MSVCRT_ - extern unsigned short *_wctype; -#else - extern unsigned short **_imp___wctype; -#define _wctype (*_imp___wctype) -#endif -#endif -#ifdef _MSVCRT_ -#define __pwctype_func() (_pwctype) -#ifndef _pwctype - extern const unsigned short *_pwctype; -#endif -#else -#define __pwctype_func() (*_imp___pwctype) -#ifndef _pwctype - extern const unsigned short **_imp___pwctype; -#define _pwctype (*_imp___pwctype) -#endif -#endif -#endif -#endif - - /* CRT stuff */ -#if 1 - extern const unsigned char __newclmap[]; - extern const unsigned char __newcumap[]; - extern pthreadlocinfo __ptlocinfo; - extern pthreadmbcinfo __ptmbcinfo; - extern int __globallocalestatus; - extern int __locale_changed; - extern struct threadlocaleinfostruct __initiallocinfo; - extern _locale_tstruct __initiallocalestructinfo; - pthreadlocinfo __cdecl __updatetlocinfo(void); - pthreadmbcinfo __cdecl __updatetmbcinfo(void); -#endif +# ifndef _CTYPE_DISABLE_MACROS + _CRTDATA(extern unsigned short *_wctype); + _CRTIMP const wctype_t * __cdecl __pwctype_func(void); +# ifndef _M_CEE_PURE + _CRTDATA(extern const wctype_t *_pwctype); +# else +# define _pwctype (__pwctype_func()) +# endif /* !_M_CEE_PURE */ +# endif /* !_CTYPE_DISABLE_MACROS */ +#endif /* !_CRT_WCTYPEDATA_DEFINED */ #define _UPPER 0x1 #define _LOWER 0x2 @@ -96,7 +63,6 @@ extern "C" { #ifndef _CTYPE_DEFINED #define _CTYPE_DEFINED - _CRTIMP int __cdecl _isctype(int _C,int _Type); _CRTIMP int __cdecl _isctype_l(int _C,int _Type,_locale_t _Locale); _CRTIMP int __cdecl isalpha(int _C); @@ -131,51 +97,49 @@ extern "C" { _CRTIMP int __cdecl __toascii(int _C); _CRTIMP int __cdecl __iscsymf(int _C); _CRTIMP int __cdecl __iscsym(int _C); - #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) int __cdecl isblank(int _C); #endif -#endif +#endif /* !_CTYPE_DEFINED */ #ifndef _WCTYPE_DEFINED #define _WCTYPE_DEFINED - - int __cdecl iswalpha(wint_t _C); + _CRTIMP int __cdecl iswalpha(wint_t _C); _CRTIMP int __cdecl _iswalpha_l(wint_t _C,_locale_t _Locale); - int __cdecl iswupper(wint_t _C); + _CRTIMP int __cdecl iswupper(wint_t _C); _CRTIMP int __cdecl _iswupper_l(wint_t _C,_locale_t _Locale); - int __cdecl iswlower(wint_t _C); + _CRTIMP int __cdecl iswlower(wint_t _C); _CRTIMP int __cdecl _iswlower_l(wint_t _C,_locale_t _Locale); - int __cdecl iswdigit(wint_t _C); + _CRTIMP int __cdecl iswdigit(wint_t _C); _CRTIMP int __cdecl _iswdigit_l(wint_t _C,_locale_t _Locale); - int __cdecl iswxdigit(wint_t _C); + _CRTIMP int __cdecl iswxdigit(wint_t _C); _CRTIMP int __cdecl _iswxdigit_l(wint_t _C,_locale_t _Locale); - int __cdecl iswspace(wint_t _C); + _CRTIMP int __cdecl iswspace(wint_t _C); _CRTIMP int __cdecl _iswspace_l(wint_t _C,_locale_t _Locale); - int __cdecl iswpunct(wint_t _C); + _CRTIMP int __cdecl iswpunct(wint_t _C); _CRTIMP int __cdecl _iswpunct_l(wint_t _C,_locale_t _Locale); - int __cdecl iswalnum(wint_t _C); + _CRTIMP int __cdecl iswalnum(wint_t _C); _CRTIMP int __cdecl _iswalnum_l(wint_t _C,_locale_t _Locale); - int __cdecl iswprint(wint_t _C); + _CRTIMP int __cdecl iswprint(wint_t _C); _CRTIMP int __cdecl _iswprint_l(wint_t _C,_locale_t _Locale); - int __cdecl iswgraph(wint_t _C); + _CRTIMP int __cdecl iswgraph(wint_t _C); _CRTIMP int __cdecl _iswgraph_l(wint_t _C,_locale_t _Locale); - int __cdecl iswcntrl(wint_t _C); + _CRTIMP int __cdecl iswcntrl(wint_t _C); _CRTIMP int __cdecl _iswcntrl_l(wint_t _C,_locale_t _Locale); - int __cdecl iswascii(wint_t _C); - int __cdecl isleadbyte(int _C); + _CRTIMP int __cdecl iswascii(wint_t _C); + _CRTIMP int __cdecl isleadbyte(int _C); _CRTIMP int __cdecl _isleadbyte_l(int _C,_locale_t _Locale); - wint_t __cdecl towupper(wint_t _C); + _CRTIMP wint_t __cdecl towupper(wint_t _C); _CRTIMP wint_t __cdecl _towupper_l(wint_t _C,_locale_t _Locale); - wint_t __cdecl towlower(wint_t _C); + _CRTIMP wint_t __cdecl towlower(wint_t _C); _CRTIMP wint_t __cdecl _towlower_l(wint_t _C,_locale_t _Locale); - int __cdecl iswctype(wint_t _C,wctype_t _Type); + _CRTIMP int __cdecl iswctype(wint_t _C,wctype_t _Type); _CRTIMP int __cdecl _iswctype_l(wint_t _C,wctype_t _Type,_locale_t _Locale); _CRTIMP int __cdecl __iswcsymf(wint_t _C); _CRTIMP int __cdecl _iswcsymf_l(wint_t _C,_locale_t _Locale); _CRTIMP int __cdecl __iswcsym(wint_t _C); _CRTIMP int __cdecl _iswcsym_l(wint_t _C,_locale_t _Locale); - int __cdecl is_wctype(wint_t _C,wctype_t _Type); + _CRTIMP int __cdecl is_wctype(wint_t _C,wctype_t _Type); #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) int __cdecl iswblank(wint_t _C); @@ -261,12 +225,12 @@ int __cdecl iswblank(wint_t _C); #define _iswcsym_l(_c,_p) (_iswalnum_l(_c,_p) || ((_c)=='_')) #endif -#ifndef NO_OLDNAMES +#ifndef NO_OLDNAMES #ifndef _CTYPE_DEFINED - int __cdecl isascii(int _C); - int __cdecl toascii(int _C); - int __cdecl iscsymf(int _C); - int __cdecl iscsym(int _C); + _CRT_NONSTDC_DEPRECATE(__isascii) _CRTIMP int __cdecl isascii(int _C); + _CRT_NONSTDC_DEPRECATE(__toascii) _CRTIMP int __cdecl toascii(int _C); + _CRT_NONSTDC_DEPRECATE(__iscsymf) _CRTIMP int __cdecl iscsymf(int _C); + _CRT_NONSTDC_DEPRECATE(__iscsym) _CRTIMP int __cdecl iscsym(int _C); #else #define isascii __isascii #define toascii __toascii @@ -278,4 +242,5 @@ int __cdecl iswblank(wint_t _C); #ifdef __cplusplus } #endif -#endif + +#endif /* !_INC_CTYPE */ diff --git a/reactos/include/crt/dos.h b/reactos/include/crt/dos.h index 188fc300fcd..3b3ac7d8af7 100644 --- a/reactos/include/crt/dos.h +++ b/reactos/include/crt/dos.h @@ -39,8 +39,8 @@ extern "C" { #endif #if (defined(_X86_) && !defined(__x86_64)) -// void __cdecl _disable(void); -// void __cdecl _enable(void); + void __cdecl _disable(void); + void __cdecl _enable(void); #endif #ifndef NO_OLDNAMES diff --git a/reactos/include/crt/io.h b/reactos/include/crt/io.h index a7a7ed4ee1f..0accf137df2 100644 --- a/reactos/include/crt/io.h +++ b/reactos/include/crt/io.h @@ -1,3 +1,4 @@ + /** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the w64 mingw-runtime package. @@ -25,15 +26,6 @@ _CRTIMP char* __cdecl _getcwd (char*, int); #ifndef _FINDDATA_T_DEFINED - struct _finddata32_t { - unsigned attrib; - __time32_t time_create; - __time32_t time_access; - __time32_t time_write; - _fsize_t size; - char name[260]; - }; - struct _finddata_t { unsigned attrib; time_t time_create; @@ -43,7 +35,25 @@ _CRTIMP char* __cdecl _getcwd (char*, int); char name[260]; }; -/*#if _INTEGRAL_MAX_BITS >= 64*/ + struct _finddata32_t { + unsigned attrib; + __time32_t time_create; + __time32_t time_access; + __time32_t time_write; + _fsize_t size; + char name[260]; + }; + +#if _INTEGRAL_MAX_BITS >= 64 + + struct _finddatai64_t { + unsigned attrib; + time_t time_create; + time_t time_access; + time_t time_write; + __int64 size; + char name[260]; + }; struct _finddata32i64_t { unsigned attrib; @@ -71,45 +81,13 @@ _CRTIMP char* __cdecl _getcwd (char*, int); __int64 size; char name[260]; }; - - struct _finddatai64_t { - unsigned attrib; - time_t time_create; - time_t time_access; - time_t time_write; - __int64 size; - char name[260]; - }; - -/* #endif */ - -#ifdef _WIN64 -#define _findfirst64i32 _findfirst -#define _findnext64i32 _findnext -#define _findfirsti64 _findfirst64 -#define _findnexti64 _findnext64 - -#else /* !_WIN64 */ -//#define _findfirst32 _findfirst -//#define _findnext32 _findnext -//#define _findfirst32i64 _findfirsti64 -//#define _findnext32i64 _findnexti64 -#endif /* !_WIN64 */ +#endif /* _INTEGRAL_MAX_BITS >= 64 */ #define _FINDDATA_T_DEFINED #endif #ifndef _WFINDDATA_T_DEFINED - 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 _wfinddata_t { unsigned attrib; time_t time_create; @@ -119,7 +97,25 @@ _CRTIMP char* __cdecl _getcwd (char*, int); wchar_t name[260]; }; -/* #if _INTEGRAL_MAX_BITS >= 64 */ + struct _wfinddata32_t { + unsigned attrib; + __time32_t time_create; + __time32_t time_access; + __time32_t time_write; + _fsize_t size; + wchar_t name[260]; + }; + +#if _INTEGRAL_MAX_BITS >= 64 + + struct _wfinddatai64_t { + unsigned attrib; + time_t time_create; + time_t time_access; + time_t time_write; + __int64 size; + wchar_t name[260]; + }; struct _wfinddata32i64_t { unsigned attrib; @@ -147,17 +143,7 @@ _CRTIMP char* __cdecl _getcwd (char*, int); __int64 size; wchar_t name[260]; }; - - struct _wfinddatai64_t { - unsigned attrib; - time_t time_create; - time_t time_access; - time_t time_write; - __int64 size; - wchar_t name[260]; - }; - -/* #endif */ +#endif #define _WFINDDATA_T_DEFINED #endif @@ -216,11 +202,16 @@ _CRTIMP char* __cdecl _getcwd (char*, int); #if _INTEGRAL_MAX_BITS >= 64 _CRTIMP __int64 __cdecl _filelengthi64(int _FileHandle); _CRTIMP intptr_t __cdecl _findfirst32i64(const char *_Filename,struct _finddata32i64_t *_FindData); + _CRTIMP intptr_t __cdecl _findfirst64i32(const char *_Filename,struct _finddata64i32_t *_FindData); _CRTIMP intptr_t __cdecl _findfirst64(const char *_Filename,struct __finddata64_t *_FindData); + _CRTIMP int __cdecl _findnext32i64(intptr_t _FindHandle,struct _finddata32i64_t *_FindData); + _CRTIMP int __cdecl _findnext64i32(intptr_t _FindHandle,struct _finddata64i32_t *_FindData); + _CRTIMP int __cdecl _findnext64(intptr_t _FindHandle,struct __finddata64_t *_FindData); + _CRTIMP __int64 __cdecl _lseeki64(int _FileHandle,__int64 _Offset,int _Origin); + _CRTIMP __int64 __cdecl _telli64(int _FileHandle); #ifdef __cplusplus #include #endif - intptr_t __cdecl _findfirst64i32(const char *_Filename,struct _finddata64i32_t *_FindData); __CRT_INLINE intptr_t __cdecl _findfirst64i32(const char *_Filename,struct _finddata64i32_t *_FindData) { struct __finddata64_t fd; @@ -233,9 +224,6 @@ _CRTIMP char* __cdecl _getcwd (char*, int); strncpy(_FindData->name,fd.name,260); return ret; } - _CRTIMP int __cdecl _findnext32i64(intptr_t _FindHandle,struct _finddata32i64_t *_FindData); - _CRTIMP int __cdecl _findnext64(intptr_t _FindHandle,struct __finddata64_t *_FindData); - int __cdecl _findnext64i32(intptr_t _FindHandle,struct _finddata64i32_t *_FindData); __CRT_INLINE int __cdecl _findnext64i32(intptr_t _FindHandle,struct _finddata64i32_t *_FindData) { struct __finddata64_t fd; @@ -248,11 +236,9 @@ _CRTIMP char* __cdecl _getcwd (char*, int); strncpy(_FindData->name,fd.name,260); return ret; } - __int64 __cdecl _lseeki64(int _FileHandle,__int64 _Offset,int _Origin); - __int64 __cdecl _telli64(int _FileHandle); #endif -#ifndef NO_OLDNAMES +#ifndef NO_OLDNAMES #ifndef _UWIN int __cdecl chdir (const char *); char *__cdecl getcwd (char *, int); @@ -261,7 +247,6 @@ _CRTIMP char* __cdecl _getcwd (char*, int); int __cdecl rmdir (const char*); int __cdecl chmod (const char *, int); #endif /* _UWIN */ - #endif /* Not NO_OLDNAMES */ _CRTIMP errno_t __cdecl _sopen_s(int *_FileHandle,const char *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionMode); @@ -304,7 +289,7 @@ _CRTIMP char* __cdecl _getcwd (char*, int); extern "C++" _CRTIMP int __cdecl _wsopen(const wchar_t *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionMode = 0); #endif -#endif +#endif /* !_WIO_DEFINED */ int __cdecl __lock_fhandle(int _Filehandle); void __cdecl _unlock_fhandle(int _Filehandle); diff --git a/reactos/include/crt/math.h b/reactos/include/crt/math.h index 87c8222c5a1..da6756f5b7c 100644 --- a/reactos/include/crt/math.h +++ b/reactos/include/crt/math.h @@ -3,12 +3,8 @@ * This file is part of the w64 mingw-runtime package. * No warranty is given; refer to the file DISCLAIMER within this package. */ -#ifndef _MATH_H_ -#define _MATH_H_ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif +#ifndef _INC_MATH +#define _INC_MATH #include @@ -48,14 +44,7 @@ extern "C" { #define EDOM 33 #define ERANGE 34 -#ifndef _HUGE -#ifdef _MSVCRT_ - extern double *_HUGE; -#else - extern double *_imp___HUGE; -#define _HUGE (*_imp___HUGE) -#endif -#endif + _CRTIMP extern double _HUGE; #define HUGE_VAL _HUGE @@ -94,19 +83,19 @@ extern "C" { #endif _CRTIMP double __cdecl _cabs(struct _complex _ComplexA); - double __cdecl ceil(double _X); - double __cdecl floor(double _X); - double __cdecl frexp(double _X,int *_Y); - double __cdecl _hypot(double _X,double _Y); + _CRTIMP double __cdecl ceil(double _X); + _CRTIMP double __cdecl floor(double _X); + _CRTIMP double __cdecl frexp(double _X,int *_Y); + _CRTIMP double __cdecl _hypot(double _X,double _Y); _CRTIMP double __cdecl _j0(double _X); _CRTIMP double __cdecl _j1(double _X); _CRTIMP double __cdecl _jn(int _X,double _Y); - double __cdecl ldexp(double _X,int _Y); + _CRTIMP double __cdecl ldexp(double _X,int _Y); #ifndef _CRT_MATHERR_DEFINED #define _CRT_MATHERR_DEFINED int __cdecl _matherr(struct _exception *_Except); #endif - double __cdecl modf(double _X,double *_Y); + _CRTIMP double __cdecl modf(double _X,double *_Y); _CRTIMP double __cdecl _y0(double _X); _CRTIMP double __cdecl _y1(double _X); _CRTIMP double __cdecl _yn(int _X,double _Y); @@ -767,5 +756,4 @@ __fp_unordered_compare (long double x, long double y){ #endif -#endif /* End _MATH_H_ */ - +#endif /* !_INC_MATH */ diff --git a/reactos/include/crt/stdio.h b/reactos/include/crt/stdio.h index 54016e2b0be..812beee41ad 100644 --- a/reactos/include/crt/stdio.h +++ b/reactos/include/crt/stdio.h @@ -91,19 +91,12 @@ extern "C" { #endif #ifndef _STDIO_DEFINED -#ifdef _WIN64 _CRTIMP FILE *__cdecl __iob_func(void); -#else -#ifdef _MSVCRT_ -extern FILE _iob[]; /* A pointer to an array of FILE */ -#define __iob_func() (_iob) -#else -extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ -#define __iob_func() (*_imp___iob) + _CRTDATA(extern FILE _iob[];) +#ifdef _M_CEE_PURE #define _iob __iob_func() #endif #endif -#endif #ifndef _FPOS_T_DEFINED #define _FPOS_T_DEFINED @@ -121,11 +114,10 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #ifndef _STDSTREAM_DEFINED #define _STDSTREAM_DEFINED - -#define stdin (&__iob_func()[0]) -#define stdout (&__iob_func()[1]) -#define stderr (&__iob_func()[2]) -#endif +#define stdin (&_iob[0]) +#define stdout (&_iob[1]) +#define stderr (&_iob[1]) +#endif /* !_STDSTREAM_DEFINED */ #define _IOREAD 0x0001 #define _IOWRT 0x0002 @@ -139,9 +131,6 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #define _IOERR 0x0020 #define _IOSTRG 0x0040 #define _IORW 0x0080 -#ifdef _POSIX_ -#define _IOAPPEND 0x0200 -#endif #define _TWO_DIGIT_EXPONENT 0x1 @@ -154,21 +143,21 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #else _CRTIMP FILE *__cdecl _fsopen(const char *_Filename,const char *_Mode,int _ShFlag); #endif - void __cdecl clearerr(FILE *_File); - int __cdecl fclose(FILE *_File); + _CRTIMP void __cdecl clearerr(FILE *_File); + _CRTIMP int __cdecl fclose(FILE *_File); _CRTIMP int __cdecl _fcloseall(void); #ifdef _POSIX_ FILE *__cdecl fdopen(int _FileHandle,const char *_Mode); #else _CRTIMP FILE *__cdecl _fdopen(int _FileHandle,const char *_Mode); #endif - int __cdecl feof(FILE *_File); - int __cdecl ferror(FILE *_File); - int __cdecl fflush(FILE *_File); - int __cdecl fgetc(FILE *_File); + _CRTIMP int __cdecl feof(FILE *_File); + _CRTIMP int __cdecl ferror(FILE *_File); + _CRTIMP int __cdecl fflush(FILE *_File); + _CRTIMP int __cdecl fgetc(FILE *_File); _CRTIMP int __cdecl _fgetchar(void); - int __cdecl fgetpos(FILE *_File ,fpos_t *_Pos); - char *__cdecl fgets(char *_Buf,int _MaxCount,FILE *_File); + _CRTIMP int __cdecl fgetpos(FILE *_File ,fpos_t *_Pos); + _CRTIMP char *__cdecl fgets(char *_Buf,int _MaxCount,FILE *_File); #ifdef _POSIX_ int __cdecl fileno(FILE *_File); #else @@ -176,68 +165,61 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #endif _CRTIMP char *__cdecl _tempnam(const char *_DirName,const char *_FilePrefix); _CRTIMP int __cdecl _flushall(void); - FILE *__cdecl fopen(const char *_Filename,const char *_Mode); - FILE *fopen64(const char *filename,const char *mode); - int __cdecl fprintf(FILE *_File,const char *_Format,...); - int __cdecl fputc(int _Ch,FILE *_File); + _CRTIMP FILE *__cdecl fopen(const char *_Filename,const char *_Mode); + _CRTIMP int __cdecl fprintf(FILE *_File,const char *_Format,...); + _CRTIMP int __cdecl fputc(int _Ch,FILE *_File); _CRTIMP int __cdecl _fputchar(int _Ch); - int __cdecl fputs(const char *_Str,FILE *_File); - size_t __cdecl fread(void *_DstBuf,size_t _ElementSize,size_t _Count,FILE *_File); - FILE *__cdecl freopen(const char *_Filename,const char *_Mode,FILE *_File); - int __cdecl fscanf(FILE *_File,const char *_Format,...); - int __cdecl fsetpos(FILE *_File,const fpos_t *_Pos); - int __cdecl fseek(FILE *_File,long _Offset,int _Origin); - int fseeko64(FILE* stream, _off64_t offset, int whence); - long __cdecl ftell(FILE *_File); - _off64_t ftello64(FILE * stream); - int __cdecl _fseeki64(FILE *_File,__int64 _Offset,int _Origin); - __int64 __cdecl _ftelli64(FILE *_File); - size_t __cdecl fwrite(const void *_Str,size_t _Size,size_t _Count,FILE *_File); - int __cdecl getc(FILE *_File); - int __cdecl getchar(void); + _CRTIMP int __cdecl fputs(const char *_Str,FILE *_File); + _CRTIMP size_t __cdecl fread(void *_DstBuf,size_t _ElementSize,size_t _Count,FILE *_File); + _CRTIMP _CRT_INSECURE_DEPRECATE(freopen_s) FILE *__cdecl freopen(const char *_Filename,const char *_Mode,FILE *_File); + _CRTIMP _CRT_INSECURE_DEPRECATE(fscanf_s) int __cdecl fscanf(FILE *_File,const char *_Format,...); + _CRTIMP int __cdecl fsetpos(FILE *_File,const fpos_t *_Pos); + _CRTIMP int __cdecl fseek(FILE *_File,long _Offset,int _Origin); + _CRTIMP long __cdecl ftell(FILE *_File); + _CRTIMP int __cdecl _fseeki64(FILE *_File,__int64 _Offset,int _Origin); + _CRTIMP __int64 __cdecl _ftelli64(FILE *_File); + _CRTIMP size_t __cdecl fwrite(const void *_Str,size_t _Size,size_t _Count,FILE *_File); + _CRTIMP int __cdecl getc(FILE *_File); + _CRTIMP int __cdecl getchar(void); _CRTIMP int __cdecl _getmaxstdio(void); - char *__cdecl gets(char *_Buffer); - int __cdecl _getw(FILE *_File); + _CRTIMP char *__cdecl gets(char *_Buffer); // FIXME: non-standard + _CRTIMP int __cdecl _getw(FILE *_File); #ifndef _CRT_PERROR_DEFINED #define _CRT_PERROR_DEFINED - void __cdecl perror(const char *_ErrMsg); + _CRTIMP void __cdecl perror(const char *_ErrMsg); #endif _CRTIMP int __cdecl _pclose(FILE *_File); _CRTIMP FILE *__cdecl _popen(const char *_Command,const char *_Mode); -#if !defined(NO_OLDNAMES) && !defined(popen) -#define popen _popen -#define pclose _pclose -#endif - int __cdecl printf(const char *_Format,...); - int __cdecl putc(int _Ch,FILE *_File); - int __cdecl putchar(int _Ch); - int __cdecl puts(const char *_Str); + _CRTIMP int __cdecl printf(const char *_Format,...); + _CRTIMP int __cdecl putc(int _Ch,FILE *_File); + _CRTIMP int __cdecl putchar(int _Ch); + _CRTIMP int __cdecl puts(const char *_Str); _CRTIMP int __cdecl _putw(int _Word,FILE *_File); #ifndef _CRT_DIRECTORY_DEFINED #define _CRT_DIRECTORY_DEFINED - int __cdecl remove(const char *_Filename); - int __cdecl rename(const char *_OldFilename,const char *_NewFilename); + _CRTIMP int __cdecl remove(const char *_Filename); + _CRTIMP int __cdecl rename(const char *_OldFilename,const char *_NewFilename); _CRTIMP int __cdecl _unlink(const char *_Filename); -#ifndef NO_OLDNAMES - int __cdecl unlink(const char *_Filename); +#ifndef NO_OLDNAMES + _CRTIMP _CRT_NONSTDC_DEPRECATE(_unlink) int __cdecl unlink(const char *_Filename); #endif #endif - void __cdecl rewind(FILE *_File); + _CRTIMP void __cdecl rewind(FILE *_File); _CRTIMP int __cdecl _rmtmp(void); - int __cdecl scanf(const char *_Format,...); - void __cdecl setbuf(FILE *_File,char *_Buffer); + _CRTIMP _CRT_INSECURE_DEPRECATE_CORE(scanf_s) int __cdecl scanf(const char *_Format,...); + _CRTIMP _CRT_INSECURE_DEPRECATE(setvbuf) void __cdecl setbuf(FILE *_File,char *_Buffer); _CRTIMP int __cdecl _setmaxstdio(int _Max); _CRTIMP unsigned int __cdecl _set_output_format(unsigned int _Format); _CRTIMP unsigned int __cdecl _get_output_format(void); - int __cdecl setvbuf(FILE *_File,char *_Buf,int _Mode,size_t _Size); + _CRTIMP int __cdecl setvbuf(FILE *_File,char *_Buf,int _Mode,size_t _Size); _CRTIMP int __cdecl _scprintf(const char *_Format,...); - int __cdecl sscanf(const char *_Src,const char *_Format,...); - _CRTIMP int __cdecl _snscanf(const char *_Src,size_t _MaxCount,const char *_Format,...); - FILE *__cdecl tmpfile(void); - char *__cdecl tmpnam(char *_Buffer); - int __cdecl ungetc(int _Ch,FILE *_File); - int __cdecl vfprintf(FILE *_File,const char *_Format,va_list _ArgList); - int __cdecl vprintf(const char *_Format,va_list _ArgList); + _CRTIMP _CRT_INSECURE_DEPRECATE_CORE(sscanf_s) int __cdecl sscanf(const char *_Src,const char *_Format,...); + _CRTIMP _CRT_INSECURE_DEPRECATE_CORE(_snscanf_s) int __cdecl _snscanf(const char *_Src,size_t _MaxCount,const char *_Format,...); + _CRTIMP _CRT_INSECURE_DEPRECATE(tmpfile_s) FILE *__cdecl tmpfile(void); + _CRTIMP char *__cdecl tmpnam(char *_Buffer); + _CRTIMP_ALT int __cdecl ungetc(int _Ch,FILE *_File); + _CRTIMP int __cdecl vfprintf(FILE *_File,const char *_Format,va_list _ArgList); + _CRTIMP int __cdecl vprintf(const char *_Format,va_list _ArgList); /* Make sure macros are not defined. */ #if __MINGW_GNUC_PREREQ(4,4) #pragma push_macro("vsnprintf") @@ -245,27 +227,13 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #endif #undef vsnprintf #undef snprintf - - extern -#ifdef gnu_printf - __attribute__((format(gnu_printf, 3, 0))) __attribute__((nonnull (3))) -#endif - int __mingw_vsnprintf(char *_DstBuf,size_t _MaxCount,const char *_Format,va_list _ArgList); - extern -#ifdef gnu_printf - __attribute__((format(gnu_printf, 3, 4))) __attribute__((nonnull (3))) -#endif - int __mingw_snprintf(char* s, size_t n, const char* format, ...); - int __cdecl vsnprintf(char *_DstBuf,size_t _MaxCount,const char *_Format,va_list _ArgList); + _CRTIMP _CRT_INSECURE_DEPRECATE(vsnprintf_s) int __cdecl vsnprintf(char *_DstBuf,size_t _MaxCount,const char *_Format,va_list _ArgList); _CRTIMP int __cdecl _snprintf(char *_Dest,size_t _Count,const char *_Format,...); _CRTIMP int __cdecl _vsnprintf(char *_Dest,size_t _Count,const char *_Format,va_list _Args); int __cdecl sprintf(char *_Dest,const char *_Format,...); int __cdecl vsprintf(char *_Dest,const char *_Format,va_list _Args); #ifndef __NO_ISOCEXT /* externs in libmingwex.a */ int __cdecl snprintf(char* s, size_t n, const char* format, ...); - __CRT_INLINE int __cdecl vsnprintf (char* s, size_t n, const char* format,va_list arg) { - return _vsnprintf ( s, n, format, arg); - } int __cdecl vscanf(const char * __restrict__ Format, va_list argp); int __cdecl vfscanf (FILE * __restrict__ fp, const char * Format,va_list argp); int __cdecl vsscanf (const char * __restrict__ _Str,const char * __restrict__ Format,va_list argp); @@ -275,26 +243,22 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #pragma pop_macro("snprintf") #pragma pop_macro("vsnprintf") #endif -/* Check if vsnprintf and snprintf are defaulting to gnu-style. */ -#if defined(USE_MINGW_GNU_SNPRINTF) && USE_MINGW_GNU_SNPRINTF - #ifndef vsnprint - #define vsnprintf __mingw_vsnprintf - #endif - #ifndef snprintf - #define snprintf __mingw_snprintf - #endif -#else - #ifndef vsnprint - #define vsnprintf _vsnprintf - #endif - #ifndef snprintf - #define snprintf _snprintf - #endif + +#ifndef vsnprintf + #define vsnprintf _vsnprintf +#endif +#ifndef snprintf + #define snprintf _snprintf #endif _CRTIMP int __cdecl _vscprintf(const char *_Format,va_list _ArgList); +#ifdef _SAFECRT_IMPL +#define _set_printf_count_output(i) +#define _get_printf_count_output() (FALSE) +#else _CRTIMP int __cdecl _set_printf_count_output(int _Value); _CRTIMP int __cdecl _get_printf_count_output(void); +#endif #ifndef _WSTDIO_DEFINED @@ -307,24 +271,24 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #else _CRTIMP FILE *__cdecl _wfsopen(const wchar_t *_Filename,const wchar_t *_Mode,int _ShFlag); #endif - wint_t __cdecl fgetwc(FILE *_File); + _CRTIMP wint_t __cdecl fgetwc(FILE *_File); _CRTIMP wint_t __cdecl _fgetwchar(void); - wint_t __cdecl fputwc(wchar_t _Ch,FILE *_File); + _CRTIMP wint_t __cdecl fputwc(wchar_t _Ch,FILE *_File); _CRTIMP wint_t __cdecl _fputwchar(wchar_t _Ch); - wint_t __cdecl getwc(FILE *_File); - wint_t __cdecl getwchar(void); - wint_t __cdecl putwc(wchar_t _Ch,FILE *_File); - wint_t __cdecl putwchar(wchar_t _Ch); - wint_t __cdecl ungetwc(wint_t _Ch,FILE *_File); - wchar_t *__cdecl fgetws(wchar_t *_Dst,int _SizeInWords,FILE *_File); - int __cdecl fputws(const wchar_t *_Str,FILE *_File); + _CRTIMP wint_t __cdecl getwc(FILE *_File); + _CRTIMP wint_t __cdecl getwchar(void); + _CRTIMP wint_t __cdecl putwc(wchar_t _Ch,FILE *_File); + _CRTIMP wint_t __cdecl putwchar(wchar_t _Ch); + _CRTIMP wint_t __cdecl ungetwc(wint_t _Ch,FILE *_File); + _CRTIMP wchar_t *__cdecl fgetws(wchar_t *_Dst,int _SizeInWords,FILE *_File); + _CRTIMP int __cdecl fputws(const wchar_t *_Str,FILE *_File); _CRTIMP wchar_t *__cdecl _getws(wchar_t *_String); _CRTIMP int __cdecl _putws(const wchar_t *_Str); - int __cdecl fwprintf(FILE *_File,const wchar_t *_Format,...); - int __cdecl wprintf(const wchar_t *_Format,...); + _CRTIMP int __cdecl fwprintf(FILE *_File,const wchar_t *_Format,...); + _CRTIMP int __cdecl wprintf(const wchar_t *_Format,...); _CRTIMP int __cdecl _scwprintf(const wchar_t *_Format,...); - int __cdecl vfwprintf(FILE *_File,const wchar_t *_Format,va_list _ArgList); - int __cdecl vwprintf(const wchar_t *_Format,va_list _ArgList); + _CRTIMP int __cdecl vfwprintf(FILE *_File,const wchar_t *_Format,va_list _ArgList); + _CRTIMP int __cdecl vwprintf(const wchar_t *_Format,va_list _ArgList); _CRTIMP int __cdecl swprintf(wchar_t*, const wchar_t*, ...); _CRTIMP int __cdecl vswprintf(wchar_t*, const wchar_t*,va_list); _CRTIMP int __cdecl _swprintf_c(wchar_t *_DstBuf,size_t _SizeInWords,const wchar_t *_Format,...); @@ -334,9 +298,9 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #ifndef __NO_ISOCEXT /* externs in libmingwex.a */ _CRTIMP int __cdecl snwprintf (wchar_t* s, size_t n, const wchar_t* format, ...); __CRT_INLINE int __cdecl vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, va_list arg) { return _vsnwprintf(s,n,format,arg); } - int __cdecl vwscanf (const wchar_t *, va_list); - int __cdecl vfwscanf (FILE *,const wchar_t *,va_list); - int __cdecl vswscanf (const wchar_t *,const wchar_t *,va_list); + _CRTIMP int __cdecl vwscanf (const wchar_t *, va_list); + _CRTIMP int __cdecl vfwscanf (FILE *,const wchar_t *,va_list); + _CRTIMP int __cdecl vswscanf (const wchar_t *,const wchar_t *,va_list); #endif _CRTIMP int __cdecl _swprintf(wchar_t *_Dest,const wchar_t *_Format,...); _CRTIMP int __cdecl _vswprintf(wchar_t *_Dest,const wchar_t *_Format,va_list _Args); @@ -345,21 +309,21 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #include #endif -//#ifdef _CRT_NON_CONFORMING_SWPRINTFS -//#ifndef __cplusplus -//#define swprintf _swprintf -//#define vswprintf _vswprintf -//#define _swprintf_l __swprintf_l -//#define _vswprintf_l __vswprintf_l -//#endif -//#endif +#ifdef _CRT_NON_CONFORMING_SWPRINTFS +#ifndef __cplusplus +#define swprintf _swprintf +#define vswprintf _vswprintf +#define _swprintf_l __swprintf_l +#define _vswprintf_l __vswprintf_l +#endif +#endif _CRTIMP wchar_t *__cdecl _wtempnam(const wchar_t *_Directory,const wchar_t *_FilePrefix); _CRTIMP int __cdecl _vscwprintf(const wchar_t *_Format,va_list _ArgList); - int __cdecl fwscanf(FILE *_File,const wchar_t *_Format,...); - int __cdecl swscanf(const wchar_t *_Src,const wchar_t *_Format,...); + _CRTIMP int __cdecl fwscanf(FILE *_File,const wchar_t *_Format,...); + _CRTIMP int __cdecl swscanf(const wchar_t *_Src,const wchar_t *_Format,...); _CRTIMP int __cdecl _snwscanf(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,...); - int __cdecl wscanf(const wchar_t *_Format,...); + _CRTIMP int __cdecl wscanf(const wchar_t *_Format,...); _CRTIMP FILE *__cdecl _wfdopen(int _FileHandle ,const wchar_t *_Mode); _CRTIMP FILE *__cdecl _wfopen(const wchar_t *_Filename,const wchar_t *_Mode); _CRTIMP FILE *__cdecl _wfreopen(const wchar_t *_Filename,const wchar_t *_Mode,FILE *_OldFile); diff --git a/reactos/include/crt/string.h b/reactos/include/crt/string.h index 94edc90001d..ac5bb9bca4b 100644 --- a/reactos/include/crt/string.h +++ b/reactos/include/crt/string.h @@ -28,32 +28,32 @@ extern "C" { #ifndef _CRT_MEMORY_DEFINED #define _CRT_MEMORY_DEFINED _CRTIMP void *__cdecl _memccpy(void *_Dst,const void *_Src,int _Val,size_t _MaxCount); - _CONST_RETURN void *__cdecl memchr(const void *_Buf ,int _Val,size_t _MaxCount); + _CRTIMP _CONST_RETURN void *__cdecl memchr(const void *_Buf ,int _Val,size_t _MaxCount); _CRTIMP int __cdecl _memicmp(const void *_Buf1,const void *_Buf2,size_t _Size); _CRTIMP int __cdecl _memicmp_l(const void *_Buf1,const void *_Buf2,size_t _Size,_locale_t _Locale); int __cdecl memcmp(const void *_Buf1,const void *_Buf2,size_t _Size); - void *__cdecl memcpy(void *_Dst,const void *_Src,size_t _Size); + _CRT_INSECURE_DEPRECATE_MEMORY(memcpy_s) void *__cdecl memcpy(void *_Dst,const void *_Src,size_t _Size); void *__cdecl memset(void *_Dst,int _Val,size_t _Size); #ifndef NO_OLDNAMES - void *__cdecl memccpy(void *_Dst,const void *_Src,int _Val,size_t _Size); - int __cdecl memicmp(const void *_Buf1,const void *_Buf2,size_t _Size); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_memccpy) void *__cdecl memccpy(void *_Dst,const void *_Src,int _Val,size_t _Size); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_memicmp) int __cdecl memicmp(const void *_Buf1,const void *_Buf2,size_t _Size); #endif #endif + char *__cdecl _strset(char *_Str,int _Val); char *__cdecl strcpy(char *_Dest,const char *_Source); char *__cdecl strcat(char *_Dest,const char *_Source); int __cdecl strcmp(const char *_Str1,const char *_Str2); size_t __cdecl strlen(const char *_Str); -#if 0 - size_t __cdecl strnlen(const char *_Str,size_t _MaxCount); -#endif - void *__cdecl memmove(void *_Dst,const void *_Src,size_t _Size); + _CRTIMP size_t __cdecl strnlen(const char *_Str,size_t _MaxCount); + + _CRT_INSECURE_DEPRECATE_MEMORY(memmove_s) void *__cdecl memmove(void *_Dst,const void *_Src,size_t _Size); _CRTIMP char *__cdecl _strdup(const char *_Src); - _CONST_RETURN char *__cdecl strchr(const char *_Str,int _Val); + _CRTIMP _CONST_RETURN char *__cdecl strchr(const char *_Str,int _Val); _CRTIMP int __cdecl _stricmp(const char *_Str1,const char *_Str2); _CRTIMP int __cdecl _strcmpi(const char *_Str1,const char *_Str2); _CRTIMP int __cdecl _stricmp_l(const char *_Str1,const char *_Str2,_locale_t _Locale); - int __cdecl strcoll(const char *_Str1,const char *_Str2); + _CRTIMP int __cdecl strcoll(const char *_Str1,const char *_Str2); _CRTIMP int __cdecl _strcoll_l(const char *_Str1,const char *_Str2,_locale_t _Locale); _CRTIMP int __cdecl _stricoll(const char *_Str1,const char *_Str2); _CRTIMP int __cdecl _stricoll_l(const char *_Str1,const char *_Str2,_locale_t _Locale); @@ -61,9 +61,9 @@ extern "C" { _CRTIMP int __cdecl _strncoll_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale); _CRTIMP int __cdecl _strnicoll (const char *_Str1,const char *_Str2,size_t _MaxCount); _CRTIMP int __cdecl _strnicoll_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale); - size_t __cdecl strcspn(const char *_Str,const char *_Control); - _CRTIMP char *__cdecl _strerror(const char *_ErrMsg); - char *__cdecl strerror(int); + _CRTIMP size_t __cdecl strcspn(const char *_Str,const char *_Control); + _CRTIMP _CRT_INSECURE_DEPRECATE(_strerror_s) char *__cdecl _strerror(const char *_ErrMsg); + _CRTIMP _CRT_INSECURE_DEPRECATE(strerror_s) char *__cdecl strerror(int); _CRTIMP char *__cdecl _strlwr(char *_String); char *strlwr_l(char *_String,_locale_t _Locale); char *__cdecl strncat(char *_Dest,const char *_Source,size_t _Count); @@ -71,67 +71,67 @@ extern "C" { _CRTIMP int __cdecl _strnicmp(const char *_Str1,const char *_Str2,size_t _MaxCount); _CRTIMP int __cdecl _strnicmp_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale); char *strncpy(char *_Dest,const char *_Source,size_t _Count); - _CRTIMP char *__cdecl _strnset(char *_Str,int _Val,size_t _MaxCount); - _CONST_RETURN char *__cdecl strpbrk(const char *_Str,const char *_Control); - _CONST_RETURN char *__cdecl strrchr(const char *_Str,int _Ch); + _CRTIMP _CRT_INSECURE_DEPRECATE_CORE(_strnset_s) char *__cdecl _strnset(char *_Str,int _Val,size_t _MaxCount); + _CRTIMP _CONST_RETURN char *__cdecl strpbrk(const char *_Str,const char *_Control); + _CRTIMP _CONST_RETURN char *__cdecl strrchr(const char *_Str,int _Ch); _CRTIMP char *__cdecl _strrev(char *_Str); - size_t __cdecl strspn(const char *_Str,const char *_Control); - _CONST_RETURN char *__cdecl strstr(const char *_Str,const char *_SubStr); - char *__cdecl strtok(char *_Str,const char *_Delim); + _CRTIMP size_t __cdecl strspn(const char *_Str,const char *_Control); + _CRTIMP _CONST_RETURN char *__cdecl strstr(const char *_Str,const char *_SubStr); + _CRTIMP _CRT_INSECURE_DEPRECATE_CORE(strtok_s) char *__cdecl strtok(char *_Str,const char *_Delim); _CRTIMP char *__cdecl _strupr(char *_String); _CRTIMP char *_strupr_l(char *_String,_locale_t _Locale); - size_t __cdecl strxfrm(char *_Dst,const char *_Src,size_t _MaxCount); + _CRTIMP size_t __cdecl strxfrm(char *_Dst,const char *_Src,size_t _MaxCount); _CRTIMP size_t __cdecl _strxfrm_l(char *_Dst,const char *_Src,size_t _MaxCount,_locale_t _Locale); #ifndef NO_OLDNAMES - char *__cdecl strdup(const char *_Src); - int __cdecl strcmpi(const char *_Str1,const char *_Str2); - int __cdecl stricmp(const char *_Str1,const char *_Str2); - char *__cdecl strlwr(char *_Str); - int __cdecl strnicmp(const char *_Str1,const char *_Str,size_t _MaxCount); - __CRT_INLINE int __cdecl strncasecmp (const char *__sz1, const char *__sz2, size_t __sizeMaxCompare) { return _strnicmp (__sz1, __sz2, __sizeMaxCompare); } - __CRT_INLINE int __cdecl strcasecmp (const char *__sz1, const char *__sz2) { return _stricmp (__sz1, __sz2); } - char *__cdecl strnset(char *_Str,int _Val,size_t _MaxCount); - char *__cdecl strrev(char *_Str); - char *__cdecl strset(char *_Str,int _Val); - char *__cdecl strupr(char *_Str); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_strdup) char *__cdecl strdup(const char *_Src); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_strcmpi) int __cdecl strcmpi(const char *_Str1,const char *_Str2); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_stricmp) int __cdecl stricmp(const char *_Str1,const char *_Str2); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_strlwr) char *__cdecl strlwr(char *_Str); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_strnicmp) int __cdecl strnicmp(const char *_Str1,const char *_Str,size_t _MaxCount); +// __CRT_INLINE int __cdecl strncasecmp (const char *__sz1, const char *__sz2, size_t __sizeMaxCompare) { return _strnicmp (__sz1, __sz2, __sizeMaxCompare); } +// __CRT_INLINE int __cdecl strcasecmp (const char *__sz1, const char *__sz2) { return _stricmp (__sz1, __sz2); } + _CRTIMP _CRT_NONSTDC_DEPRECATE(_strnset) char *__cdecl strnset(char *_Str,int _Val,size_t _MaxCount); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_strrev) char *__cdecl strrev(char *_Str); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_strset) char *__cdecl strset(char *_Str,int _Val); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_strupr) char *__cdecl strupr(char *_Str); #endif #ifndef _WSTRING_DEFINED #define _WSTRING_DEFINED _CRTIMP wchar_t *__cdecl _wcsdup(const wchar_t *_Str); - wchar_t *__cdecl wcscat(wchar_t *_Dest,const wchar_t *_Source); - _CONST_RETURN wchar_t *__cdecl wcschr(const wchar_t *_Str,wchar_t _Ch); - int __cdecl wcscmp(const wchar_t *_Str1,const wchar_t *_Str2); - wchar_t *__cdecl wcscpy(wchar_t *_Dest,const wchar_t *_Source); - size_t __cdecl wcscspn(const wchar_t *_Str,const wchar_t *_Control); - size_t __cdecl wcslen(const wchar_t *_Str); - size_t __cdecl wcsnlen(const wchar_t *_Src,size_t _MaxCount); - wchar_t *wcsncat(wchar_t *_Dest,const wchar_t *_Source,size_t _Count); - int __cdecl wcsncmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount); - wchar_t *wcsncpy(wchar_t *_Dest,const wchar_t *_Source,size_t _Count); - _CONST_RETURN wchar_t *__cdecl wcspbrk(const wchar_t *_Str,const wchar_t *_Control); - _CONST_RETURN wchar_t *__cdecl wcsrchr(const wchar_t *_Str,wchar_t _Ch); - size_t __cdecl wcsspn(const wchar_t *_Str,const wchar_t *_Control); - _CONST_RETURN wchar_t *__cdecl wcsstr(const wchar_t *_Str,const wchar_t *_SubStr); - wchar_t *__cdecl wcstok(wchar_t *_Str,const wchar_t *_Delim); - _CRTIMP wchar_t *__cdecl _wcserror(int _ErrNum); - _CRTIMP wchar_t *__cdecl __wcserror(const wchar_t *_Str); + _CRTIMP wchar_t *__cdecl wcscat(wchar_t *_Dest,const wchar_t *_Source); + _CRTIMP _CONST_RETURN wchar_t *__cdecl wcschr(const wchar_t *_Str,wchar_t _Ch); + _CRTIMP int __cdecl wcscmp(const wchar_t *_Str1,const wchar_t *_Str2); + _CRTIMP wchar_t *__cdecl wcscpy(wchar_t *_Dest,const wchar_t *_Source); + _CRTIMP size_t __cdecl wcscspn(const wchar_t *_Str,const wchar_t *_Control); + _CRTIMP size_t __cdecl wcslen(const wchar_t *_Str); + _CRTIMP size_t __cdecl wcsnlen(const wchar_t *_Src,size_t _MaxCount); + _CRTIMP wchar_t *wcsncat(wchar_t *_Dest,const wchar_t *_Source,size_t _Count); + _CRTIMP int __cdecl wcsncmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount); + _CRTIMP wchar_t *wcsncpy(wchar_t *_Dest,const wchar_t *_Source,size_t _Count); + _CRTIMP _CONST_RETURN wchar_t *__cdecl wcspbrk(const wchar_t *_Str,const wchar_t *_Control); + _CRTIMP _CONST_RETURN wchar_t *__cdecl wcsrchr(const wchar_t *_Str,wchar_t _Ch); + _CRTIMP size_t __cdecl wcsspn(const wchar_t *_Str,const wchar_t *_Control); + _CRTIMP _CONST_RETURN wchar_t *__cdecl wcsstr(const wchar_t *_Str,const wchar_t *_SubStr); + _CRTIMP _CRT_INSECURE_DEPRECATE_CORE(wcstok_s) wchar_t *__cdecl wcstok(wchar_t *_Str,const wchar_t *_Delim); + _CRTIMP _CRT_INSECURE_DEPRECATE(_wcserror_s) wchar_t *__cdecl _wcserror(int _ErrNum); + _CRTIMP _CRT_INSECURE_DEPRECATE(__wcserror_s) wchar_t *__cdecl __wcserror(const wchar_t *_Str); _CRTIMP int __cdecl _wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2); _CRTIMP int __cdecl _wcsicmp_l(const wchar_t *_Str1,const wchar_t *_Str2,_locale_t _Locale); _CRTIMP int __cdecl _wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount); _CRTIMP int __cdecl _wcsnicmp_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale); - _CRTIMP wchar_t *__cdecl _wcsnset(wchar_t *_Str,wchar_t _Val,size_t _MaxCount); + _CRTIMP _CRT_INSECURE_DEPRECATE_CORE(_wcsnset_s) wchar_t *__cdecl _wcsnset(wchar_t *_Str,wchar_t _Val,size_t _MaxCount); _CRTIMP wchar_t *__cdecl _wcsrev(wchar_t *_Str); - _CRTIMP wchar_t *__cdecl _wcsset(wchar_t *_Str,wchar_t _Val); + _CRTIMP _CRT_INSECURE_DEPRECATE_CORE(_wcsset_s) wchar_t *__cdecl _wcsset(wchar_t *_Str,wchar_t _Val); _CRTIMP wchar_t *__cdecl _wcslwr(wchar_t *_String); _CRTIMP wchar_t *_wcslwr_l(wchar_t *_String,_locale_t _Locale); _CRTIMP wchar_t *__cdecl _wcsupr(wchar_t *_String); _CRTIMP wchar_t *_wcsupr_l(wchar_t *_String,_locale_t _Locale); - size_t __cdecl wcsxfrm(wchar_t *_Dst,const wchar_t *_Src,size_t _MaxCount); + _CRTIMP size_t __cdecl wcsxfrm(wchar_t *_Dst,const wchar_t *_Src,size_t _MaxCount); _CRTIMP size_t __cdecl _wcsxfrm_l(wchar_t *_Dst,const wchar_t *_Src,size_t _MaxCount,_locale_t _Locale); - int __cdecl wcscoll(const wchar_t *_Str1,const wchar_t *_Str2); + _CRTIMP int __cdecl wcscoll(const wchar_t *_Str1,const wchar_t *_Str2); _CRTIMP int __cdecl _wcscoll_l(const wchar_t *_Str1,const wchar_t *_Str2,_locale_t _Locale); _CRTIMP int __cdecl _wcsicoll(const wchar_t *_Str1,const wchar_t *_Str2); _CRTIMP int __cdecl _wcsicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,_locale_t _Locale); @@ -141,19 +141,20 @@ extern "C" { _CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale); #ifndef NO_OLDNAMES - wchar_t *__cdecl wcsdup(const wchar_t *_Str); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_wcsdup) wchar_t *__cdecl wcsdup(const wchar_t *_Str); #define wcswcs wcsstr - int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2); - int __cdecl wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount); - wchar_t *__cdecl wcsnset(wchar_t *_Str,wchar_t _Val,size_t _MaxCount); - wchar_t *__cdecl wcsrev(wchar_t *_Str); - wchar_t *__cdecl wcsset(wchar_t *_Str,wchar_t _Val); - wchar_t *__cdecl wcslwr(wchar_t *_Str); - wchar_t *__cdecl wcsupr(wchar_t *_Str); - int __cdecl wcsicoll(const wchar_t *_Str1,const wchar_t *_Str2); -#endif + _CRTIMP _CRT_NONSTDC_DEPRECATE(_wcsicmp) int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_wcsnicmp) int __cdecl wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_wcsnset) wchar_t *__cdecl wcsnset(wchar_t *_Str,wchar_t _Val,size_t _MaxCount); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_wcsrev) wchar_t *__cdecl wcsrev(wchar_t *_Str); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_wcsset) wchar_t *__cdecl wcsset(wchar_t *_Str,wchar_t _Val); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_wcslwr) wchar_t *__cdecl wcslwr(wchar_t *_Str); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_wcsupr) wchar_t *__cdecl wcsupr(wchar_t *_Str); + _CRTIMP _CRT_NONSTDC_DEPRECATE(_wcsicoll) int __cdecl wcsicoll(const wchar_t *_Str1,const wchar_t *_Str2); #endif +#endif /* !_WSTRING_DEFINED */ + #ifdef __cplusplus } #endif diff --git a/reactos/include/crt/sys/stat.h b/reactos/include/crt/sys/stat.h index 6d6f21489c3..22bfb0f32c7 100644 --- a/reactos/include/crt/sys/stat.h +++ b/reactos/include/crt/sys/stat.h @@ -11,7 +11,6 @@ #endif #include -#include #pragma pack(push,_CRT_PACKING) @@ -22,6 +21,7 @@ extern "C" { #include #ifndef _STAT_DEFINED +#define _STAT_DEFINED struct _stat32 { _dev_t st_dev; @@ -67,8 +67,7 @@ extern "C" { }; #endif -/* #if _INTEGRAL_MAX_BITS >= 64 */ - +#if _INTEGRAL_MAX_BITS >= 64 struct _stat32i64 { _dev_t st_dev; _ino_t st_ino; @@ -125,11 +124,10 @@ extern "C" { time_t st_ctime; }; -/* #endif */ +#endif /* _INTEGRAL_MAX_BITS >= 64 */ #define __stat64 _stat64 -#define _STAT_DEFINED #endif /* !_STAT_DEFINED */ #define _S_IFMT 0xF000 @@ -149,52 +147,16 @@ extern "C" { #if _INTEGRAL_MAX_BITS >= 64 _CRTIMP int __cdecl _fstat64(int _FileDes,struct _stat64 *_Stat); _CRTIMP int __cdecl _fstat32i64(int _FileDes,struct _stat32i64 *_Stat); - int __cdecl _fstat64i32(int _FileDes,struct _stat64i32 *_Stat); - __CRT_INLINE int __cdecl _fstat64i32(int _FileDes,struct _stat64i32 *_Stat) - { - struct _stat64 st; - int ret=_fstat64(_FileDes,&st); - _Stat->st_dev=st.st_dev; - _Stat->st_ino=st.st_ino; - _Stat->st_mode=st.st_mode; - _Stat->st_nlink=st.st_nlink; - _Stat->st_uid=st.st_uid; - _Stat->st_gid=st.st_gid; - _Stat->st_rdev=st.st_rdev; - _Stat->st_size=(_off_t) st.st_size; - _Stat->st_atime=st.st_atime; - _Stat->st_mtime=st.st_mtime; - _Stat->st_ctime=st.st_ctime; - return ret; - } - + _CRTIMP int __cdecl _fstat64i32(int _FileDes,struct _stat64i32 *_Stat); _CRTIMP int __cdecl _stat64(const char *_Name,struct _stat64 *_Stat); _CRTIMP int __cdecl _stat32i64(const char *_Name,struct _stat32i64 *_Stat); - int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat); - __CRT_INLINE int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat) - { - struct _stat64 st; - int ret=_stat64(_Name,&st); - _Stat->st_dev=st.st_dev; - _Stat->st_ino=st.st_ino; - _Stat->st_mode=st.st_mode; - _Stat->st_nlink=st.st_nlink; - _Stat->st_uid=st.st_uid; - _Stat->st_gid=st.st_gid; - _Stat->st_rdev=st.st_rdev; - _Stat->st_size=(_off_t) st.st_size; - _Stat->st_atime=st.st_atime; - _Stat->st_mtime=st.st_mtime; - _Stat->st_ctime=st.st_ctime; - return ret; - } -#endif + _CRTIMP int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat); +#endif /* _INTEGRAL_MAX_BITS >= 64 */ #ifndef _WSTAT_DEFINED #define _WSTAT_DEFINED _CRTIMP int __cdecl _wstat(const wchar_t *_Name,struct _stat *_Stat); _CRTIMP int __cdecl _wstat32(const wchar_t *_Name,struct _stat32 *_Stat); - _CRTIMP int __cdecl _wstati64(const wchar_t *_Name,struct _stati64 *_Stat); #if _INTEGRAL_MAX_BITS >= 64 _CRTIMP int __cdecl _wstat32i64(const wchar_t *_Name,struct _stat32i64 *_Stat); _CRTIMP int __cdecl _wstat64i32(const wchar_t *_Name,struct _stat64i32 *_Stat); @@ -202,6 +164,55 @@ extern "C" { #endif #endif + +/** Compatibility definitons *************************************************/ + +#if !defined(RC_INVOKED) + +#ifdef _USE_32BIT_TIME_T + #define _fstat32 _fstat + #define _fstat32i64 _fstati64 + #define _fstat64i32 _fstat64 +#else + #define _fstat64i32 _fstat + __CRT_INLINE int __cdecl _fstat32(int _FileDes, struct _stat32 *_Stat) + { + struct _stat _Stat64; + int ret = _fstat(_FileDes, &_Stat64); + _Stat->st_dev = _Stat64.st_dev; + _Stat->st_ino = _Stat64.st_ino; + _Stat->st_mode = _Stat64.st_mode; + _Stat->st_nlink = _Stat64.st_nlink; + _Stat->st_uid = _Stat64.st_uid; + _Stat->st_gid = _Stat64.st_gid; + _Stat->st_rdev = _Stat64.st_rdev; + _Stat->st_size = _Stat64.st_size; + _Stat->st_atime = _Stat64.st_atime; + _Stat->st_mtime = _Stat64.st_mtime; + _Stat->st_ctime = _Stat64.st_ctime; + return ret; + } + __CRT_INLINE int __cdecl _fstat32i64(int _FileDes, struct _stat32i64 *_Stat) + { + struct _stat64 _Stat64; + int ret = _fstat64(_FileDes, &_Stat64); + _Stat->st_dev = _Stat64.st_dev; + _Stat->st_ino = _Stat64.st_ino; + _Stat->st_mode = _Stat64.st_mode; + _Stat->st_nlink = _Stat64.st_nlink; + _Stat->st_uid = _Stat64.st_uid; + _Stat->st_gid = _Stat64.st_gid; + _Stat->st_rdev = _Stat64.st_rdev; + _Stat->st_size = _Stat64.st_size; + _Stat->st_atime = _Stat64.st_atime; + _Stat->st_mtime = _Stat64.st_mtime; + _Stat->st_ctime = _Stat64.st_ctime; + return ret; + } +#endif /* _USE_32BIT_TIME_T */ + +#endif /* !defined(RC_INVOKED) */ + #ifndef NO_OLDNAMES #define _S_IFBLK 0x3000 /* Block: Is this ever set under w32? */ @@ -231,13 +242,10 @@ extern "C" { #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) -#endif - -#if !defined (RC_INVOKED) && !defined (NO_OLDNAMES) -int __cdecl stat(const char *_Filename,struct stat *_Stat); -int __cdecl fstat(int _Desc,struct stat *_Stat); -int __cdecl wstat(const wchar_t *_Filename,struct stat *_Stat); - +#if !defined (RC_INVOKED) + _CRTIMP int __cdecl stat(const char *_Filename,struct stat *_Stat); + _CRTIMP int __cdecl fstat(int _Desc,struct stat *_Stat); + _CRTIMP int __cdecl wstat(const wchar_t *_Filename,struct stat *_Stat); __CRT_INLINE int __cdecl fstat(int _Desc,struct stat *_Stat) { return _fstat(_Desc,(struct _stat *)_Stat); } @@ -252,6 +260,9 @@ __CRT_INLINE int __cdecl wstat(const wchar_t *_Filename,struct stat *_Stat) { #endif +#endif /* !NO_OLDNAMES */ + + #ifdef __cplusplus } #endif diff --git a/reactos/include/crt/sys/timeb.h b/reactos/include/crt/sys/timeb.h index 28dd10cd4a1..574c9704f27 100644 --- a/reactos/include/crt/sys/timeb.h +++ b/reactos/include/crt/sys/timeb.h @@ -21,6 +21,13 @@ extern "C" { #ifndef _TIMEB_DEFINED #define _TIMEB_DEFINED + struct _timeb { + time_t time; + unsigned short millitm; + short timezone; + short dstflag; + }; + struct __timeb32 { __time32_t time; unsigned short millitm; @@ -46,41 +53,20 @@ extern "C" { }; #endif -#ifdef _USE_32BIT_TIME_T -#define _timeb __timeb32 -#define _ftime _ftime32 -#else -#define _timeb __timeb64 -#define _ftime _ftime64 -#endif -#endif +#endif /* !_TIMEB_DEFINED */ - _CRTIMP void __cdecl _ftime32(struct __timeb32 *_Time); + _CRTIMP void __cdecl _ftime(struct _timeb *_Time); + _CRT_INSECURE_DEPRECATE(_ftime32_s) _CRTIMP void __cdecl _ftime32(struct __timeb32 *_Time); + _CRTIMP errno_t __cdecl _ftime32_s(struct __timeb32 *_Time); #if _INTEGRAL_MAX_BITS >= 64 - _CRTIMP void __cdecl _ftime64(struct __timeb64 *_Time); + _CRT_INSECURE_DEPRECATE(_ftime64_s) _CRTIMP void __cdecl _ftime64(struct __timeb64 *_Time); + _CRTIMP errno_t __cdecl _ftime64_s(struct __timeb64 *_Time); #endif -#ifndef TIMESPEC_DEFINED -#define TIMESPEC_DEFINED -struct timespec { - time_t tv_sec; /* Seconds */ - long tv_nsec; /* Nanoseconds */ -}; - -struct itimerspec { - struct timespec it_interval; /* Timer period */ - struct timespec it_value; /* Timer expiration */ -}; -#endif - -#if !defined (RC_INVOKED) && !defined (NO_OLDNAMES) -#ifdef _USE_32BIT_TIME_T +#ifndef NO_OLDNAMES +#if !defined (RC_INVOKED) __CRT_INLINE void __cdecl ftime(struct timeb *_Tmb) { - _ftime32((struct __timeb32 *)_Tmb); -} -#else -__CRT_INLINE void __cdecl ftime(struct timeb *_Tmb) { - _ftime64((struct __timeb64 *)_Tmb); + _ftime((struct _timeb *)_Tmb); } #endif #endif @@ -92,4 +78,5 @@ __CRT_INLINE void __cdecl ftime(struct timeb *_Tmb) { #pragma pack(pop) #include -#endif + +#endif /* !_INC_TIMEB */ diff --git a/reactos/include/crt/sys/utime.h b/reactos/include/crt/sys/utime.h index 1f86c9b3e12..13925ec87fb 100644 --- a/reactos/include/crt/sys/utime.h +++ b/reactos/include/crt/sys/utime.h @@ -49,13 +49,13 @@ extern "C" { __time32_t modtime; }; #endif -#endif +#endif /* !_UTIMBUF_DEFINED */ - _CRTIMP int __cdecl _utime(const char *_Filename,struct _utimbuf *_Utimbuf); + _CRTIMP int __cdecl _utime(const char *_Filename,struct _utimbuf *_Time); _CRTIMP int __cdecl _utime32(const char *_Filename,struct __utimbuf32 *_Time); - _CRTIMP int __cdecl _futime(int _Desc,struct _utimbuf *_Utimbuf); + _CRTIMP int __cdecl _futime(int _FileDes,struct _utimbuf *_Time); _CRTIMP int __cdecl _futime32(int _FileDes,struct __utimbuf32 *_Time); - _CRTIMP int __cdecl _wutime(const wchar_t *_Filename,struct _utimbuf *_Utimbuf); + _CRTIMP int __cdecl _wutime(const wchar_t *_Filename,struct _utimbuf *_Time); _CRTIMP int __cdecl _wutime32(const wchar_t *_Filename,struct __utimbuf32 *_Time); #if _INTEGRAL_MAX_BITS >= 64 _CRTIMP int __cdecl _utime64(const char *_Filename,struct __utimbuf64 *_Time); @@ -63,38 +63,25 @@ extern "C" { _CRTIMP int __cdecl _wutime64(const wchar_t *_Filename,struct __utimbuf64 *_Time); #endif -// Do it like this to keep compatibility to MSVC while using msvcrt.dll #ifndef RC_INVOKED - #ifdef _USE_32BIT_TIME_T - __CRT_INLINE int __cdecl _utime32(const char *_Filename,struct __utimbuf32 *_Utimbuf) { - return _utime(_Filename,(struct _utimbuf *)_Utimbuf); - } - __CRT_INLINE int __cdecl _futime32(int _Desc,struct __utimbuf32 *_Utimbuf) { - return _futime(_Desc,(struct _utimbuf *)_Utimbuf); - } - __CRT_INLINE int __cdecl _wutime32(const wchar_t *_Filename,struct __utimbuf32 *_Utimbuf) { - return _wutime(_Filename,(struct _utimbuf *)_Utimbuf); - } - #else // !_USE_32BIT_TIME_T - #ifndef _WIN64 - __CRT_INLINE int __cdecl _utime(const char *_Filename,struct _utimbuf *_Utimbuf) { - return _utime64(_Filename,(struct __utimbuf64 *)_Utimbuf); - } - __CRT_INLINE int __cdecl _futime(int _Desc,struct _utimbuf *_Utimbuf) { - return _futime64(_Desc,(struct __utimbuf64 *)_Utimbuf); - } - __CRT_INLINE int __cdecl _wutime(const wchar_t *_Filename,struct _utimbuf *_Utimbuf) { - return _wutime64(_Filename,(struct __utimbuf64 *)_Utimbuf); - } - #endif - #endif // _USE_32BIT_TIME_T -#endif // RC_INVOKED +#ifdef _USE_32BIT_TIME_T +__CRT_INLINE int __cdecl _utime32(const char *_Filename,struct __utimbuf32 *_Utimbuf) { + return _utime(_Filename,(struct _utimbuf *)_Utimbuf); +} +__CRT_INLINE int __cdecl _futime32(int _Desc,struct __utimbuf32 *_Utimbuf) { + return _futime(_Desc,(struct _utimbuf *)_Utimbuf); +} +__CRT_INLINE int __cdecl _wutime32(const wchar_t *_Filename,struct __utimbuf32 *_Utimbuf) { + return _wutime(_Filename,(struct _utimbuf *)_Utimbuf); +} +#endif #ifndef NO_OLDNAMES __CRT_INLINE int __cdecl utime(const char *_Filename,struct utimbuf *_Utimbuf) { return _utime(_Filename,(struct _utimbuf *)_Utimbuf); } #endif +#endif #ifdef __cplusplus } diff --git a/reactos/include/crt/time.h b/reactos/include/crt/time.h index 711e2a83ded..d714fa62590 100644 --- a/reactos/include/crt/time.h +++ b/reactos/include/crt/time.h @@ -70,17 +70,6 @@ extern "C" { #endif #endif -/* -#ifdef _USE_32BIT_TIME_T -#define _localtime32 localtime -#define _difftime32 difftime -#define _ctime32 ctime -#define _gmtime32 gmtime -#define _mktime32 mktime -#define _time32 time -#endif -*/ - #ifndef _TM_DEFINED #define _TM_DEFINED struct tm { @@ -107,70 +96,88 @@ extern "C" { _CRTIMP errno_t __cdecl _get_dstbias(long *_Daylight_savings_bias); _CRTIMP errno_t __cdecl _get_timezone(long *_Timezone); _CRTIMP errno_t __cdecl _get_tzname(size_t *_ReturnValue,char *_Buffer,size_t _SizeInBytes,int _Index); - char *__cdecl asctime(const struct tm *_Tm); - _CRTIMP char *__cdecl _ctime32(const __time32_t *_Time); - clock_t __cdecl clock(void); + + _CRTIMP _CRT_INSECURE_DEPRECATE(asctime_s) char *__cdecl asctime(const struct tm *_Tm); + _CRTIMP _CRT_INSECURE_DEPRECATE(_ctime32_s) char *__cdecl _ctime32(const __time32_t *_Time); + _CRTIMP clock_t __cdecl clock(void); _CRTIMP double __cdecl _difftime32(__time32_t _Time1,__time32_t _Time2); - _CRTIMP struct tm *__cdecl _gmtime32(const __time32_t *_Time); - _CRTIMP struct tm *__cdecl _localtime32(const __time32_t *_Time); - size_t __cdecl strftime(char *_Buf,size_t _SizeInBytes,const char *_Format,const struct tm *_Tm); + _CRTIMP _CRT_INSECURE_DEPRECATE(_gmtime32_s) struct tm *__cdecl _gmtime32(const __time32_t *_Time); + _CRTIMP _CRT_INSECURE_DEPRECATE(_localtime32_s) struct tm *__cdecl _localtime32(const __time32_t *_Time); + _CRTIMP size_t __cdecl strftime(char *_Buf,size_t _SizeInBytes,const char *_Format,const struct tm *_Tm); _CRTIMP size_t __cdecl _strftime_l(char *_Buf,size_t _Max_size,const char *_Format,const struct tm *_Tm,_locale_t _Locale); _CRTIMP char *__cdecl _strdate(char *_Buffer); _CRTIMP char *__cdecl _strtime(char *_Buffer); _CRTIMP __time32_t __cdecl _time32(__time32_t *_Time); _CRTIMP __time32_t __cdecl _mktime32(struct tm *_Tm); _CRTIMP __time32_t __cdecl _mkgmtime32(struct tm *_Tm); -#if defined (_POSIX_) || defined(__GNUC__) - void __cdecl tzset(void); -#endif _CRTIMP void __cdecl _tzset(void); + _CRT_OBSOLETE(GetLocalTime) unsigned __cdecl _getsystime(struct tm *_Tm); + _CRT_OBSOLETE(GetLocalTime) unsigned __cdecl _setsystime(struct tm *_Tm,unsigned _MilliSec); + + _CRTIMP errno_t __cdecl _ctime32_s(char *_Buf,size_t _SizeInBytes,const __time32_t *_Time); + _CRTIMP errno_t __cdecl _gmtime32_s(struct tm *_Tm,const __time32_t *_Time); + _CRTIMP errno_t __cdecl _localtime32_s(struct tm *_Tm,const __time32_t *_Time); + _CRTIMP errno_t __cdecl _strdate_s(char *_Buf,size_t _SizeInBytes); + _CRTIMP errno_t __cdecl _strtime_s(char *_Buf ,size_t _SizeInBytes); #if _INTEGRAL_MAX_BITS >= 64 - double __cdecl _difftime64(__time64_t _Time1,__time64_t _Time2); - _CRTIMP char *__cdecl _ctime64(const __time64_t *_Time); - _CRTIMP struct tm *__cdecl _gmtime64(const __time64_t *_Time); - _CRTIMP struct tm *__cdecl _localtime64(const __time64_t *_Time); + _CRTIMP double __cdecl _difftime64(__time64_t _Time1,__time64_t _Time2); + _CRTIMP _CRT_INSECURE_DEPRECATE(_ctime64_s) char *__cdecl _ctime64(const __time64_t *_Time); + _CRTIMP _CRT_INSECURE_DEPRECATE(_gmtime64_s) struct tm *__cdecl _gmtime64(const __time64_t *_Time); + _CRTIMP _CRT_INSECURE_DEPRECATE(_localtime64_s) struct tm *__cdecl _localtime64(const __time64_t *_Time); _CRTIMP __time64_t __cdecl _mktime64(struct tm *_Tm); _CRTIMP __time64_t __cdecl _mkgmtime64(struct tm *_Tm); _CRTIMP __time64_t __cdecl _time64(__time64_t *_Time); + + _CRTIMP errno_t __cdecl _ctime64_s(char *_Buf,size_t _SizeInBytes,const __time64_t *_Time); + _CRTIMP errno_t __cdecl _gmtime64_s(struct tm *_Tm,const __time64_t *_Time); + _CRTIMP errno_t __cdecl _localtime64_s(struct tm *_Tm,const __time64_t *_Time); #endif - unsigned __cdecl _getsystime(struct tm *_Tm); - unsigned __cdecl _setsystime(struct tm *_Tm,unsigned _MilliSec); #ifndef _WTIME_DEFINED - _CRTIMP wchar_t *__cdecl _wasctime(const struct tm *_Tm); - _CRTIMP wchar_t *__cdecl _wctime32(const __time32_t *_Time); - size_t __cdecl wcsftime(wchar_t *_Buf,size_t _SizeInWords,const wchar_t *_Format,const struct tm *_Tm); +#define _WTIME_DEFINED + _CRTIMP _CRT_INSECURE_DEPRECATE(_wasctime_s) wchar_t *__cdecl _wasctime(const struct tm *_Tm); + _CRTIMP wchar_t *__cdecl _wctime(const time_t *_Time); + _CRTIMP _CRT_INSECURE_DEPRECATE(_wctime32_s) wchar_t *__cdecl _wctime32(const __time32_t *_Time); + _CRTIMP size_t __cdecl wcsftime(wchar_t *_Buf,size_t _SizeInWords,const wchar_t *_Format,const struct tm *_Tm); _CRTIMP size_t __cdecl _wcsftime_l(wchar_t *_Buf,size_t _SizeInWords,const wchar_t *_Format,const struct tm *_Tm,_locale_t _Locale); _CRTIMP wchar_t *__cdecl _wstrdate(wchar_t *_Buffer); _CRTIMP wchar_t *__cdecl _wstrtime(wchar_t *_Buffer); + + _CRTIMP errno_t __cdecl _wasctime_s(wchar_t *_Buf,size_t _SizeInWords,const struct tm *_Tm); + _CRTIMP errno_t __cdecl _wctime32_s(wchar_t *_Buf,size_t _SizeInWords,const __time32_t *_Time); + _CRTIMP errno_t __cdecl _wstrdate_s(wchar_t *_Buf,size_t _SizeInWords); + _CRTIMP errno_t __cdecl _wstrtime_s(wchar_t *_Buf,size_t _SizeInWords); #if _INTEGRAL_MAX_BITS >= 64 - _CRTIMP wchar_t *__cdecl _wctime64(const __time64_t *_Time); + _CRTIMP _CRT_INSECURE_DEPRECATE(_wctime64_s) wchar_t *__cdecl _wctime64(const __time64_t *_Time); + _CRTIMP errno_t __cdecl _wctime64_s(wchar_t *_Buf,size_t _SizeInWords,const __time64_t *_Time); #endif #if !defined (RC_INVOKED) && !defined (_INC_WTIME_INL) #define _INC_WTIME_INL #ifdef _USE_32BIT_TIME_T -__CRT_INLINE wchar_t *__cdecl _wctime(const time_t *_Time) { return _wctime32(_Time); } +/* Do it like this to be compatible to msvcrt.dll on 32 bit windows XP and before */ +__CRT_INLINE wchar_t *__cdecl _wctime32(const time_t *_Time) { return _wctime(_Time); } +__CRT_INLINE errno_t _wctime32_s(wchar_t *_Buffer, size_t _SizeInWords,const __time32_t *_Time) { return _wctime32_s(_Buffer, _SizeInWords, _Time); } #else __CRT_INLINE wchar_t *__cdecl _wctime(const time_t *_Time) { return _wctime64(_Time); } +__CRT_INLINE errno_t _wctime_s(wchar_t *_Buffer, size_t _SizeInWords,const time_t *_Time) { return _wctime64_s(_Buffer, _SizeInWords, _Time); } #endif #endif -#define _WTIME_DEFINED #endif /* !_WTIME_DEFINED */ + _CRTIMP double __cdecl difftime(time_t _Time1,time_t _Time2); + _CRTIMP char *__cdecl ctime(const time_t *_Time); + _CRTIMP struct tm *__cdecl gmtime(const time_t *_Time); + _CRTIMP struct tm *__cdecl localtime(const time_t *_Time); + _CRTIMP struct tm *__cdecl localtime_r(const time_t *_Time,struct tm *); + + _CRTIMP time_t __cdecl mktime(struct tm *_Tm); + _CRTIMP time_t __cdecl _mkgmtime(struct tm *_Tm); + _CRTIMP time_t __cdecl time(time_t *_Time); + #ifndef RC_INVOKED -double __cdecl difftime(time_t _Time1,time_t _Time2); -char *__cdecl ctime(const time_t *_Time); -struct tm *__cdecl gmtime(const time_t *_Time); -struct tm *__cdecl localtime(const time_t *_Time); -struct tm *__cdecl localtime_r(const time_t *_Time,struct tm *); - -_CRTIMP time_t __cdecl mktime(struct tm *_Tm); -_CRTIMP time_t __cdecl _mkgmtime(struct tm *_Tm); -_CRTIMP time_t __cdecl time(time_t *_Time); - #ifdef _USE_32BIT_TIME_T #if 0 __CRT_INLINE double __cdecl difftime(time_t _Time1,time_t _Time2) { return _difftime32(_Time1,_Time2); } diff --git a/reactos/include/crt/wchar.h b/reactos/include/crt/wchar.h index b2bf78b17d3..4e0cd7c8756 100644 --- a/reactos/include/crt/wchar.h +++ b/reactos/include/crt/wchar.h @@ -41,28 +41,19 @@ extern "C" { #endif #ifndef _STDIO_DEFINED -#ifdef _WIN64 _CRTIMP FILE *__cdecl __iob_func(void); -#else -#ifdef _MSVCRT_ -extern FILE _iob[]; /* A pointer to an array of FILE */ -#define __iob_func() (_iob) -#else -extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ -#define __iob_func() (*_imp___iob) + _CRTDATA(extern FILE _iob[];) +#ifdef _M_CEE_PURE #define _iob __iob_func() #endif #endif -#define _iob __iob_func() -#endif - #ifndef _STDSTREAM_DEFINED -#define stdin (&__iob_func()[0]) -#define stdout (&__iob_func()[1]) -#define stderr (&__iob_func()[2]) #define _STDSTREAM_DEFINED -#endif +#define stdin (&_iob[0]) +#define stdout (&_iob[1]) +#define stderr (&_iob[1]) +#endif /* !_STDSTREAM_DEFINED */ #ifndef _FSIZE_T_DEFINED typedef unsigned long _fsize_t; @@ -70,6 +61,15 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #endif #ifndef _WFINDDATA_T_DEFINED + struct _wfinddata_t { + unsigned attrib; + time_t time_create; + time_t time_access; + time_t time_write; + _fsize_t size; + wchar_t name[260]; + }; + struct _wfinddata32_t { unsigned attrib; __time32_t time_create; @@ -79,7 +79,15 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ wchar_t name[260]; }; -/* #if _INTEGRAL_MAX_BITS >= 64 */ +#if _INTEGRAL_MAX_BITS >= 64 + struct _wfinddatai64_t { + unsigned attrib; + time_t time_create; + time_t time_access; + time_t time_write; + __int64 size; + wchar_t name[260]; + }; struct _wfinddata32i64_t { unsigned attrib; @@ -107,28 +115,10 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ __int64 size; wchar_t name[260]; }; -/* #endif */ - -#ifdef _USE_32BIT_TIME_T -#define _wfinddata_t _wfinddata32_t -#define _wfinddatai64_t _wfinddata32i64_t - -#define _wfindfirst _wfindfirst32 -#define _wfindnext _wfindnext32 -#define _wfindfirsti64 _wfindfirst32i64 -#define _wfindnexti64 _wfindnext32i64 -#else -#define _wfinddata_t _wfinddata64i32_t -#define _wfinddatai64_t _wfinddata64_t - -#define _wfindfirst _wfindfirst64i32 -#define _wfindnext _wfindnext64i32 -#define _wfindfirsti64 _wfindfirst64 -#define _wfindnexti64 _wfindnext64 #endif #define _WFINDDATA_T_DEFINED -#endif +#endif /* !_WFINDDATA_T_DEFINED */ #ifndef NULL #ifdef __cplusplus @@ -139,58 +129,36 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #endif #ifndef _CRT_CTYPEDATA_DEFINED -#define _CRT_CTYPEDATA_DEFINED -#ifndef _CTYPE_DISABLE_MACROS - -#ifndef __PCTYPE_FUNC -#define __PCTYPE_FUNC __pctype_func() -#ifdef _MSVCRT_ -#define __pctype_func() (_pctype) -#else -#define __pctype_func() (*_imp___pctype) -#endif -#endif - -#ifndef _pctype -#ifdef _MSVCRT_ - extern unsigned short *_pctype; -#else - extern unsigned short **_imp___pctype; -#define _pctype (*_imp___pctype) -#endif -#endif -#endif -#endif +# define _CRT_CTYPEDATA_DEFINED +# ifndef _CTYPE_DISABLE_MACROS +# ifndef __PCTYPE_FUNC +# ifdef _DLL +# define __PCTYPE_FUNC __pctype_func() +# else +# define __PCTYPE_FUNC _pctype +# endif +# endif /* !__PCTYPE_FUNC */ + _CRTIMP const unsigned short * __cdecl __pctype_func(void); +# ifndef _M_CEE_PURE + _CRTDATA(extern unsigned short *_pctype); +# else +# define _pctype (__pctype_func()) +# endif /* !_M_CEE_PURE */ +# endif /* !_CTYPE_DISABLE_MACROS */ +#endif /* !_CRT_CTYPEDATA_DEFINED */ #ifndef _CRT_WCTYPEDATA_DEFINED #define _CRT_WCTYPEDATA_DEFINED -#ifndef _CTYPE_DISABLE_MACROS -#ifndef _wctype -#ifdef _MSVCRT_ - extern unsigned short *_wctype; -#else - extern unsigned short **_imp___wctype; -#define _wctype (*_imp___wctype) -#endif -#endif - -#ifdef _MSVCRT_ -#define __pwctype_func() (_pwctype) -#else -#define __pwctype_func() (*_imp___pwctype) -#endif - -#ifndef _pwctype -#ifdef _MSVCRT_ - extern unsigned short *_pwctype; -#else - extern unsigned short **_imp___pwctype; -#define _pwctype (*_imp___pwctype) -#endif -#endif - -#endif -#endif +# ifndef _CTYPE_DISABLE_MACROS + _CRTDATA(extern unsigned short *_wctype); + _CRTIMP const wctype_t * __cdecl __pwctype_func(void); +# ifndef _M_CEE_PURE + _CRTDATA(extern const wctype_t *_pwctype); +# else +# define _pwctype (__pwctype_func()) +# endif /* !_M_CEE_PURE */ +# endif /* !_CTYPE_DISABLE_MACROS */ +#endif /* !_CRT_WCTYPEDATA_DEFINED */ #define _UPPER 0x1 #define _LOWER 0x2 @@ -207,48 +175,46 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #ifndef _WCTYPE_DEFINED #define _WCTYPE_DEFINED - - int __cdecl iswalpha(wint_t _C); + _CRTIMP int __cdecl iswalpha(wint_t _C); _CRTIMP int __cdecl _iswalpha_l(wint_t _C,_locale_t _Locale); - int __cdecl iswupper(wint_t _C); + _CRTIMP int __cdecl iswupper(wint_t _C); _CRTIMP int __cdecl _iswupper_l(wint_t _C,_locale_t _Locale); - int __cdecl iswlower(wint_t _C); + _CRTIMP int __cdecl iswlower(wint_t _C); _CRTIMP int __cdecl _iswlower_l(wint_t _C,_locale_t _Locale); - int __cdecl iswdigit(wint_t _C); + _CRTIMP int __cdecl iswdigit(wint_t _C); _CRTIMP int __cdecl _iswdigit_l(wint_t _C,_locale_t _Locale); - int __cdecl iswxdigit(wint_t _C); + _CRTIMP int __cdecl iswxdigit(wint_t _C); _CRTIMP int __cdecl _iswxdigit_l(wint_t _C,_locale_t _Locale); - int __cdecl iswspace(wint_t _C); + _CRTIMP int __cdecl iswspace(wint_t _C); _CRTIMP int __cdecl _iswspace_l(wint_t _C,_locale_t _Locale); - int __cdecl iswpunct(wint_t _C); + _CRTIMP int __cdecl iswpunct(wint_t _C); _CRTIMP int __cdecl _iswpunct_l(wint_t _C,_locale_t _Locale); - int __cdecl iswalnum(wint_t _C); + _CRTIMP int __cdecl iswalnum(wint_t _C); _CRTIMP int __cdecl _iswalnum_l(wint_t _C,_locale_t _Locale); - int __cdecl iswprint(wint_t _C); + _CRTIMP int __cdecl iswprint(wint_t _C); _CRTIMP int __cdecl _iswprint_l(wint_t _C,_locale_t _Locale); - int __cdecl iswgraph(wint_t _C); + _CRTIMP int __cdecl iswgraph(wint_t _C); _CRTIMP int __cdecl _iswgraph_l(wint_t _C,_locale_t _Locale); - int __cdecl iswcntrl(wint_t _C); + _CRTIMP int __cdecl iswcntrl(wint_t _C); _CRTIMP int __cdecl _iswcntrl_l(wint_t _C,_locale_t _Locale); - int __cdecl iswascii(wint_t _C); - int __cdecl isleadbyte(int _C); + _CRTIMP int __cdecl iswascii(wint_t _C); + _CRTIMP int __cdecl isleadbyte(int _C); _CRTIMP int __cdecl _isleadbyte_l(int _C,_locale_t _Locale); - wint_t __cdecl towupper(wint_t _C); + _CRTIMP wint_t __cdecl towupper(wint_t _C); _CRTIMP wint_t __cdecl _towupper_l(wint_t _C,_locale_t _Locale); - wint_t __cdecl towlower(wint_t _C); + _CRTIMP wint_t __cdecl towlower(wint_t _C); _CRTIMP wint_t __cdecl _towlower_l(wint_t _C,_locale_t _Locale); - int __cdecl iswctype(wint_t _C,wctype_t _Type); + _CRTIMP int __cdecl iswctype(wint_t _C,wctype_t _Type); _CRTIMP int __cdecl _iswctype_l(wint_t _C,wctype_t _Type,_locale_t _Locale); _CRTIMP int __cdecl __iswcsymf(wint_t _C); _CRTIMP int __cdecl _iswcsymf_l(wint_t _C,_locale_t _Locale); _CRTIMP int __cdecl __iswcsym(wint_t _C); _CRTIMP int __cdecl _iswcsym_l(wint_t _C,_locale_t _Locale); - int __cdecl is_wctype(wint_t _C,wctype_t _Type); + _CRTIMP int __cdecl is_wctype(wint_t _C,wctype_t _Type); #endif #ifndef _WDIRECT_DEFINED #define _WDIRECT_DEFINED - _CRTIMP wchar_t *__cdecl _wgetcwd(wchar_t *_DstBuf,int _SizeInWords); _CRTIMP wchar_t *__cdecl _wgetdcwd(int _Drive,wchar_t *_DstBuf,int _SizeInWords); wchar_t *__cdecl _wgetdcwd_nolock(int _Drive,wchar_t *_DstBuf,int _SizeInWords); @@ -259,7 +225,6 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #ifndef _WIO_DEFINED #define _WIO_DEFINED - _CRTIMP int __cdecl _waccess(const wchar_t *_Filename,int _AccessMode); _CRTIMP int __cdecl _wchmod(const wchar_t *_Filename,int _Mode); _CRTIMP int __cdecl _wcreat(const wchar_t *_Filename,int _PermissionMode); @@ -270,10 +235,10 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ _CRTIMP wchar_t *__cdecl _wmktemp(wchar_t *_TemplateName); #if _INTEGRAL_MAX_BITS >= 64 _CRTIMP intptr_t __cdecl _wfindfirst32i64(const wchar_t *_Filename,struct _wfinddata32i64_t *_FindData); - intptr_t __cdecl _wfindfirst64i32(const wchar_t *_Filename,struct _wfinddata64i32_t *_FindData); + _CRTIMP intptr_t __cdecl _wfindfirst64i32(const wchar_t *_Filename,struct _wfinddata64i32_t *_FindData); _CRTIMP intptr_t __cdecl _wfindfirst64(const wchar_t *_Filename,struct _wfinddata64_t *_FindData); _CRTIMP int __cdecl _wfindnext32i64(intptr_t _FindHandle,struct _wfinddata32i64_t *_FindData); - int __cdecl _wfindnext64i32(intptr_t _FindHandle,struct _wfinddata64i32_t *_FindData); + _CRTIMP int __cdecl _wfindnext64i32(intptr_t _FindHandle,struct _wfinddata64i32_t *_FindData); _CRTIMP int __cdecl _wfindnext64(intptr_t _FindHandle,struct _wfinddata64_t *_FindData); #endif _CRTIMP errno_t __cdecl _wsopen_s(int *_FileHandle,const wchar_t *_Filename,int _OpenFlag,int _ShareFlag,int _PermissionFlag); @@ -293,7 +258,6 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #ifndef _WPROCESS_DEFINED #define _WPROCESS_DEFINED - _CRTIMP intptr_t __cdecl _wexecl(const wchar_t *_Filename,const wchar_t *_ArgList,...); _CRTIMP intptr_t __cdecl _wexecle(const wchar_t *_Filename,const wchar_t *_ArgList,...); _CRTIMP intptr_t __cdecl _wexeclp(const wchar_t *_Filename,const wchar_t *_ArgList,...); @@ -386,28 +350,6 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #ifndef _STAT_DEFINED #define _STAT_DEFINED -#ifdef _USE_32BIT_TIME_T -#ifdef WIN64 -#define _fstat _fstat32 -#define _stat _stat32 -#define _wstat _wstat32 -#else -#define _fstat32 _fstat -#define _stat32 _stat -#define _wstat32 _wstat -#endif -#define _fstati64 _fstat32i64 -#define _stati64 _stat32i64 -#define _wstati64 _wstat32i64 -#else -#define _fstat _fstat64i32 -#define _fstati64 _fstat64 -#define _stat _stat64i32 -#define _stati64 _stat64 -#define _wstat _wstat64i32 -#define _wstati64 _wstat64 -#endif - struct _stat32 { _dev_t st_dev; _ino_t st_ino; @@ -422,6 +364,20 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ __time32_t st_ctime; }; + struct _stat { + _dev_t st_dev; + _ino_t st_ino; + unsigned short st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + _off_t st_size; + time_t st_atime; + time_t st_mtime; + time_t st_ctime; + }; + #ifndef NO_OLDNAMES struct stat { _dev_t st_dev; @@ -489,11 +445,11 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ #ifndef _WSTAT_DEFINED #define _WSTAT_DEFINED - + _CRTIMP int __cdecl _wstat(const wchar_t *_Name,struct _stat *_Stat); _CRTIMP int __cdecl _wstat32(const wchar_t *_Name,struct _stat32 *_Stat); #if _INTEGRAL_MAX_BITS >= 64 _CRTIMP int __cdecl _wstat32i64(const wchar_t *_Name,struct _stat32i64 *_Stat); - int __cdecl _wstat64i32(const wchar_t *_Name,struct _stat64i32 *_Stat); + _CRTIMP int __cdecl _wstat64i32(const wchar_t *_Name,struct _stat64i32 *_Stat); _CRTIMP int __cdecl _wstat64(const wchar_t *_Name,struct _stat64 *_Stat); #endif #endif @@ -533,24 +489,24 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ _CRTIMP FILE *__cdecl _wfsopen(const wchar_t *_Filename,const wchar_t *_Mode,int _ShFlag); #endif - wint_t __cdecl fgetwc(FILE *_File); + _CRTIMP_ALT wint_t __cdecl fgetwc(FILE *_File); _CRTIMP wint_t __cdecl _fgetwchar(void); - wint_t __cdecl fputwc(wchar_t _Ch,FILE *_File); + _CRTIMP wint_t __cdecl fputwc(wchar_t _Ch,FILE *_File); _CRTIMP wint_t __cdecl _fputwchar(wchar_t _Ch); - wint_t __cdecl getwc(FILE *_File); - wint_t __cdecl getwchar(void); - wint_t __cdecl putwc(wchar_t _Ch,FILE *_File); - wint_t __cdecl putwchar(wchar_t _Ch); - wint_t __cdecl ungetwc(wint_t _Ch,FILE *_File); - wchar_t *__cdecl fgetws(wchar_t *_Dst,int _SizeInWords,FILE *_File); - int __cdecl fputws(const wchar_t *_Str,FILE *_File); + _CRTIMP wint_t __cdecl getwc(FILE *_File); + _CRTIMP wint_t __cdecl getwchar(void); + _CRTIMP wint_t __cdecl putwc(wchar_t _Ch,FILE *_File); + _CRTIMP wint_t __cdecl putwchar(wchar_t _Ch); + _CRTIMP_ALT wint_t __cdecl ungetwc(wint_t _Ch,FILE *_File); + _CRTIMP wchar_t *__cdecl fgetws(wchar_t *_Dst,int _SizeInWords,FILE *_File); + _CRTIMP int __cdecl fputws(const wchar_t *_Str,FILE *_File); _CRTIMP wchar_t *__cdecl _getws(wchar_t *_String); _CRTIMP int __cdecl _putws(const wchar_t *_Str); - int __cdecl fwprintf(FILE *_File,const wchar_t *_Format,...); - int __cdecl wprintf(const wchar_t *_Format,...); + _CRTIMP int __cdecl fwprintf(FILE *_File,const wchar_t *_Format,...); + _CRTIMP int __cdecl wprintf(const wchar_t *_Format,...); _CRTIMP int __cdecl _scwprintf(const wchar_t *_Format,...); - int __cdecl vfwprintf(FILE *_File,const wchar_t *_Format,va_list _ArgList); - int __cdecl vwprintf(const wchar_t *_Format,va_list _ArgList); + _CRTIMP int __cdecl vfwprintf(FILE *_File,const wchar_t *_Format,va_list _ArgList); + _CRTIMP int __cdecl vwprintf(const wchar_t *_Format,va_list _ArgList); _CRTIMP int __cdecl swprintf(wchar_t*, const wchar_t*, ...); _CRTIMP int __cdecl vswprintf(wchar_t*, const wchar_t*,va_list); _CRTIMP int __cdecl _swprintf_c(wchar_t *_DstBuf,size_t _SizeInWords,const wchar_t *_Format,...); @@ -558,11 +514,11 @@ extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */ _CRTIMP int __cdecl _snwprintf(wchar_t *_Dest,size_t _Count,const wchar_t *_Format,...); _CRTIMP int __cdecl _vsnwprintf(wchar_t *_Dest,size_t _Count,const wchar_t *_Format,va_list _Args); #ifndef __NO_ISOCEXT /* externs in libmingwex.a */ - int __cdecl snwprintf (wchar_t *s, size_t n, const wchar_t * format, ...); + _CRTIMP int __cdecl snwprintf (wchar_t *s, size_t n, const wchar_t * format, ...); __CRT_INLINE int __cdecl vsnwprintf (wchar_t *s, size_t n, const wchar_t *format, va_list arg) { return _vsnwprintf(s,n,format,arg); } - int __cdecl vwscanf (const wchar_t *, va_list); - int __cdecl vfwscanf (FILE *,const wchar_t *,va_list); - int __cdecl vswscanf (const wchar_t *,const wchar_t *,va_list); + _CRTIMP int __cdecl vwscanf (const wchar_t *, va_list); + _CRTIMP int __cdecl vfwscanf (FILE *,const wchar_t *,va_list); + _CRTIMP int __cdecl vswscanf (const wchar_t *,const wchar_t *,va_list); #endif _CRTIMP int __cdecl _fwprintf_p(FILE *_File,const wchar_t *_Format,...); _CRTIMP int __cdecl _wprintf_p(const wchar_t *_Format,...);