Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
3a67291a
Commit
3a67291a
authored
Jan 29, 2020
by
Jacek Caban
Committed by
Alexandre Julliard
Jan 29, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
include: Use dllimport attribute for string.h functions.
Signed-off-by:
Jacek Caban
<
jacek@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
3dcedeef
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
102 additions
and
90 deletions
+102
-90
corecrt.h
include/msvcrt/corecrt.h
+12
-0
string.h
include/msvcrt/string.h
+90
-90
No files found.
include/msvcrt/corecrt.h
View file @
3a67291a
...
...
@@ -137,6 +137,18 @@
# endif
#endif
#ifndef _ACRTIMP
# ifdef _CRTIMP
# define _ACRTIMP _CRTIMP
# elif defined(_MSC_VER)
# define _ACRTIMP __declspec(dllimport)
# elif defined(__MINGW32__) || defined(__CYGWIN__)
# define _ACRTIMP __attribute__((dllimport))
# else
# define _ACRTIMP
# endif
#endif
#define _ARGMAX 100
#ifndef _MSVCRT_LONG_DEFINED
...
...
include/msvcrt/string.h
View file @
3a67291a
...
...
@@ -29,106 +29,106 @@ 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
);
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
);
_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 */
int
__cdecl
_strcmpi
(
const
char
*
,
const
char
*
);
int
__cdecl
_strcoll_l
(
const
char
*
,
const
char
*
,
_locale_t
);
char
*
__cdecl
_strdup
(
const
char
*
);
char
*
__cdecl
_strerror
(
const
char
*
);
errno_t
__cdecl
strerror_s
(
char
*
,
size_t
,
int
);
int
__cdecl
_stricmp
(
const
char
*
,
const
char
*
);
int
__cdecl
_stricoll
(
const
char
*
,
const
char
*
);
int
__cdecl
_stricoll_l
(
const
char
*
,
const
char
*
,
_locale_t
);
char
*
__cdecl
_strlwr
(
char
*
);
errno_t
__cdecl
_strlwr_s
(
char
*
,
size_t
);
int
__cdecl
_strncoll
(
const
char
*
,
const
char
*
,
size_t
);
int
__cdecl
_strncoll_l
(
const
char
*
,
const
char
*
,
size_t
,
_locale_t
);
int
__cdecl
_strnicmp
(
const
char
*
,
const
char
*
,
size_t
);
int
__cdecl
_strnicoll
(
const
char
*
,
const
char
*
,
size_t
);
int
__cdecl
_strnicoll_l
(
const
char
*
,
const
char
*
,
size_t
,
_locale_t
);
char
*
__cdecl
_strnset
(
char
*
,
int
,
size_t
);
char
*
__cdecl
_strrev
(
char
*
);
char
*
__cdecl
_strset
(
char
*
,
int
);
char
*
__cdecl
_strupr
(
char
*
);
errno_t
__cdecl
_strupr_s
(
char
*
,
size_t
);
_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
*
);
_ACRTIMP
char
*
__cdecl
_strerror
(
const
char
*
);
_ACRTIMP
errno_t
__cdecl
strerror_s
(
char
*
,
size_t
,
int
);
_ACRTIMP
int
__cdecl
_stricmp
(
const
char
*
,
const
char
*
);
_ACRTIMP
int
__cdecl
_stricoll
(
const
char
*
,
const
char
*
);
_ACRTIMP
int
__cdecl
_stricoll_l
(
const
char
*
,
const
char
*
,
_locale_t
);
_ACRTIMP
char
*
__cdecl
_strlwr
(
char
*
);
_ACRTIMP
errno_t
__cdecl
_strlwr_s
(
char
*
,
size_t
);
_ACRTIMP
int
__cdecl
_strncoll
(
const
char
*
,
const
char
*
,
size_t
);
_ACRTIMP
int
__cdecl
_strncoll_l
(
const
char
*
,
const
char
*
,
size_t
,
_locale_t
);
_ACRTIMP
int
__cdecl
_strnicmp
(
const
char
*
,
const
char
*
,
size_t
);
_ACRTIMP
int
__cdecl
_strnicoll
(
const
char
*
,
const
char
*
,
size_t
);
_ACRTIMP
int
__cdecl
_strnicoll_l
(
const
char
*
,
const
char
*
,
size_t
,
_locale_t
);
_ACRTIMP
char
*
__cdecl
_strnset
(
char
*
,
int
,
size_t
);
_ACRTIMP
char
*
__cdecl
_strrev
(
char
*
);
_ACRTIMP
char
*
__cdecl
_strset
(
char
*
,
int
);
_ACRTIMP
char
*
__cdecl
_strupr
(
char
*
);
_ACRTIMP
errno_t
__cdecl
_strupr_s
(
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
);
errno_t
__cdecl
strncat_s
(
char
*
,
size_t
,
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
);
_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
*
);
_ACRTIMP
char
*
__cdecl
strchr
(
const
char
*
,
int
);
_ACRTIMP
int
__cdecl
strcmp
(
const
char
*
,
const
char
*
);
_ACRTIMP
int
__cdecl
strcoll
(
const
char
*
,
const
char
*
);
_ACRTIMP
char
*
__cdecl
strcpy
(
char
*
,
const
char
*
);
_ACRTIMP
errno_t
__cdecl
strcpy_s
(
char
*
,
size_t
,
const
char
*
);
_ACRTIMP
size_t
__cdecl
strcspn
(
const
char
*
,
const
char
*
);
_ACRTIMP
char
*
__cdecl
strerror
(
int
);
_ACRTIMP
size_t
__cdecl
strlen
(
const
char
*
);
_ACRTIMP
char
*
__cdecl
strncat
(
char
*
,
const
char
*
,
size_t
);
_ACRTIMP
errno_t
__cdecl
strncat_s
(
char
*
,
size_t
,
const
char
*
,
size_t
);
_ACRTIMP
int
__cdecl
strncmp
(
const
char
*
,
const
char
*
,
size_t
);
_ACRTIMP
char
*
__cdecl
strncpy
(
char
*
,
const
char
*
,
size_t
);
_ACRTIMP
errno_t
__cdecl
strncpy_s
(
char
*
,
size_t
,
const
char
*
,
size_t
);
_ACRTIMP
size_t
__cdecl
strnlen
(
const
char
*
,
size_t
);
_ACRTIMP
char
*
__cdecl
strpbrk
(
const
char
*
,
const
char
*
);
_ACRTIMP
char
*
__cdecl
strrchr
(
const
char
*
,
int
);
_ACRTIMP
size_t
__cdecl
strspn
(
const
char
*
,
const
char
*
);
_ACRTIMP
char
*
__cdecl
strstr
(
const
char
*
,
const
char
*
);
_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
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
_wcscoll_l
(
const
wchar_t
*
,
const
wchar_t
*
,
_locale_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
);
size_t
__cdecl
_wcsnlen
(
const
wchar_t
*
,
size_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
);
_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
);
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
);
size_t
__cdecl
wcsnlen
(
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
*
);
wchar_t
*
__cdecl
wcsstr
(
const
wchar_t
*
,
const
wchar_t
*
);
wchar_t
*
__cdecl
wcstok
(
wchar_t
*
,
const
wchar_t
*
);
size_t
__cdecl
wcsxfrm
(
wchar_t
*
,
const
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
(
wchar_t
*
,
const
wchar_t
*
);
_ACRTIMP
size_t
__cdecl
wcsxfrm
(
wchar_t
*
,
const
wchar_t
*
,
size_t
);
#endif
/* _WSTRING_DEFINED */
#ifdef __cplusplus
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment