include: Add corecrt_wstring.h header.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2020-02-25 16:51:37 +01:00 committed by Alexandre Julliard
parent 6b6c3ec728
commit e52ca3d68b
4 changed files with 91 additions and 131 deletions

View File

@ -429,6 +429,7 @@ SOURCES = \
msvcrt/corecrt_wio.h \
msvcrt/corecrt_wstdio.h \
msvcrt/corecrt_wstdlib.h \
msvcrt/corecrt_wstring.h \
msvcrt/corecrt_wtime.h \
msvcrt/crtdbg.h \
msvcrt/crtdefs.h \

View File

@ -0,0 +1,88 @@
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the Wine project.
*/
#ifndef _WSTRING_DEFINED
#define _WSTRING_DEFINED
#include <corecrt.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _CRT_MEMORY_DEFINED
#define _CRT_MEMORY_DEFINED
_ACRTIMP void* __cdecl memchr(const void*,int,size_t);
_ACRTIMP int __cdecl memcmp(const void*,const void*,size_t);
_ACRTIMP void* __cdecl memcpy(void*,const void*,size_t);
_ACRTIMP errno_t __cdecl memcpy_s(void*,size_t,const void*,size_t);
_ACRTIMP void* __cdecl memset(void*,int,size_t);
_ACRTIMP void* __cdecl _memccpy(void*,const void*,int,unsigned int);
_ACRTIMP 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); }
#endif /* _CRT_MEMORY_DEFINED */
_ACRTIMP void* __cdecl memmove(void*,const void*,size_t);
_ACRTIMP wchar_t* __cdecl _wcsdup(const wchar_t*);
_ACRTIMP int __cdecl _wcsicmp(const wchar_t*,const wchar_t*);
_ACRTIMP int __cdecl _wcsicoll(const wchar_t*,const wchar_t*);
_ACRTIMP int __cdecl _wcsicoll_l(const wchar_t*, const wchar_t*, _locale_t);
_ACRTIMP wchar_t* __cdecl _wcslwr(wchar_t*);
_ACRTIMP errno_t __cdecl _wcslwr_s(wchar_t*, size_t);
_ACRTIMP int __cdecl _wcscoll_l(const wchar_t*, const wchar_t*, _locale_t);
_ACRTIMP int __cdecl _wcsncoll(const wchar_t*, const wchar_t*, size_t);
_ACRTIMP int __cdecl _wcsncoll_l(const wchar_t*, const wchar_t*, size_t, _locale_t);
_ACRTIMP int __cdecl _wcsnicmp(const wchar_t*,const wchar_t*,size_t);
_ACRTIMP int __cdecl _wcsnicoll(const wchar_t*,const wchar_t*,size_t);
_ACRTIMP int __cdecl _wcsnicoll_l(const wchar_t*, const wchar_t*, size_t, _locale_t);
_ACRTIMP size_t __cdecl _wcsnlen(const wchar_t*,size_t);
_ACRTIMP wchar_t* __cdecl _wcsnset(wchar_t*,wchar_t,size_t);
_ACRTIMP wchar_t* __cdecl _wcsrev(wchar_t*);
_ACRTIMP wchar_t* __cdecl _wcsset(wchar_t*,wchar_t);
_ACRTIMP wchar_t* __cdecl _wcsupr(wchar_t*);
_ACRTIMP errno_t __cdecl _wcsupr_s(wchar_t*, size_t);
_ACRTIMP wchar_t* __cdecl wcscat(wchar_t*,const wchar_t*);
_ACRTIMP errno_t __cdecl wcscat_s(wchar_t*,size_t,const wchar_t*);
_ACRTIMP wchar_t* __cdecl wcschr(const wchar_t*,wchar_t);
_ACRTIMP int __cdecl wcscmp(const wchar_t*,const wchar_t*);
_ACRTIMP int __cdecl wcscoll(const wchar_t*,const wchar_t*);
_ACRTIMP wchar_t* __cdecl wcscpy(wchar_t*,const wchar_t*);
_ACRTIMP errno_t __cdecl wcscpy_s(wchar_t*,size_t,const wchar_t*);
_ACRTIMP size_t __cdecl wcscspn(const wchar_t*,const wchar_t*);
_ACRTIMP size_t __cdecl wcslen(const wchar_t*);
_ACRTIMP wchar_t* __cdecl wcsncat(wchar_t*,const wchar_t*,size_t);
_ACRTIMP int __cdecl wcsncmp(const wchar_t*,const wchar_t*,size_t);
_ACRTIMP wchar_t* __cdecl wcsncpy(wchar_t*,const wchar_t*,size_t);
_ACRTIMP errno_t __cdecl wcsncpy_s(wchar_t*,size_t,const wchar_t*,size_t);
_ACRTIMP size_t __cdecl wcsnlen(const wchar_t*,size_t);
_ACRTIMP wchar_t* __cdecl wcspbrk(const wchar_t*,const wchar_t*);
_ACRTIMP wchar_t* __cdecl wcsrchr(const wchar_t*,wchar_t wcFor);
_ACRTIMP size_t __cdecl wcsspn(const wchar_t*,const wchar_t*);
_ACRTIMP wchar_t* __cdecl wcsstr(const wchar_t*,const wchar_t*);
_ACRTIMP wchar_t* __cdecl wcstok_s(wchar_t*,const wchar_t*,wchar_t**);
_ACRTIMP size_t __cdecl wcsxfrm(wchar_t*,const wchar_t*,size_t);
#ifdef _UCRT
_ACRTIMP wchar_t* __cdecl wcstok(wchar_t*,const wchar_t*,wchar_t**);
static inline wchar_t* _wcstok(wchar_t* str, const wchar_t *delim) { return wcstok(str, delim, NULL); }
# ifdef __cplusplus
extern "C++" inline wchar_t* wcstok(wchar_t* str, const wchar_t *delim) { return wcstok(str, delim, NULL); }
# elif defined(_CRT_NON_CONFORMING_WCSTOK)
# define wcstok _wcstok
# endif
#else /* _UCRT */
_ACRTIMP wchar_t* __cdecl wcstok(wchar_t*,const wchar_t*);
# define _wcstok wcstok
#endif /* _UCRT */
#ifdef __cplusplus
}
#endif
#endif /* _WSTRING_DEFINED */

