History

win32 merge

bellard committed 21 years ago

Commit 48217021 parent d733dc782 files · +23836 −13Browse files

Showing the changes to win32/include/string.h (1 of 82 files). Show all

Unified · Split

win32/include/string.h+206−0
@@ -0,0 +1,206 @@
1+/*
2+ * string.h
3+ *
4+ * Definitions for memory and string functions.
5+ *
6+ * This file is part of the Mingw32 package.
7+ *
8+ * Contributors:
9+ * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
10+ *
11+ * THIS SOFTWARE IS NOT COPYRIGHTED
12+ *
13+ * This source code is offered for use in the public domain. You may
14+ * use, modify or distribute it freely.
15+ *
16+ * This code is distributed in the hope that it will be useful but
17+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18+ * DISCLAIMED. This includes but is not limited to warranties of
19+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20+ *
21+ * $Revision: 1.1 $
22+ * $Author: bellard $
23+ * $Date: 2005/04/14 23:49:21 $
24+ *
25+ */
26+
27+#ifndef _STRING_H_
28+#define _STRING_H_
29+
30+/* All the headers include this file. */
31+#include <_mingw.h>
32+
33+/*
34+ * Define size_t, wchar_t and NULL
35+ */
36+#define __need_size_t
37+#define __need_wchar_t
38+#define __need_NULL
39+#ifndef RC_INVOKED
40+#include <stddef.h>
41+#endif /* Not RC_INVOKED */
42+
43+#ifndef RC_INVOKED
44+
45+#ifdef __cplusplus
46+extern "C" {
47+#endif
48+
49+/*
50+ * Prototypes of the ANSI Standard C library string functions.
51+ */
52+void* memchr (const void*, int, size_t);
53+int memcmp (const void*, const void*, size_t);
54+void* memcpy (void*, const void*, size_t);
55+void* memmove (void*, const void*, size_t);
56+void* memset (void*, int, size_t);
57+char* strcat (char*, const char*);
58+char* strchr (const char*, int);
59+int strcmp (const char*, const char*);
60+int strcoll (const char*, const char*); /* Compare using locale */
61+char* strcpy (char*, const char*);
62+size_t strcspn (const char*, const char*);
63+char* strerror (int); /* NOTE: NOT an old name wrapper. */
64+char* _strerror (const char *);
65+size_t strlen (const char*);
66+char* strncat (char*, const char*, size_t);
67+int strncmp (const char*, const char*, size_t);
68+char* strncpy (char*, const char*, size_t);
69+char* strpbrk (const char*, const char*);
70+char* strrchr (const char*, int);
71+size_t strspn (const char*, const char*);
72+char* strstr (const char*, const char*);
73+char* strtok (char*, const char*);
74+size_t strxfrm (char*, const char*, size_t);
75+
76+#ifndef __STRICT_ANSI__
77+/*
78+ * Extra non-ANSI functions provided by the CRTDLL library
79+ */
80+void* _memccpy (void*, const void*, int, size_t);
81+int _memicmp (const void*, const void*, size_t);
82+char* _strdup (const char*);
83+int _strcmpi (const char*, const char*);
84+int _stricmp (const char*, const char*);
85+int _stricoll (const char*, const char*);
86+char* _strlwr (char*);
87+int _strnicmp (const char*, const char*, size_t);
88+char* _strnset (char*, int, size_t);
89+char* _strrev (char*);
90+char* _strset (char*, int);
91+char* _strupr (char*);
92+void _swab (const char*, char*, size_t);
93+
94+/*
95+ * Multi-byte character functions
96+ */
97+unsigned char* _mbschr (unsigned char*, unsigned char*);
98+unsigned char* _mbsncat (unsigned char*, const unsigned char*, size_t);
99+unsigned char* _mbstok (unsigned char*, unsigned char*);
100+
101+#ifdef __MSVCRT__
102+int _strncoll(const char*, const char*, size_t);
103+int _strnicoll(const char*, const char*, size_t);
104+#endif
105+
106+#endif /* Not __STRICT_ANSI__ */
107+
108+/*
109+ * Unicode versions of the standard calls.
110+ */
111+wchar_t* wcscat (wchar_t*, const wchar_t*);
112+wchar_t* wcschr (const wchar_t*, wchar_t);
113+int wcscmp (const wchar_t*, const wchar_t*);
114+int wcscoll (const wchar_t*, const wchar_t*);
115+wchar_t* wcscpy (wchar_t*, const wchar_t*);
116+size_t wcscspn (const wchar_t*, const wchar_t*);
117+/* Note: No wcserror in CRTDLL. */
118+size_t wcslen (const wchar_t*);
119+wchar_t* wcsncat (wchar_t*, const wchar_t*, size_t);
120+int wcsncmp(const wchar_t*, const wchar_t*, size_t);
121+wchar_t* wcsncpy(wchar_t*, const wchar_t*, size_t);
122+wchar_t* wcspbrk(const wchar_t*, const wchar_t*);
123+wchar_t* wcsrchr(const wchar_t*, wchar_t);
124+size_t wcsspn(const wchar_t*, const wchar_t*);
125+wchar_t* wcsstr(const wchar_t*, const wchar_t*);
126+wchar_t* wcstok(wchar_t*, const wchar_t*);
127+size_t wcsxfrm(wchar_t*, const wchar_t*, size_t);
128+
129+#ifndef __STRICT_ANSI__
130+/*
131+ * Unicode versions of non-ANSI functions provided by CRTDLL.
132+ */
133+
134+/* NOTE: _wcscmpi not provided by CRTDLL, this define is for portability */
135+#define _wcscmpi _wcsicmp
136+
137+wchar_t* _wcsdup (wchar_t*);
138+int _wcsicmp (const wchar_t*, const wchar_t*);
139+int _wcsicoll (const wchar_t*, const wchar_t*);
140+wchar_t* _wcslwr (wchar_t*);
141+int _wcsnicmp (const wchar_t*, const wchar_t*, size_t);
142+wchar_t* _wcsnset (wchar_t*, wchar_t, size_t);
143+wchar_t* _wcsrev (wchar_t*);
144+wchar_t* _wcsset (wchar_t*, wchar_t);
145+wchar_t* _wcsupr (wchar_t*);
146+
147+#ifdef __MSVCRT__
148+int _wcsncoll(const wchar_t*, const wchar_t*, size_t);
149+int _wcsnicoll(const wchar_t*, const wchar_t*, size_t);
150+#endif
151+
152+
153+#endif /* Not __STRICT_ANSI__ */
154+
155+
156+#ifndef __STRICT_ANSI__
157+#ifndef _NO_OLDNAMES
158+
159+/*
160+ * Non-underscored versions of non-ANSI functions. They live in liboldnames.a
161+ * and provide a little extra portability. Also a few extra UNIX-isms like
162+ * strcasecmp.
163+ */
164+
165+void* memccpy (void*, const void*, int, size_t);
166+int memicmp (const void*, const void*, size_t);
167+char* strdup (const char*);
168+int strcmpi (const char*, const char*);
169+int stricmp (const char*, const char*);
170+int strcasecmp (const char*, const char*);
171+int stricoll (const char*, const char*);
172+char* strlwr (char*);
173+int strnicmp (const char*, const char*, size_t);
174+int strncasecmp (const char*, const char*, size_t);
175+char* strnset (char*, int, size_t);
176+char* strrev (char*);
177+char* strset (char*, int);
178+char* strupr (char*);
179+#ifndef _UWIN
180+void swab (const char*, char*, size_t);
181+#endif /* _UWIN */
182+
183+/* NOTE: There is no _wcscmpi, but this is for compatibility. */
184+int wcscmpi (const wchar_t*, const wchar_t*);
185+wchar_t* wcsdup (wchar_t*);
186+int wcsicmp (const wchar_t*, const wchar_t*);
187+int wcsicoll (const wchar_t*, const wchar_t*);
188+wchar_t* wcslwr (wchar_t*);
189+int wcsnicmp (const wchar_t*, const wchar_t*, size_t);
190+wchar_t* wcsnset (wchar_t*, wchar_t, size_t);
191+wchar_t* wcsrev (wchar_t*);
192+wchar_t* wcsset (wchar_t*, wchar_t);
193+wchar_t* wcsupr (wchar_t*);
194+
195+#endif /* Not _NO_OLDNAMES */
196+#endif /* Not strict ANSI */
197+
198+
199+#ifdef __cplusplus
200+}
201+#endif
202+
203+#endif /* Not RC_INVOKED */
204+
205+#endif /* Not _STRING_H_ */
206+

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t