[2/2] include/msvcrt: Update a bit.

Alexander Scott-Johns alexander.scott.johns at googlemail.com
Wed Jun 16 17:58:51 CDT 2010


-------------- next part --------------
From 5280a696bc918298dde7f4a11f426c44e30a9ce8 Mon Sep 17 00:00:00 2001
From: Alexander Scott-Johns <alexander.scott.johns at googlemail.com>
Date: Wed, 16 Jun 2010 22:42:49 +0100
Subject: include/msvcrt: Update a bit.

---
 include/msvcrt/crtdefs.h |    5 ++++
 include/msvcrt/memory.h  |   13 +++++----
 include/msvcrt/stddef.h  |    2 -
 include/msvcrt/stdio.h   |   16 ++++++++++++
 include/msvcrt/stdlib.h  |    7 +++++
 include/msvcrt/string.h  |   58 +++++++++++++++++++++++++++-------------------
 include/msvcrt/wchar.h   |   16 ++++++++++++
 7 files changed, 85 insertions(+), 32 deletions(-)

diff --git a/include/msvcrt/crtdefs.h b/include/msvcrt/crtdefs.h
index 61116e9..1f51937 100644
--- a/include/msvcrt/crtdefs.h
+++ b/include/msvcrt/crtdefs.h
@@ -172,3 +172,8 @@ typedef unsigned short  wint_t;
 typedef unsigned short  wctype_t;
 #define _WCTYPE_T_DEFINED
 #endif
