1 | /*
|
---|
2 | * String definitions
|
---|
3 | *
|
---|
4 | * Derived from the mingw header written by Colin Peters.
|
---|
5 | * Modified for Wine use by Jon Griffiths and Francois Gouget.
|
---|
6 | * This file is in the public domain.
|
---|
7 | */
|
---|
8 |
|
---|
9 | /*
|
---|
10 | * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
|
---|
11 | * other than GPL or LGPL is available it will apply instead, Sun elects to use only
|
---|
12 | * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
|
---|
13 | * a choice of LGPL license versions is made available with the language indicating
|
---|
14 | * that LGPLv2 or any later version may be used, or where a choice of which version
|
---|
15 | * of the LGPL is applied is otherwise unspecified.
|
---|
16 | */
|
---|
17 |
|
---|
18 | #ifndef __WINE_STRING_H
|
---|
19 | #define __WINE_STRING_H
|
---|
20 |
|
---|
21 | #include <crtdefs.h>
|
---|
22 |
|
---|
23 | #ifndef _NLSCMP_DEFINED
|
---|
24 | #define _NLSCMPERROR ((unsigned int)0x7fffffff)
|
---|
25 | #define _NLSCMP_DEFINED
|
---|
26 | #endif
|
---|
27 |
|
---|
28 | #ifndef NULL
|
---|
29 | #ifdef __cplusplus
|
---|
30 | #define NULL 0
|
---|
31 | #else
|
---|
32 | #define NULL ((void *)0)
|
---|
33 | #endif
|
---|
34 | #endif
|
---|
35 |
|
---|
36 | #ifdef __cplusplus
|
---|
37 | extern "C" {
|
---|
38 | #endif
|
---|
39 |
|
---|
40 | #ifndef _CRT_MEMORY_DEFINED
|
---|
41 | #define _CRT_MEMORY_DEFINED
|
---|
42 | void* __cdecl memchr(const void*,int,size_t);
|
---|
43 | int __cdecl memcmp(const void*,const void*,size_t);
|
---|
44 | void* __cdecl memcpy(void*,const void*,size_t);
|
---|
45 | void* __cdecl memset(void*,int,size_t);
|
---|
46 | void* __cdecl _memccpy(void*,const void*,int,unsigned int);
|
---|
47 | int __cdecl _memicmp(const void*,const void*,unsigned int);
|
---|
48 |
|
---|
49 | static inline int memicmp(const void* s1, const void* s2, size_t len) { return _memicmp(s1, s2, len); }
|
---|
50 | static inline void* memccpy(void *s1, const void *s2, int c, size_t n) { return _memccpy(s1, s2, c, n); }
|
---|
51 | #endif /* _CRT_MEMORY_DEFINED */
|
---|
52 |
|
---|
53 | int __cdecl _strcmpi(const char*,const char*);
|
---|
54 | char* __cdecl _strdup(const char*);
|
---|
55 | char* __cdecl _strerror(const char*);
|
---|
56 | int __cdecl _stricmp(const char*,const char*);
|
---|
57 | int __cdecl _stricoll(const char*,const char*);
|
---|
58 | char* __cdecl _strlwr(char*);
|
---|
59 | int __cdecl _strnicmp(const char*,const char*,size_t);
|
---|
60 | char* __cdecl _strnset(char*,int,size_t);
|
---|
61 | char* __cdecl _strrev(char*);
|
---|
62 | char* __cdecl _strset(char*,int);
|
---|
63 | char* __cdecl _strupr(char*);
|
---|
64 |
|
---|
65 | void* __cdecl memmove(void*,const void*,size_t);
|
---|
66 | char* __cdecl strcat(char*,const char*);
|
---|
67 | char* __cdecl strchr(const char*,int);
|
---|
68 | int __cdecl strcmp(const char*,const char*);
|
---|
69 | int __cdecl strcoll(const char*,const char*);
|
---|
70 | char* __cdecl strcpy(char*,const char*);
|
---|
71 | size_t __cdecl strcspn(const char*,const char*);
|
---|
72 | char* __cdecl strerror(int);
|
---|
73 | size_t __cdecl strlen(const char*);
|
---|
74 | char* __cdecl strncat(char*,const char*,size_t);
|
---|
75 | int __cdecl strncmp(const char*,const char*,size_t);
|
---|
76 | char* __cdecl strncpy(char*,const char*,size_t);
|
---|
77 | char* __cdecl strpbrk(const char*,const char*);
|
---|
78 | char* __cdecl strrchr(const char*,int);
|
---|
79 | size_t __cdecl strspn(const char*,const char*);
|
---|
80 | char* __cdecl strstr(const char*,const char*);
|
---|
81 | char* __cdecl strtok(char*,const char*);
|
---|
82 | size_t __cdecl strxfrm(char*,const char*,size_t);
|
---|
83 |
|
---|
84 | #ifndef _WSTRING_DEFINED
|
---|
85 | #define _WSTRING_DEFINED
|
---|
86 | wchar_t* __cdecl _wcsdup(const wchar_t*);
|
---|
87 | int __cdecl _wcsicmp(const wchar_t*,const wchar_t*);
|
---|
88 | int __cdecl _wcsicoll(const wchar_t*,const wchar_t*);
|
---|
89 | wchar_t* __cdecl _wcslwr(wchar_t*);
|
---|
90 | int __cdecl _wcsnicmp(const wchar_t*,const wchar_t*,size_t);
|
---|
91 | wchar_t* __cdecl _wcsnset(wchar_t*,wchar_t,size_t);
|
---|
92 | wchar_t* __cdecl _wcsrev(wchar_t*);
|
---|
93 | wchar_t* __cdecl _wcsset(wchar_t*,wchar_t);
|
---|
94 | wchar_t* __cdecl _wcsupr(wchar_t*);
|
---|
95 |
|
---|
96 | wchar_t* __cdecl wcscat(wchar_t*,const wchar_t*);
|
---|
97 | wchar_t* __cdecl wcschr(const wchar_t*,wchar_t);
|
---|
98 | int __cdecl wcscmp(const wchar_t*,const wchar_t*);
|
---|
99 | int __cdecl wcscoll(const wchar_t*,const wchar_t*);
|
---|
100 | wchar_t* __cdecl wcscpy(wchar_t*,const wchar_t*);
|
---|
101 | size_t __cdecl wcscspn(const wchar_t*,const wchar_t*);
|
---|
102 | size_t __cdecl wcslen(const wchar_t*);
|
---|
103 | wchar_t* __cdecl wcsncat(wchar_t*,const wchar_t*,size_t);
|
---|
104 | int __cdecl wcsncmp(const wchar_t*,const wchar_t*,size_t);
|
---|
105 | wchar_t* __cdecl wcsncpy(wchar_t*,const wchar_t*,size_t);
|
---|
106 | wchar_t* __cdecl wcspbrk(const wchar_t*,const wchar_t*);
|
---|
107 | wchar_t* __cdecl wcsrchr(const wchar_t*,wchar_t wcFor);
|
---|
108 | size_t __cdecl wcsspn(const wchar_t*,const wchar_t*);
|
---|
109 | wchar_t* __cdecl wcsstr(const wchar_t*,const wchar_t*);
|
---|
110 | wchar_t* __cdecl wcstok(wchar_t*,const wchar_t*);
|
---|
111 | size_t __cdecl wcsxfrm(wchar_t*,const wchar_t*,size_t);
|
---|
112 | #endif /* _WSTRING_DEFINED */
|
---|
113 |
|
---|
114 | #ifdef __cplusplus
|
---|
115 | }
|
---|
116 | #endif
|
---|
117 |
|
---|
118 |
|
---|
119 | static inline int strcasecmp(const char* s1, const char* s2) { return _stricmp(s1, s2); }
|
---|
120 | static inline int strcmpi(const char* s1, const char* s2) { return _strcmpi(s1, s2); }
|
---|
121 | static inline char* strdup(const char* buf) { return _strdup(buf); }
|
---|
122 | static inline int stricmp(const char* s1, const char* s2) { return _stricmp(s1, s2); }
|
---|
123 | static inline int stricoll(const char* s1, const char* s2) { return _stricoll(s1, s2); }
|
---|
124 | static inline char* strlwr(char* str) { return _strlwr(str); }
|
---|
125 | static inline int strncasecmp(const char *str1, const char *str2, size_t n) { return _strnicmp(str1, str2, n); }
|
---|
126 | static inline int strnicmp(const char* s1, const char* s2, size_t n) { return _strnicmp(s1, s2, n); }
|
---|
127 | static inline char* strnset(char* str, int value, unsigned int len) { return _strnset(str, value, len); }
|
---|
128 | static inline char* strrev(char* str) { return _strrev(str); }
|
---|
129 | static inline char* strset(char* str, int value) { return _strset(str, value); }
|
---|
130 | static inline char* strupr(char* str) { return _strupr(str); }
|
---|
131 |
|
---|
132 | static inline wchar_t* wcsdup(const wchar_t* str) { return _wcsdup(str); }
|
---|
133 | static inline int wcsicoll(const wchar_t* str1, const wchar_t* str2) { return _wcsicoll(str1, str2); }
|
---|
134 | static inline wchar_t* wcslwr(wchar_t* str) { return _wcslwr(str); }
|
---|
135 | static inline int wcsnicmp(const wchar_t* str1, const wchar_t* str2, size_t n) { return _wcsnicmp(str1, str2, n); }
|
---|
136 | static inline wchar_t* wcsnset(wchar_t* str, wchar_t c, size_t n) { return _wcsnset(str, c, n); }
|
---|
137 | static inline wchar_t* wcsrev(wchar_t* str) { return _wcsrev(str); }
|
---|
138 | static inline wchar_t* wcsset(wchar_t* str, wchar_t c) { return _wcsset(str, c); }
|
---|
139 | static inline wchar_t* wcsupr(wchar_t* str) { return _wcsupr(str); }
|
---|
140 |
|
---|
141 | #endif /* __WINE_STRING_H */
|
---|