View File

@ -8,7 +8,7 @@
#ifndef __WINE_STRING_H
#define __WINE_STRING_H
#include <corecrt.h>
#include <corecrt_wstring.h>
#ifndef _NLSCMP_DEFINED
#define _NLSCMPERROR ((unsigned int)0x7fffffff)
@ -19,20 +19,6 @@
extern "C" {
#endif
#ifndef _CRT_MEMORY_DEFINED
#define _CRT_MEMORY_DEFINED
_ACRTIMP void* __cdecl memchr(const void*,int,size_t);
_ACRTIMP int __cdecl memcmp(const void*,const void*,size_t);
_ACRTIMP void* __cdecl memcpy(void*,const void*,size_t);
_ACRTIMP errno_t __cdecl memcpy_s(void*,size_t,const void*,size_t);
_ACRTIMP void* __cdecl memset(void*,int,size_t);
_ACRTIMP void* __cdecl _memccpy(void*,const void*,int,unsigned int);
_ACRTIMP 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); }
#endif /* _CRT_MEMORY_DEFINED */
_ACRTIMP int __cdecl _strcmpi(const char*,const char*);
_ACRTIMP int __cdecl _strcoll_l(const char*, const char*, _locale_t);
_ACRTIMP char* __cdecl _strdup(const char*);
@ -54,7 +40,6 @@ _ACRTIMP char* __cdecl _strset(char*,int);
_ACRTIMP char* __cdecl _strupr(char*);
_ACRTIMP errno_t __cdecl _strupr_s(char *, size_t);
_ACRTIMP void* __cdecl memmove(void*,const void*,size_t);
_ACRTIMP errno_t __cdecl memmove_s(void*,size_t,const void*,size_t);
_ACRTIMP char* __cdecl strcat(char*,const char*);
_ACRTIMP errno_t __cdecl strcat_s(char*,size_t,const char*);
@ -80,63 +65,6 @@ _ACRTIMP char* __cdecl strtok(char*,const char*);
_ACRTIMP char* __cdecl strtok_s(char*,const char*,char**);
_ACRTIMP size_t __cdecl strxfrm(char*,const char*,size_t);
#ifndef _WSTRING_DEFINED
#define _WSTRING_DEFINED
_ACRTIMP wchar_t* __cdecl _wcsdup(const wchar_t*);
_ACRTIMP int __cdecl _wcsicmp(const wchar_t*,const wchar_t*);
_ACRTIMP int __cdecl _wcsicoll(const wchar_t*,const wchar_t*);
_ACRTIMP int __cdecl _wcsicoll_l(const wchar_t*, const wchar_t*, _locale_t);
_ACRTIMP wchar_t* __cdecl _wcslwr(wchar_t*);
_ACRTIMP errno_t __cdecl _wcslwr_s(wchar_t*, size_t);
_ACRTIMP int __cdecl _wcscoll_l(const wchar_t*, const wchar_t*, _locale_t);
_ACRTIMP int __cdecl _wcsncoll(const wchar_t*, const wchar_t*, size_t);
_ACRTIMP int __cdecl _wcsncoll_l(const wchar_t*, const wchar_t*, size_t, _locale_t);
_ACRTIMP int __cdecl _wcsnicmp(const wchar_t*,const wchar_t*,size_t);
_ACRTIMP int __cdecl _wcsnicoll(const wchar_t*,const wchar_t*,size_t);
_ACRTIMP int __cdecl _wcsnicoll_l(const wchar_t*, const wchar_t*, size_t, _locale_t);
_ACRTIMP size_t __cdecl _wcsnlen(const wchar_t*,size_t);
_ACRTIMP wchar_t* __cdecl _wcsnset(wchar_t*,wchar_t,size_t);
_ACRTIMP wchar_t* __cdecl _wcsrev(wchar_t*);
_ACRTIMP wchar_t* __cdecl _wcsset(wchar_t*,wchar_t);
_ACRTIMP wchar_t* __cdecl _wcsupr(wchar_t*);
_ACRTIMP errno_t __cdecl _wcsupr_s(wchar_t*, size_t);
_ACRTIMP wchar_t* __cdecl wcscat(wchar_t*,const wchar_t*);
_ACRTIMP errno_t __cdecl wcscat_s(wchar_t*,size_t,const wchar_t*);
_ACRTIMP wchar_t* __cdecl wcschr(const wchar_t*,wchar_t);
_ACRTIMP int __cdecl wcscmp(const wchar_t*,const wchar_t*);
_ACRTIMP int __cdecl wcscoll(const wchar_t*,const wchar_t*);
_ACRTIMP wchar_t* __cdecl wcscpy(wchar_t*,const wchar_t*);
_ACRTIMP errno_t __cdecl wcscpy_s(wchar_t*,size_t,const wchar_t*);
_ACRTIMP size_t __cdecl wcscspn(const wchar_t*,const wchar_t*);
_ACRTIMP size_t __cdecl wcslen(const wchar_t*);
_ACRTIMP wchar_t* __cdecl wcsncat(wchar_t*,const wchar_t*,size_t);
_ACRTIMP int __cdecl wcsncmp(const wchar_t*,const wchar_t*,size_t);
_ACRTIMP wchar_t* __cdecl wcsncpy(wchar_t*,const wchar_t*,size_t);
_ACRTIMP errno_t __cdecl wcsncpy_s(wchar_t*,size_t,const wchar_t*,size_t);
_ACRTIMP size_t __cdecl wcsnlen(const wchar_t*,size_t);
_ACRTIMP wchar_t* __cdecl wcspbrk(const wchar_t*,const wchar_t*);
_ACRTIMP wchar_t* __cdecl wcsrchr(const wchar_t*,wchar_t wcFor);
_ACRTIMP size_t __cdecl wcsspn(const wchar_t*,const wchar_t*);
_ACRTIMP wchar_t* __cdecl wcsstr(const wchar_t*,const wchar_t*);
_ACRTIMP wchar_t* __cdecl wcstok_s(wchar_t*,const wchar_t*,wchar_t**);
_ACRTIMP size_t __cdecl wcsxfrm(wchar_t*,const wchar_t*,size_t);
#ifdef _UCRT
_ACRTIMP wchar_t* __cdecl wcstok(wchar_t*,const wchar_t*,wchar_t**);
static inline wchar_t* _wcstok(wchar_t* str, const wchar_t *delim) { return wcstok(str, delim, NULL); }
# ifdef __cplusplus
extern "C++" inline wchar_t* wcstok(wchar_t* str, const wchar_t *delim) { return wcstok(str, delim, NULL); }
# elif defined(_CRT_NON_CONFORMING_WCSTOK)
# define wcstok _wcstok
# endif
#else /* _UCRT */
_ACRTIMP wchar_t* __cdecl wcstok(wchar_t*,const wchar_t*);
# define _wcstok wcstok
#endif /* _UCRT */
#endif /* _WSTRING_DEFINED */
#ifdef __cplusplus
}
#endif