+
+#ifndef _ERRNO_T_DEFINED
+typedef int errno_t;
+#define _ERRNO_T_DEFINED
+#endif
diff --git a/include/msvcrt/memory.h b/include/msvcrt/memory.h
index 769fcfc..ecf13aa 100644
--- a/include/msvcrt/memory.h
+++ b/include/msvcrt/memory.h
@@ -17,12 +17,13 @@ extern "C" {
 #ifndef _CRT_MEMORY_DEFINED
 #define _CRT_MEMORY_DEFINED
 
-void* __cdecl memchr(const void*,int,size_t);
-int   __cdecl memcmp(const void*,const void*,size_t);
-void* __cdecl memcpy(void*,const void*,size_t);
-void* __cdecl memset(void*,int,size_t);
-void* __cdecl _memccpy(void*,const void*,int,unsigned int);
-int   __cdecl _memicmp(const void*,const void*,unsigned int);
+void*   __cdecl memchr(const void*,int,size_t);
+int     __cdecl memcmp(const void*,const void*,size_t);
+void*   __cdecl memcpy(void*,const void*,size_t);
+errno_t __cdecl memcpy_s(void*,size_t,const void*,size_t);
+void*   __cdecl memset(void*,int,size_t);
+void*   __cdecl _memccpy(void*,const void*,int,unsigned int);
+int     __cdecl _memicmp(const void*,const void*,unsigned int);
 
 static inline int memicmp(const void* s1, const void* s2, size_t len) { return _memicmp(s1, s2, len); }
 static inline void* memccpy(void *s1, const void *s2, int c, size_t n) { return _memccpy(s1, s2, c, n); }
diff --git a/include/msvcrt/stddef.h b/include/msvcrt/stddef.h
index 4f35351..0ceb65d 100644
--- a/include/msvcrt/stddef.h
+++ b/include/msvcrt/stddef.h
@@ -1,6 +1,4 @@
 /*
- * Time definitions
- *
  * Copyright 2000 Francois Gouget.
  *
  * This library is free software; you can redistribute it and/or
diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h
index b309ebb..dd4b26c 100644
--- a/include/msvcrt/stdio.h
+++ b/include/msvcrt/stdio.h
@@ -113,10 +113,12 @@ int    __cdecl _putw(int,FILE*);
 int    __cdecl _rmtmp(void);
 int    __cdecl _setmaxstdio(int);
 int    __cdecl _snprintf(char*,size_t,const char*,...);
+int    __cdecl _snprintf_s(char*,size_t,size_t,const char*,...);
 char*  __cdecl _tempnam(const char*,const char*);
 int    __cdecl _unlink(const char*);
 int    __cdecl _vscprintf(const char*,__ms_va_list);
 int    __cdecl _vsnprintf(char*,size_t,const char*,__ms_va_list);
+int    __cdecl _vsnprintf_s(char*,size_t,size_t,const char*,__ms_va_list);
 
 void   __cdecl clearerr(FILE*);
 int    __cdecl fclose(FILE*);
@@ -127,12 +129,14 @@ int    __cdecl fgetc(FILE*);
 int    __cdecl fgetpos(FILE*,fpos_t*);
 char*  __cdecl fgets(char*,int,FILE*);
 FILE*  __cdecl fopen(const char*,const char*);
+errno_t __cdecl fopen_s(FILE**,const char*,const char*);
 int    __cdecl fprintf(FILE*,const char*,...);
 int    __cdecl fputc(int,FILE*);
 int    __cdecl fputs(const char*,FILE*);
 size_t __cdecl fread(void*,size_t,size_t,FILE*);
 FILE*  __cdecl freopen(const char*,const char*,FILE*);
 int    __cdecl fscanf(FILE*,const char*,...);
+int    __cdecl fscanf_s(FILE*,const char*,...);
 int    __cdecl fseek(FILE*,__msvcrt_long,int);
 int    __cdecl fsetpos(FILE*,fpos_t*);
 __msvcrt_long __cdecl ftell(FILE*);
@@ -149,16 +153,20 @@ int    __cdecl remove(const char*);
 int    __cdecl rename(const char*,const char*);
 void   __cdecl rewind(FILE*);
 int    __cdecl scanf(const char*,...);
+int    __cdecl scanf_s(const char*,...);
 void   __cdecl setbuf(FILE*,char*);
 int    __cdecl setvbuf(FILE*,char*,int,size_t);
 int    __cdecl sprintf(char*,const char*,...);
+int    __cdecl sprintf_s(char*,size_t,const char*,...);
 int    __cdecl sscanf(const char*,const char*,...);
+int    __cdecl sscanf_s(const char*,const char*,...);
 FILE*  __cdecl tmpfile(void);
 char*  __cdecl tmpnam(char*);
 int    __cdecl ungetc(int,FILE*);
 int    __cdecl vfprintf(FILE*,const char*,__ms_va_list);
 int    __cdecl vprintf(const char*,__ms_va_list);
 int    __cdecl vsprintf(char*,const char*,__ms_va_list);
+int    __cdecl vsprintf_s(char*,size_t,const char*,__ms_va_list);
 
 #ifndef _WSTDIO_DEFINED
 #define _WSTDIO_DEFINED
@@ -167,10 +175,13 @@ wint_t   __cdecl _fputwchar(wint_t);
 wchar_t* __cdecl _getws(wchar_t*);
 int      __cdecl _putws(const wchar_t*);
 int      __cdecl _snwprintf(wchar_t*,size_t,const wchar_t*,...);
+int      __cdecl _snwprintf_s(wchar_t*,size_t,size_t,const wchar_t*,...);
 int      __cdecl _vscwprintf(const wchar_t*,__ms_va_list);
 int      __cdecl _vsnwprintf(wchar_t*,size_t,const wchar_t*,__ms_va_list);
+int      __cdecl _vsnwprintf_s(wchar_t*,size_t,size_t,const wchar_t*,__ms_va_list);
 FILE*    __cdecl _wfdopen(int,const wchar_t*);
 FILE*    __cdecl _wfopen(const wchar_t*,const wchar_t*);
+errno_t  __cdecl _wfopen_s(FILE**,const wchar_t*,const wchar_t*);
 FILE*    __cdecl _wfreopen(const wchar_t*,const wchar_t*,FILE*);
 FILE*    __cdecl _wfsopen(const wchar_t*,const wchar_t*,int);
 void     __cdecl _wperror(const wchar_t*);
@@ -186,6 +197,7 @@ int      __cdecl fputws(const wchar_t*,FILE*);
 int      __cdecl fwprintf(FILE*,const wchar_t*,...);
 int      __cdecl fputws(const wchar_t*,FILE*);
 int      __cdecl fwscanf(FILE*,const wchar_t*,...);
+int      __cdecl fwscanf_s(FILE*,const wchar_t*,...);
 wint_t   __cdecl getwc(FILE*);
 wint_t   __cdecl getwchar(void);
 wchar_t* __cdecl getws(wchar_t*);
@@ -193,13 +205,17 @@ wint_t   __cdecl putwc(wint_t,FILE*);
 wint_t   __cdecl putwchar(wint_t);
 int      __cdecl putws(const wchar_t*);
 int      __cdecl swprintf(wchar_t*,const wchar_t*,...);
+int      __cdecl swprintf_s(wchar_t*,size_t,const wchar_t*,...);
 int      __cdecl swscanf(const wchar_t*,const wchar_t*,...);
+int      __cdecl swscanf_s(const wchar_t*,const wchar_t*,...);
 wint_t   __cdecl ungetwc(wint_t,FILE*);
 int      __cdecl vfwprintf(FILE*,const wchar_t*,__ms_va_list);
 int      __cdecl vswprintf(wchar_t*,const wchar_t*,__ms_va_list);
+int      __cdecl vswprintf_s(wchar_t*,size_t,const wchar_t*,__ms_va_list);
 int      __cdecl vwprintf(const wchar_t*,__ms_va_list);
 int      __cdecl wprintf(const wchar_t*,...);
 int      __cdecl wscanf(const wchar_t*,...);
+int      __cdecl wscanf_s(const wchar_t*,...);
 #endif /* _WSTDIO_DEFINED */
 
 #endif /* _STDIO_DEFINED */
diff --git a/include/msvcrt/stdlib.h b/include/msvcrt/stdlib.h
index 35a9782..c6a3e00 100644
--- a/include/msvcrt/stdlib.h
+++ b/include/msvcrt/stdlib.h
@@ -161,6 +161,7 @@ void          __cdecl _splitpath(const char*,char*,char*,char*,char*);
 long double   __cdecl _strtold(const char*,char**);
 void          __cdecl _swab(char*,char*,int);
 char*         __cdecl _ui64toa(unsigned __int64,char*,int);
+errno_t       __cdecl _ui64toa_s(unsigned __int64,char*,size_t,int);
 char*         __cdecl _ultoa(__msvcrt_ulong,char*,int);
 
 void          __cdecl _exit(int);
@@ -183,6 +184,7 @@ void*         __cdecl malloc(size_t);
 int           __cdecl mblen(const char*,size_t);
 void          __cdecl perror(const char*);
 int           __cdecl rand(void);
+errno_t       __cdecl rand_s(unsigned int*);
 void*         __cdecl realloc(void*,size_t);
 void          __cdecl srand(unsigned int);
 double        __cdecl strtod(const char*,char**);
@@ -206,16 +208,21 @@ void          __cdecl _wperror(const wchar_t*);
 int           __cdecl _wputenv(const wchar_t*);
 void          __cdecl _wsearchenv(const wchar_t*,const wchar_t*,wchar_t*);
 void          __cdecl _wsplitpath(const wchar_t*,wchar_t*,wchar_t*,wchar_t*,wchar_t*);
+errno_t       __cdecl _wsplitpath_s(const wchar_t*,wchar_t*,size_t,wchar_t*,size_t,
+                                       wchar_t*,size_t,wchar_t*,size_t);
 int           __cdecl _wsystem(const wchar_t*);
+double        __cdecl _wtof(const wchar_t*);
 int           __cdecl _wtoi(const wchar_t*);
 __int64       __cdecl _wtoi64(const wchar_t*);
 __msvcrt_long __cdecl _wtol(const wchar_t*);
 
 size_t        __cdecl mbstowcs(wchar_t*,const char*,size_t);
+errno_t       __cdecl mbstowcs_s(size_t*,wchar_t*,size_t,const char*,size_t);
 int           __cdecl mbtowc(wchar_t*,const char*,size_t);
 double        __cdecl wcstod(const wchar_t*,wchar_t**);
 __msvcrt_long __cdecl wcstol(const wchar_t*,wchar_t**,int);
 size_t        __cdecl wcstombs(char*,const wchar_t*,size_t);
+errno_t       __cdecl wcstombs_s(size_t*,char*,size_t,const wchar_t*,size_t);
 __msvcrt_ulong __cdecl wcstoul(const wchar_t*,wchar_t**,int);
 int           __cdecl wctomb(char*,wchar_t);
 #endif /* _WSTDLIB_DEFINED */
diff --git a/include/msvcrt/string.h b/include/msvcrt/string.h
index 03bf4f8..3e60a4d 100644
--- a/include/msvcrt/string.h
+++ b/include/msvcrt/string.h
@@ -29,12 +29,13 @@ extern "C" {
 
 #ifndef _CRT_MEMORY_DEFINED
 #define _CRT_MEMORY_DEFINED
-void* __cdecl memchr(const void*,int,size_t);
-int   __cdecl memcmp(const void*,const void*,size_t);
-void* __cdecl memcpy(void*,const void*,size_t);
-void* __cdecl memset(void*,int,size_t);
-void* __cdecl _memccpy(void*,const void*,int,unsigned int);
-int   __cdecl _memicmp(const void*,const void*,unsigned int);
+void*   __cdecl memchr(const void*,int,size_t);
+int     __cdecl memcmp(const void*,const void*,size_t);
+void*   __cdecl memcpy(void*,const void*,size_t);
+errno_t __cdecl memcpy_s(void*,size_t,const void*,size_t);
+void*   __cdecl memset(void*,int,size_t);
+void*   __cdecl _memccpy(void*,const void*,int,unsigned int);
+int     __cdecl _memicmp(const void*,const void*,unsigned int);
 
 static inline int memicmp(const void* s1, const void* s2, size_t len) { return _memicmp(s1, s2, len); }
 static inline void* memccpy(void *s1, const void *s2, int c, size_t n) { return _memccpy(s1, s2, c, n); }
@@ -52,24 +53,30 @@ char* __cdecl _strrev(char*);
 char* __cdecl _strset(char*,int);
 char* __cdecl _strupr(char*);
 
-void*  __cdecl memmove(void*,const void*,size_t);
-char*  __cdecl strcat(char*,const char*);
-char*  __cdecl strchr(const char*,int);
-int    __cdecl strcmp(const char*,const char*);
-int    __cdecl strcoll(const char*,const char*);
-char*  __cdecl strcpy(char*,const char*);
-size_t __cdecl strcspn(const char*,const char*);
-char*  __cdecl strerror(int);
-size_t __cdecl strlen(const char*);
-char*  __cdecl strncat(char*,const char*,size_t);
-int    __cdecl strncmp(const char*,const char*,size_t);
-char*  __cdecl strncpy(char*,const char*,size_t);
-char*  __cdecl strpbrk(const char*,const char*);
-char*  __cdecl strrchr(const char*,int);
-size_t __cdecl strspn(const char*,const char*);
-char*  __cdecl strstr(const char*,const char*);
-char*  __cdecl strtok(char*,const char*);
-size_t __cdecl strxfrm(char*,const char*,size_t);
+void*   __cdecl memmove(void*,const void*,size_t);
+errno_t __cdecl memmove_s(void*,size_t,const void*,size_t);
+char*   __cdecl strcat(char*,const char*);
+errno_t __cdecl strcat_s(char*,size_t,const char*);
+char*   __cdecl strchr(const char*,int);
+int     __cdecl strcmp(const char*,const char*);
+int     __cdecl strcoll(const char*,const char*);
+char*   __cdecl strcpy(char*,const char*);
+errno_t __cdecl strcpy_s(char*,size_t,const char*);
+size_t  __cdecl strcspn(const char*,const char*);
+char*   __cdecl strerror(int);
+size_t  __cdecl strlen(const char*);
+char*   __cdecl strncat(char*,const char*,size_t);
+int     __cdecl strncmp(const char*,const char*,size_t);
+char*   __cdecl strncpy(char*,const char*,size_t);
+errno_t __cdecl strncpy_s(char*,size_t,const char*,size_t);
+size_t  __cdecl strnlen(const char*,size_t);
+char*   __cdecl strpbrk(const char*,const char*);
+char*   __cdecl strrchr(const char*,int);
+size_t  __cdecl strspn(const char*,const char*);
+char*   __cdecl strstr(const char*,const char*);
+char*   __cdecl strtok(char*,const char*);
+char*   __cdecl strtok_s(char*,const char*,char**);
+size_t  __cdecl strxfrm(char*,const char*,size_t);
 
 #ifndef _WSTRING_DEFINED
 #define _WSTRING_DEFINED
@@ -84,15 +91,18 @@ wchar_t* __cdecl _wcsset(wchar_t*,wchar_t);
 wchar_t* __cdecl _wcsupr(wchar_t*);
 
 wchar_t* __cdecl wcscat(wchar_t*,const wchar_t*);
+errno_t  __cdecl wcscat_s(wchar_t*,size_t,const wchar_t*);
 wchar_t* __cdecl wcschr(const wchar_t*,wchar_t);
 int      __cdecl wcscmp(const wchar_t*,const wchar_t*);
 int      __cdecl wcscoll(const wchar_t*,const wchar_t*);
 wchar_t* __cdecl wcscpy(wchar_t*,const wchar_t*);
+errno_t  __cdecl wcscpy_s(wchar_t*,size_t,const wchar_t*);
 size_t   __cdecl wcscspn(const wchar_t*,const wchar_t*);
 size_t   __cdecl wcslen(const wchar_t*);
 wchar_t* __cdecl wcsncat(wchar_t*,const wchar_t*,size_t);
 int      __cdecl wcsncmp(const wchar_t*,const wchar_t*,size_t);
 wchar_t* __cdecl wcsncpy(wchar_t*,const wchar_t*,size_t);
+errno_t  __cdecl wcsncpy_s(wchar_t*,size_t,const wchar_t*,size_t);
 wchar_t* __cdecl wcspbrk(const wchar_t*,const wchar_t*);
 wchar_t* __cdecl wcsrchr(const wchar_t*,wchar_t wcFor);
 size_t   __cdecl wcsspn(const wchar_t*,const wchar_t*);
diff --git a/include/msvcrt/wchar.h b/include/msvcrt/wchar.h
index 66d3a81..41ff3ff 100644
--- a/include/msvcrt/wchar.h
+++ b/include/msvcrt/wchar.h
@@ -275,10 +275,13 @@ wint_t   __cdecl _fputwchar(wint_t);
 wchar_t* __cdecl _getws(wchar_t*);
 int      __cdecl _putws(const wchar_t*);
 int      __cdecl _snwprintf(wchar_t*,size_t,const wchar_t*,...);
+int      __cdecl _snwprintf_s(wchar_t*,size_t,size_t,const wchar_t*,...);
 int      __cdecl _vscwprintf(const wchar_t*,__ms_va_list);
 int      __cdecl _vsnwprintf(wchar_t*,size_t,const wchar_t*,__ms_va_list);
+int      __cdecl _vsnwprintf_s(wchar_t*,size_t,size_t,const wchar_t*,__ms_va_list);
 FILE*    __cdecl _wfdopen(int,const wchar_t*);
 FILE*    __cdecl _wfopen(const wchar_t*,const wchar_t*);
+errno_t  __cdecl _wfopen_s(FILE**,const wchar_t*,const wchar_t*);
 FILE*    __cdecl _wfreopen(const wchar_t*,const wchar_t*,FILE*);
 FILE*    __cdecl _wfsopen(const wchar_t*,const wchar_t*,int);
 void     __cdecl _wperror(const wchar_t*);
@@ -294,6 +297,7 @@ int      __cdecl fputws(const wchar_t*,FILE*);
 int      __cdecl fwprintf(FILE*,const wchar_t*,...);
 int      __cdecl fputws(const wchar_t*,FILE*);
 int      __cdecl fwscanf(FILE*,const wchar_t*,...);
+int      __cdecl fwscanf_s(FILE*,const wchar_t*,...);
 wint_t   __cdecl getwc(FILE*);
 wint_t   __cdecl getwchar(void);
 wchar_t* __cdecl getws(wchar_t*);
@@ -301,13 +305,17 @@ wint_t   __cdecl putwc(wint_t,FILE*);
 wint_t   __cdecl putwchar(wint_t);
 int      __cdecl putws(const wchar_t*);
 int      __cdecl swprintf(wchar_t*,const wchar_t*,...);
+int      __cdecl swprintf_s(wchar_t*,size_t,const wchar_t*,...);
 int      __cdecl swscanf(const wchar_t*,const wchar_t*,...);
+int      __cdecl swscanf_s(const wchar_t*,const wchar_t*,...);
 wint_t   __cdecl ungetwc(wint_t,FILE*);
 int      __cdecl vfwprintf(FILE*,const wchar_t*,__ms_va_list);
 int      __cdecl vswprintf(wchar_t*,const wchar_t*,__ms_va_list);
+int      __cdecl vswprintf_s(wchar_t*,size_t,const wchar_t*,__ms_va_list);
 int      __cdecl vwprintf(const wchar_t*,__ms_va_list);
 int      __cdecl wprintf(const wchar_t*,...);
 int      __cdecl wscanf(const wchar_t*,...);
+int      __cdecl wscanf_s(const wchar_t*,...);
 #endif /* _WSTDIO_DEFINED */
 
 #ifndef _WSTDLIB_DEFINED
@@ -324,16 +332,21 @@ void     __cdecl _wperror(const wchar_t*);
 int      __cdecl _wputenv(const wchar_t*);
 void     __cdecl _wsearchenv(const wchar_t*,const wchar_t*,wchar_t*);
 void     __cdecl _wsplitpath(const wchar_t*,wchar_t*,wchar_t*,wchar_t*,wchar_t*);
+errno_t  __cdecl _wsplitpath_s(const wchar_t*,wchar_t*,size_t,wchar_t*,size_t,
+                                   wchar_t*,size_t,wchar_t*,size_t);
 int      __cdecl _wsystem(const wchar_t*);
+double   __cdecl _wtof(const wchar_t*);
 int      __cdecl _wtoi(const wchar_t*);
 __int64  __cdecl _wtoi64(const wchar_t*);
 __msvcrt_long __cdecl _wtol(const wchar_t*);
 
 size_t        __cdecl mbstowcs(wchar_t*,const char*,size_t);
+errno_t       __cdecl mbstowcs_s(size_t*,wchar_t*,size_t,const char*,size_t);
 int           __cdecl mbtowc(wchar_t*,const char*,size_t);
 double        __cdecl wcstod(const wchar_t*,wchar_t**);
 __msvcrt_long __cdecl wcstol(const wchar_t*,wchar_t**,int);
 size_t        __cdecl wcstombs(char*,const wchar_t*,size_t);
+errno_t       __cdecl wcstombs_s(size_t*,char*,size_t,const wchar_t*,size_t);
 __msvcrt_ulong __cdecl wcstoul(const wchar_t*,wchar_t**,int);
 int           __cdecl wctomb(char*,wchar_t);
 #endif /* _WSTDLIB_DEFINED */
@@ -351,15 +364,18 @@ wchar_t* __cdecl _wcsset(wchar_t*,wchar_t);
 wchar_t* __cdecl _wcsupr(wchar_t*);
 
 wchar_t* __cdecl wcscat(wchar_t*,const wchar_t*);
+errno_t  __cdecl wcscat_s(wchar_t*,size_t,const wchar_t*);
 wchar_t* __cdecl wcschr(const wchar_t*,wchar_t);
 int      __cdecl wcscmp(const wchar_t*,const wchar_t*);
 int      __cdecl wcscoll(const wchar_t*,const wchar_t*);
 wchar_t* __cdecl wcscpy(wchar_t*,const wchar_t*);
+errno_t  __cdecl wcscpy_s(wchar_t*,size_t,const wchar_t*);
 size_t   __cdecl wcscspn(const wchar_t*,const wchar_t*);
 size_t   __cdecl wcslen(const wchar_t*);
 wchar_t* __cdecl wcsncat(wchar_t*,const wchar_t*,size_t);
 int      __cdecl wcsncmp(const wchar_t*,const wchar_t*,size_t);
 wchar_t* __cdecl wcsncpy(wchar_t*,const wchar_t*,size_t);
+errno_t  __cdecl wcsncpy_s(wchar_t*,size_t,const wchar_t*,size_t);
 wchar_t* __cdecl wcspbrk(const wchar_t*,const wchar_t*);
 wchar_t* __cdecl wcsrchr(const wchar_t*,wchar_t wcFor);
 size_t   __cdecl wcsspn(const wchar_t*,const wchar_t*);
-- 
1.6.0.4


More information about the wine-patches mailing list