mingw-5.1.4/win32/include/string.h
changeset 0 76b1f169d9fe
equal deleted inserted replaced
-1:000000000000 0:76b1f169d9fe
       
     1 /*
       
     2  * string.h
       
     3  * This file has no copyright assigned and is placed in the Public Domain.
       
     4  * This file is a part of the mingw-runtime package.
       
     5  * No warranty is given; refer to the file DISCLAIMER within the package.
       
     6  *
       
     7  * Definitions for memory and string functions.
       
     8  *
       
     9  */
       
    10 
       
    11 #ifndef _STRING_H_
       
    12 #define	_STRING_H_
       
    13 
       
    14 /* All the headers include this file. */
       
    15 #include <_mingw.h>
       
    16 
       
    17 /*
       
    18  * Define size_t, wchar_t and NULL
       
    19  */
       
    20 #define __need_size_t
       
    21 #define __need_wchar_t
       
    22 #define	__need_NULL
       
    23 #ifndef RC_INVOKED
       
    24 #include <stddef.h>
       
    25 #endif	/* Not RC_INVOKED */
       
    26 
       
    27 #ifndef RC_INVOKED
       
    28 
       
    29 #ifdef __cplusplus
       
    30 extern "C" {
       
    31 #endif
       
    32 
       
    33 /*
       
    34  * Prototypes of the ANSI Standard C library string functions.
       
    35  */
       
    36 _CRTIMP void* __cdecl __MINGW_NOTHROW	memchr (const void*, int, size_t) __MINGW_ATTRIB_PURE;
       
    37 _CRTIMP int __cdecl __MINGW_NOTHROW 	memcmp (const void*, const void*, size_t) __MINGW_ATTRIB_PURE;
       
    38 _CRTIMP void* __cdecl __MINGW_NOTHROW 	memcpy (void*, const void*, size_t);
       
    39 _CRTIMP void* __cdecl __MINGW_NOTHROW	memmove (void*, const void*, size_t);
       
    40 _CRTIMP void* __cdecl __MINGW_NOTHROW	memset (void*, int, size_t);
       
    41 _CRTIMP char* __cdecl __MINGW_NOTHROW	strcat (char*, const char*);
       
    42 _CRTIMP char* __cdecl __MINGW_NOTHROW	strchr (const char*, int)  __MINGW_ATTRIB_PURE;
       
    43 _CRTIMP int __cdecl __MINGW_NOTHROW	strcmp (const char*, const char*)  __MINGW_ATTRIB_PURE;
       
    44 _CRTIMP int __cdecl __MINGW_NOTHROW	strcoll (const char*, const char*);	/* Compare using locale */
       
    45 _CRTIMP char* __cdecl __MINGW_NOTHROW	strcpy (char*, const char*);
       
    46 _CRTIMP size_t __cdecl __MINGW_NOTHROW	strcspn (const char*, const char*)  __MINGW_ATTRIB_PURE;
       
    47 _CRTIMP char* __cdecl __MINGW_NOTHROW	strerror (int); /* NOTE: NOT an old name wrapper. */
       
    48 
       
    49 _CRTIMP size_t __cdecl __MINGW_NOTHROW	strlen (const char*)  __MINGW_ATTRIB_PURE;
       
    50 _CRTIMP char* __cdecl __MINGW_NOTHROW	strncat (char*, const char*, size_t);
       
    51 _CRTIMP int __cdecl __MINGW_NOTHROW	strncmp (const char*, const char*, size_t)  __MINGW_ATTRIB_PURE;
       
    52 _CRTIMP char* __cdecl __MINGW_NOTHROW	strncpy (char*, const char*, size_t);
       
    53 _CRTIMP char* __cdecl __MINGW_NOTHROW	strpbrk (const char*, const char*)  __MINGW_ATTRIB_PURE;
       
    54 _CRTIMP char* __cdecl __MINGW_NOTHROW	strrchr (const char*, int)  __MINGW_ATTRIB_PURE;
       
    55 _CRTIMP size_t __cdecl __MINGW_NOTHROW	strspn (const char*, const char*)  __MINGW_ATTRIB_PURE;
       
    56 _CRTIMP char* __cdecl __MINGW_NOTHROW	strstr (const char*, const char*)  __MINGW_ATTRIB_PURE;
       
    57 _CRTIMP char* __cdecl __MINGW_NOTHROW	strtok (char*, const char*);
       
    58 _CRTIMP size_t __cdecl __MINGW_NOTHROW	strxfrm (char*, const char*, size_t);
       
    59 
       
    60 #ifndef __STRICT_ANSI__
       
    61 /*
       
    62  * Extra non-ANSI functions provided by the CRTDLL library
       
    63  */
       
    64 _CRTIMP char* __cdecl __MINGW_NOTHROW	_strerror (const char *);
       
    65 _CRTIMP void* __cdecl __MINGW_NOTHROW	_memccpy (void*, const void*, int, size_t);
       
    66 _CRTIMP int __cdecl __MINGW_NOTHROW 	_memicmp (const void*, const void*, size_t);
       
    67 _CRTIMP char* __cdecl __MINGW_NOTHROW 	_strdup (const char*) __MINGW_ATTRIB_MALLOC;
       
    68 _CRTIMP int __cdecl __MINGW_NOTHROW	_strcmpi (const char*, const char*);
       
    69 _CRTIMP int __cdecl __MINGW_NOTHROW	_stricmp (const char*, const char*);
       
    70 _CRTIMP int __cdecl __MINGW_NOTHROW	_stricoll (const char*, const char*);
       
    71 _CRTIMP char* __cdecl __MINGW_NOTHROW	_strlwr (char*);
       
    72 _CRTIMP int __cdecl __MINGW_NOTHROW	_strnicmp (const char*, const char*, size_t);
       
    73 _CRTIMP char* __cdecl __MINGW_NOTHROW	_strnset (char*, int, size_t);
       
    74 _CRTIMP char* __cdecl __MINGW_NOTHROW	_strrev (char*);
       
    75 _CRTIMP char* __cdecl __MINGW_NOTHROW	_strset (char*, int);
       
    76 _CRTIMP char* __cdecl __MINGW_NOTHROW	_strupr (char*);
       
    77 _CRTIMP void __cdecl __MINGW_NOTHROW	_swab (const char*, char*, size_t);
       
    78 
       
    79 #ifdef __MSVCRT__
       
    80 _CRTIMP int __cdecl __MINGW_NOTHROW  _strncoll(const char*, const char*, size_t);
       
    81 _CRTIMP int __cdecl __MINGW_NOTHROW  _strnicoll(const char*, const char*, size_t);
       
    82 #endif
       
    83 
       
    84 #ifndef	_NO_OLDNAMES
       
    85 /*
       
    86  * Non-underscored versions of non-ANSI functions. They live in liboldnames.a
       
    87  * and provide a little extra portability. Also a few extra UNIX-isms like
       
    88  * strcasecmp.
       
    89  */
       
    90 _CRTIMP void* __cdecl __MINGW_NOTHROW	memccpy (void*, const void*, int, size_t);
       
    91 _CRTIMP int __cdecl __MINGW_NOTHROW	memicmp (const void*, const void*, size_t);
       
    92 _CRTIMP char* __cdecl __MINGW_NOTHROW	strdup (const char*) __MINGW_ATTRIB_MALLOC;
       
    93 _CRTIMP int __cdecl __MINGW_NOTHROW	strcmpi (const char*, const char*);
       
    94 _CRTIMP int __cdecl __MINGW_NOTHROW	stricmp (const char*, const char*);
       
    95 __CRT_INLINE int __cdecl __MINGW_NOTHROW strcasecmp (const char*, const char *);
       
    96 __CRT_INLINE int __cdecl __MINGW_NOTHROW
       
    97 strcasecmp (const char * __sz1, const char * __sz2)
       
    98   {return _stricmp (__sz1, __sz2);}
       
    99 _CRTIMP int __cdecl __MINGW_NOTHROW	stricoll (const char*, const char*);
       
   100 _CRTIMP char* __cdecl __MINGW_NOTHROW	strlwr (char*);
       
   101 _CRTIMP int __cdecl __MINGW_NOTHROW	strnicmp (const char*, const char*, size_t);
       
   102 __CRT_INLINE int  __cdecl __MINGW_NOTHROW strncasecmp (const char *, const char *, size_t);
       
   103 __CRT_INLINE int __cdecl __MINGW_NOTHROW
       
   104 strncasecmp (const char * __sz1, const char * __sz2, size_t __sizeMaxCompare)
       
   105   {return _strnicmp (__sz1, __sz2, __sizeMaxCompare);}
       
   106 _CRTIMP char* __cdecl __MINGW_NOTHROW	strnset (char*, int, size_t);
       
   107 _CRTIMP char* __cdecl __MINGW_NOTHROW	strrev (char*);
       
   108 _CRTIMP char* __cdecl __MINGW_NOTHROW	strset (char*, int);
       
   109 _CRTIMP char* __cdecl __MINGW_NOTHROW	strupr (char*);
       
   110 #ifndef _UWIN
       
   111 _CRTIMP void __cdecl __MINGW_NOTHROW	swab (const char*, char*, size_t);
       
   112 #endif /* _UWIN */
       
   113 #endif /* _NO_OLDNAMES */
       
   114 
       
   115 #endif	/* Not __STRICT_ANSI__ */
       
   116 
       
   117 #ifndef _WSTRING_DEFINED
       
   118 /*
       
   119  * Unicode versions of the standard calls.
       
   120  * Also in wchar.h, where they belong according to ISO standard.
       
   121  */
       
   122 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcscat (wchar_t*, const wchar_t*);
       
   123 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcschr (const wchar_t*, wchar_t);
       
   124 _CRTIMP int __cdecl __MINGW_NOTHROW	wcscmp (const wchar_t*, const wchar_t*);
       
   125 _CRTIMP int __cdecl __MINGW_NOTHROW	wcscoll (const wchar_t*, const wchar_t*);
       
   126 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcscpy (wchar_t*, const wchar_t*);
       
   127 _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcscspn (const wchar_t*, const wchar_t*);
       
   128 /* Note:  _wcserror requires __MSVCRT_VERSION__ >= 0x0700.  */
       
   129 _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcslen (const wchar_t*);
       
   130 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsncat (wchar_t*, const wchar_t*, size_t);
       
   131 _CRTIMP int __cdecl __MINGW_NOTHROW	wcsncmp(const wchar_t*, const wchar_t*, size_t);
       
   132 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsncpy(wchar_t*, const wchar_t*, size_t);
       
   133 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcspbrk(const wchar_t*, const wchar_t*);
       
   134 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsrchr(const wchar_t*, wchar_t);
       
   135 _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcsspn(const wchar_t*, const wchar_t*);
       
   136 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsstr(const wchar_t*, const wchar_t*);
       
   137 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcstok(wchar_t*, const wchar_t*);
       
   138 _CRTIMP size_t __cdecl __MINGW_NOTHROW	wcsxfrm(wchar_t*, const wchar_t*, size_t);
       
   139 
       
   140 #ifndef	__STRICT_ANSI__
       
   141 /*
       
   142  * Unicode versions of non-ANSI string functions provided by CRTDLL.
       
   143  */
       
   144 
       
   145 /* NOTE: _wcscmpi not provided by CRTDLL, this define is for portability */
       
   146 #define		_wcscmpi	_wcsicmp
       
   147 
       
   148 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsdup (const wchar_t*);
       
   149 _CRTIMP int __cdecl __MINGW_NOTHROW	_wcsicmp (const wchar_t*, const wchar_t*);
       
   150 _CRTIMP int __cdecl __MINGW_NOTHROW	_wcsicoll (const wchar_t*, const wchar_t*);
       
   151 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcslwr (wchar_t*);
       
   152 _CRTIMP int __cdecl __MINGW_NOTHROW	_wcsnicmp (const wchar_t*, const wchar_t*, size_t);
       
   153 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsnset (wchar_t*, wchar_t, size_t);
       
   154 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsrev (wchar_t*);
       
   155 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsset (wchar_t*, wchar_t);
       
   156 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsupr (wchar_t*);
       
   157 
       
   158 #ifdef __MSVCRT__
       
   159 _CRTIMP int __cdecl __MINGW_NOTHROW  _wcsncoll(const wchar_t*, const wchar_t*, size_t);
       
   160 _CRTIMP int   __cdecl __MINGW_NOTHROW _wcsnicoll(const wchar_t*, const wchar_t*, size_t);
       
   161 #if __MSVCRT_VERSION__ >= 0x0700
       
   162 _CRTIMP  wchar_t* __cdecl __MINGW_NOTHROW _wcserror(int);
       
   163 _CRTIMP  wchar_t* __cdecl __MINGW_NOTHROW __wcserror(const wchar_t*);
       
   164 #endif
       
   165 #endif
       
   166 
       
   167 #ifndef	_NO_OLDNAMES
       
   168 /* NOTE: There is no _wcscmpi, but this is for compatibility. */
       
   169 int __cdecl __MINGW_NOTHROW wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2);
       
   170 __CRT_INLINE int __cdecl __MINGW_NOTHROW
       
   171 wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2)
       
   172   {return _wcsicmp (__ws1, __ws2);}
       
   173 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsdup (const wchar_t*);
       
   174 _CRTIMP int __cdecl __MINGW_NOTHROW	wcsicmp (const wchar_t*, const wchar_t*);
       
   175 _CRTIMP int __cdecl __MINGW_NOTHROW	wcsicoll (const wchar_t*, const wchar_t*);
       
   176 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcslwr (wchar_t*);
       
   177 _CRTIMP int __cdecl __MINGW_NOTHROW	wcsnicmp (const wchar_t*, const wchar_t*, size_t);
       
   178 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsnset (wchar_t*, wchar_t, size_t);
       
   179 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsrev (wchar_t*);
       
   180 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsset (wchar_t*, wchar_t);
       
   181 _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsupr (wchar_t*);
       
   182 #endif	/* Not _NO_OLDNAMES */
       
   183 
       
   184 #endif	/* Not strict ANSI */
       
   185 
       
   186 #define _WSTRING_DEFINED
       
   187 #endif  /* _WSTRING_DEFINED */
       
   188 
       
   189 #ifdef __cplusplus
       
   190 }
       
   191 #endif
       
   192 
       
   193 #endif	/* Not RC_INVOKED */
       
   194 
       
   195 #endif	/* Not _STRING_H_ */