From: Piotr Caban piotr@codeweavers.com
--- include/msvcrt/corecrt.h | 2 ++ include/msvcrt/corecrt_io.h | 1 + include/msvcrt/corecrt_startup.h | 2 ++ include/msvcrt/corecrt_wio.h | 1 + include/msvcrt/corecrt_wstring.h | 1 + include/msvcrt/float.h | 1 + include/msvcrt/mbstring.h | 1 + include/msvcrt/search.h | 1 + include/msvcrt/stdio.h | 1 + include/msvcrt/stdlib.h | 7 ++----- 10 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/include/msvcrt/corecrt.h b/include/msvcrt/corecrt.h index 6fc7da0846c..b5bf31b728d 100644 --- a/include/msvcrt/corecrt.h +++ b/include/msvcrt/corecrt.h @@ -205,6 +205,8 @@ typedef unsigned int size_t; #define _SIZE_T_DEFINED #endif
+typedef size_t rsize_t; + #ifndef _TIME32_T_DEFINED typedef __msvcrt_long __time32_t; #define _TIME32_T_DEFINED diff --git a/include/msvcrt/corecrt_io.h b/include/msvcrt/corecrt_io.h index bd4f104ec2d..f779909fa93 100644 --- a/include/msvcrt/corecrt_io.h +++ b/include/msvcrt/corecrt_io.h @@ -94,6 +94,7 @@ extern "C" { #endif
_ACRTIMP int __cdecl _access(const char*,int); +_ACRTIMP errno_t __cdecl _access_s(const char*,int); _ACRTIMP int __cdecl _chmod(const char*,int); _ACRTIMP int __cdecl _chsize(int,__msvcrt_long); _ACRTIMP int __cdecl _chsize_s(int,__int64); diff --git a/include/msvcrt/corecrt_startup.h b/include/msvcrt/corecrt_startup.h index 58450b94ca0..c1c519da618 100644 --- a/include/msvcrt/corecrt_startup.h +++ b/include/msvcrt/corecrt_startup.h @@ -26,6 +26,8 @@ typedef void (__cdecl *_PVFV)(void); typedef int (__cdecl *_PIFV)(void); typedef void (__cdecl *_PVFI)(int);
+_ACRTIMP int __cdecl _initterm_e(_PIFV *, _PIFV *); + typedef struct _onexit_table_t { _PVFV *_first; _PVFV *_last; diff --git a/include/msvcrt/corecrt_wio.h b/include/msvcrt/corecrt_wio.h index a7982eb4d11..03fbc9bd94e 100644 --- a/include/msvcrt/corecrt_wio.h +++ b/include/msvcrt/corecrt_wio.h @@ -101,6 +101,7 @@ _ACRTIMP wchar_t* __cdecl _wmktemp(wchar_t*); _ACRTIMP int __cdecl _wopen(const wchar_t*,int,...); _ACRTIMP int __cdecl _wrename(const wchar_t*,const wchar_t*); _ACRTIMP int __cdecl _wsopen(const wchar_t*,int,int,...); +_ACRTIMP errno_t __cdecl _wsopen_s(int*,const wchar_t*,int,int,int); _ACRTIMP int __cdecl _wunlink(const wchar_t*);
#ifdef __cplusplus diff --git a/include/msvcrt/corecrt_wstring.h b/include/msvcrt/corecrt_wstring.h index c72d88d2f43..9f6a63c5fc7 100644 --- a/include/msvcrt/corecrt_wstring.h +++ b/include/msvcrt/corecrt_wstring.h @@ -31,6 +31,7 @@ static inline void* memccpy(void *s1, const void *s2, int c, size_t n) { return _ACRTIMP void* __cdecl memmove(void*,const void*,size_t);
_ACRTIMP wchar_t* __cdecl _wcsdup(const wchar_t*) __WINE_DEALLOC(free) __WINE_MALLOC; +_ACRTIMP wchar_t* __cdecl _wcserror(int); _ACRTIMP int __cdecl _wcsicmp(const wchar_t*,const wchar_t*); _ACRTIMP int __cdecl _wcsicmp_l(const wchar_t*,const wchar_t*, _locale_t); _ACRTIMP int __cdecl _wcsicoll(const wchar_t*,const wchar_t*); diff --git a/include/msvcrt/float.h b/include/msvcrt/float.h index c24ac3c3aee..89a062866a5 100644 --- a/include/msvcrt/float.h +++ b/include/msvcrt/float.h @@ -153,6 +153,7 @@ _ACRTIMP double __cdecl _nextafter(double, double); _ACRTIMP int __cdecl _finite(double); _ACRTIMP int __cdecl _isnan(double); _ACRTIMP int __cdecl _fpclass(double); +_ACRTIMP int * __cdecl __fpecode(void);
#ifdef __x86_64__ _ACRTIMP float __cdecl _scalbf(float, __msvcrt_long); diff --git a/include/msvcrt/mbstring.h b/include/msvcrt/mbstring.h index f51d8ed6bc3..68df7a64229 100644 --- a/include/msvcrt/mbstring.h +++ b/include/msvcrt/mbstring.h @@ -110,6 +110,7 @@ _ACRTIMP unsigned char* __cdecl _mbsspnp(const unsigned char*,const unsigned cha _ACRTIMP unsigned char* __cdecl _mbsstr(const unsigned char*,const unsigned char*); _ACRTIMP unsigned char* __cdecl _mbstok(unsigned char*,const unsigned char*); _ACRTIMP unsigned char* __cdecl _mbstok_l(unsigned char*,const unsigned char*,_locale_t); +_ACRTIMP unsigned char* __cdecl _mbstok_s(unsigned char*,const unsigned char*,unsigned char**); _ACRTIMP unsigned char* __cdecl _mbsupr(unsigned char*); _ACRTIMP errno_t __cdecl _mbsupr_s(unsigned char*, size_t);
diff --git a/include/msvcrt/search.h b/include/msvcrt/search.h index 4abb806fa25..1bfd6a2c99a 100644 --- a/include/msvcrt/search.h +++ b/include/msvcrt/search.h @@ -29,6 +29,7 @@ extern "C" { _ACRTIMP void* __cdecl _lfind(const void*,const void*,unsigned int*,unsigned int,int (__cdecl *)(const void*,const void*)); _ACRTIMP void* __cdecl _lsearch(const void*,void*,unsigned int*,unsigned int,int (__cdecl *)(const void*,const void*)); _ACRTIMP void* __cdecl bsearch(const void*,const void*,size_t,size_t,int (__cdecl *)(const void*,const void*)); +_ACRTIMP void* __cdecl bsearch_s(const void*,const void*,rsize_t,rsize_t,int (__cdecl *)(void*,const void*,const void*),void*); _ACRTIMP void __cdecl qsort(void*,size_t,size_t,int (__cdecl *)(const void*,const void*));
#ifdef __cplusplus diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h index 15d264f1b4f..c402a9a299e 100644 --- a/include/msvcrt/stdio.h +++ b/include/msvcrt/stdio.h @@ -143,6 +143,7 @@ _ACRTIMP void __cdecl rewind(FILE*); _ACRTIMP void __cdecl setbuf(FILE*,char*); _ACRTIMP int __cdecl setvbuf(FILE*,char*,int,size_t); _ACRTIMP FILE* __cdecl tmpfile(void); +_ACRTIMP errno_t __cdecl tmpfile_s(FILE**); _ACRTIMP char* __cdecl tmpnam(char*); _ACRTIMP int __cdecl ungetc(int,FILE*); _ACRTIMP unsigned int __cdecl _get_output_format(void); diff --git a/include/msvcrt/stdlib.h b/include/msvcrt/stdlib.h index 67c78b0cfee..875dfb3154f 100644 --- a/include/msvcrt/stdlib.h +++ b/include/msvcrt/stdlib.h @@ -134,11 +134,8 @@ _ACRTIMP int* __cdecl _errno(void); #define errno (*_errno()) _ACRTIMP int* __cdecl __sys_nerr(void); #define _sys_nerr (*__sys_nerr()) - -/* FIXME: We need functions to access these: - * int _sys_nerr; - * char** _sys_errlist; - */ +_ACRTIMP char** __cdecl __sys_errlist(void); +#define _sys_errlist (__sys_errlist())
_ACRTIMP errno_t __cdecl _get_doserrno(int*); _ACRTIMP errno_t __cdecl _get_errno(int*);