View File

@ -12,8 +12,8 @@
#include <corecrt_wio.h>
#include <corecrt_wstdio.h>
#include <corecrt_wstdlib.h>
#include <corecrt_wstring.h>
#include <corecrt_wtime.h>
#include <string.h>
#include <sys/stat.h>
#ifdef __cplusplus
@ -62,63 +62,6 @@ int __cdecl _wspawnvpe(int,const wchar_t*,const wchar_t* const *,const wcha
int __cdecl _wsystem(const wchar_t*);
#endif /* _WPROCESS_DEFINED */
#ifndef _WSTRING_DEFINED
#define _WSTRING_DEFINED
int __cdecl _wcscoll_l(const wchar_t*,const wchar_t*,_locale_t);
wchar_t* __cdecl _wcsdup(const wchar_t*);
int __cdecl _wcsicmp(const wchar_t*,const wchar_t*);
int __cdecl _wcsicoll(const wchar_t*,const wchar_t*);
int __cdecl _wcsicoll_l(const wchar_t*,const wchar_t*,_locale_t);
wchar_t* __cdecl _wcslwr(wchar_t*);
errno_t __cdecl _wcslwr_s(wchar_t*, size_t);
int __cdecl _wcsncoll(const wchar_t*,const wchar_t*,size_t);
int __cdecl _wcsncoll_l(const wchar_t*,const wchar_t*,size_t,_locale_t);
int __cdecl _wcsnicmp(const wchar_t*,const wchar_t*,size_t);
int __cdecl _wcsnicoll(const wchar_t*,const wchar_t*,size_t);
int __cdecl _wcsnicoll_l(const wchar_t*,const wchar_t*,size_t,_locale_t);
wchar_t* __cdecl _wcsnset(wchar_t*,wchar_t,size_t);
wchar_t* __cdecl _wcsrev(wchar_t*);
wchar_t* __cdecl _wcsset(wchar_t*,wchar_t);
wchar_t* __cdecl _wcsupr(wchar_t*);
errno_t __cdecl _wcsupr_s(wchar_t*, size_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);
errno_t __cdecl wcsncat_s(wchar_t *, size_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);
size_t __cdecl wcsnlen(const size_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*);
wchar_t* __cdecl wcsstr(const wchar_t*,const wchar_t*);
wchar_t* __cdecl wcstok_s(wchar_t*,const wchar_t*,wchar_t**);
size_t __cdecl wcsxfrm(wchar_t*,const wchar_t*,size_t);
#ifdef _UCRT
wchar_t* __cdecl wcstok(wchar_t*,const wchar_t*,wchar_t**);
static inline wchar_t* _wcstok(wchar_t* str, const wchar_t *delim) { return wcstok(str, delim, NULL); }
# ifdef __cplusplus
extern "C++" inline wchar_t* wcstok(wchar_t* str, const wchar_t *delim) { return wcstok(str, delim, NULL); }
# elif defined(_CRT_NON_CONFORMING_WCSTOK)
# define wcstok _wcstok
# endif
#else /* _UCRT */
wchar_t* __cdecl wcstok(wchar_t*,const wchar_t*);
# define _wcstok wcstok
#endif /* _UCRT */
#endif /* _WSTRING_DEFINED */
wchar_t __cdecl btowc(int);
size_t __cdecl mbrlen(const char *,size_t,mbstate_t*);
size_t __cdecl mbrtowc(wchar_t*,const char*,size_t,mbstate_t*);