This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/Borland/BCC55/Include/_str.h

409 lines
15 KiB
C++

/* _str.h internal version of "C" string.h functions
Definitions for string functions.
*/
/*
* C/C++ Run Time Library - Version 10.0
*
* Copyright (c) 1987, 2000 by Inprise Corporation
* All Rights Reserved.
*
*/
/* $Revision: 9.1.1.0 $ */
#ifndef __STRING_H
#define __STRING_H
#define _INC_STRING /* MSC Guard name */
#ifndef ___STDDEF_H
#include <_stddef.h>
#endif
#if !defined(__STDC__) && defined(__USELOCALES__)
#if !defined(__LOCALE_H)
#include <locale.h>
#endif
#endif /* !__STDC__ && __USELOCALES__ */
#if !defined(RC_INVOKED)
#ifndef __MEM_H
#include <mem.h> /* All mem... functions have now been moved to MEM.H */
#endif
#if defined(__STDC__)
#pragma warn -nak
#endif
#endif /* !RC_INVOKED */
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
namespace std {
#endif /* __cplusplus */
#define wcscmpi(s1,s2) _wcsicmp(s1,s2)
#define _wcscmpi(s1,s2) _wcsicmp(s1,s2)
#define wcsncmpi(s1,s2,n) _wcsnicmp(s1,s2,n)
#define _wcsncmpi(s1,s2,n) _wcsnicmp(s1,s2,n)
_SIZE_T _RTLENTRY _EXPFUNC wcslen(const wchar_t *__s);
wchar_t * _RTLENTRY _EXPFUNC wcscpy(wchar_t *__dst, const wchar_t *__src);
wchar_t * _RTLENTRY _EXPFUNC wcscat(wchar_t *__dest, const wchar_t *__src);
wchar_t * _RTLENTRY _EXPFUNC wcschr(const wchar_t *__s, int __c);
int _RTLENTRY _EXPFUNC wcscmp(const wchar_t *__s1, const wchar_t *__s2);
int _RTLENTRY _EXPFUNC wcscoll(const wchar_t * __s1, const wchar_t * __s2);
_SIZE_T _RTLENTRY _EXPFUNC wcscspn(const wchar_t *__s1, const wchar_t *__s2);
wchar_t * _RTLENTRY _EXPFUNC _wcsdup(const wchar_t *__s);
int _RTLENTRY _EXPFUNC wcsncmp(const wchar_t *__s1, const wchar_t *__s2, _SIZE_T __maxlen);
wchar_t * _RTLENTRY _EXPFUNC wcsncpy(wchar_t *__dest, const wchar_t *__src, _SIZE_T __maxlen);
wchar_t * _RTLENTRY _EXPFUNC _wcsnset(wchar_t *__s, wchar_t __ch, _SIZE_T __n);
wchar_t * _RTLENTRY _EXPFUNC wcspbrk(const wchar_t *__s1, const wchar_t *__s2);
wchar_t * _RTLENTRY _EXPFUNC wcsrchr(const wchar_t *__s, wchar_t __c);
wchar_t * _RTLENTRY _EXPFUNC _wcsrev(wchar_t *__s);
wchar_t * _RTLENTRY _EXPFUNC _wcsset(wchar_t*__s, wchar_t __ch);
_SIZE_T _RTLENTRY _EXPFUNC wcsspn(const wchar_t *__s1, const wchar_t *__s2);
wchar_t * _RTLENTRY _EXPFUNC wcsstr(const wchar_t *__s1, const wchar_t *__s2);
wchar_t * _RTLENTRY _EXPFUNC wcstok(wchar_t *__s1, const wchar_t *__s2);
wchar_t * _RTLENTRY _EXPFUNC wcsncat(wchar_t *__dest, const wchar_t *__src, _SIZE_T __maxlen);
wchar_t * _RTLENTRY _EXPFUNC wcspcpy(wchar_t *__dest, const wchar_t *__src);
wchar_t * _RTLENTRY _EXPFUNC _wcspcpy(wchar_t *__dest, const wchar_t *__src);
int _RTLENTRY _EXPFUNC _wcsicmp(const wchar_t *__s1, const wchar_t *__s2);
int _RTLENTRY _EXPFUNC _wcsnicmp(const wchar_t *__s1, const wchar_t *__s2, _SIZE_T __maxlen);
wchar_t * _RTLENTRYF _EXPFUNC _wcslwr(wchar_t *__s);
wchar_t * _RTLENTRYF _EXPFUNC _wcsupr(wchar_t *__s);
wchar_t * _RTLENTRYF _EXPFUNC _lwcslwr(wchar_t *__s);
wchar_t * _RTLENTRYF _EXPFUNC _lwcsupr(wchar_t *__s);
char _FAR * _RTLENTRYF _EXPFUNC strcat(char _FAR *__dest, const char _FAR *__src);
int _RTLENTRYF _EXPFUNC strcmp(const char _FAR *__s1, const char _FAR *__s2);
char _FAR * _RTLENTRYF _EXPFUNC strcpy(char _FAR *__dest, const char _FAR *__src);
_SIZE_T _RTLENTRY _EXPFUNC strcspn(const char _FAR *__s1, const char _FAR *__s2);
char _FAR * _RTLENTRY _EXPFUNC strerror(int __errnum);
_SIZE_T _RTLENTRYF _EXPFUNC strlen(const char _FAR *__s);
char _FAR * _RTLENTRYF _EXPFUNC strncat(char _FAR *__dest, const char _FAR *__src,
_SIZE_T __maxlen);
int _RTLENTRYF _EXPFUNC strncmp(const char _FAR *__s1, const char _FAR *__s2,
_SIZE_T __maxlen);
char _FAR * _RTLENTRYF _EXPFUNC strncpy(char _FAR *__dest, const char _FAR *__src,
_SIZE_T __maxlen);
_SIZE_T _RTLENTRY _EXPFUNC strspn(const char _FAR *__s1, const char _FAR *__s2);
char _FAR * _RTLENTRYF _EXPFUNC strtok(char _FAR *__s1, const char _FAR *__s2);
char _FAR * _RTLENTRY _EXPFUNC _strerror(const char _FAR *__s);
#if !defined(__STDC__)
/* compatibility with other compilers */
#define strcmpi(s1,s2) stricmp(s1,s2)
#define strncmpi(s1,s2,n) strnicmp(s1,s2,n)
char _FAR * _RTLENTRYF _EXPFUNC _lstrlwr(char _FAR *__s);
char _FAR * _RTLENTRYF _EXPFUNC _lstrupr(char _FAR *__s);
char _FAR * _RTLENTRYF _EXPFUNC32 stpcpy(char _FAR *__dest, const char _FAR *__src);
char _FAR * _RTLENTRY _EXPFUNC32 _stpcpy(char _FAR *__dest, const char _FAR *__src);
char _FAR * _RTLENTRY _EXPFUNC strdup(const char _FAR *__s);
int _RTLENTRYF _EXPFUNC stricmp(const char _FAR *__s1, const char _FAR *__s2);
char _FAR * _RTLENTRYF _EXPFUNC strlwr(char _FAR *__s);
int _RTLENTRYF _EXPFUNC strnicmp(const char _FAR *__s1, const char _FAR *__s2,
_SIZE_T __maxlen);
char _FAR * _RTLENTRY _EXPFUNC strnset(char _FAR *__s, int __ch, _SIZE_T __n);
char _FAR * _RTLENTRY _EXPFUNC strrev(char _FAR *__s);
char _FAR * _RTLENTRY _EXPFUNC strset(char _FAR *__s, int __ch);
char _FAR * _RTLENTRYF _EXPFUNC strupr(char _FAR *__s);
#endif /* !__STDC__ */
#if defined(__cplusplus)
extern "C++"
{
char _FAR * _RTLENTRYF _EXPFUNC strchr(char _FAR * __s, int __c);
const char _FAR * _RTLENTRYF _EXPFUNC strchr(const char _FAR * __s, int __c);
char _FAR * _RTLENTRYF _EXPFUNC strrchr(char _FAR *__s, int __c);
const char _FAR * _RTLENTRYF _EXPFUNC strrchr(const char _FAR *__s, int __c);
char _FAR * _RTLENTRYF _EXPFUNC strpbrk(char _FAR *__s1, const char _FAR *__s2);
const char _FAR * _RTLENTRYF _EXPFUNC strpbrk(const char _FAR *__s1, const char _FAR *__s2);
char _FAR * _RTLENTRY _EXPFUNC strstr(char _FAR *__s1, const char _FAR *__s2);
const char _FAR * _RTLENTRY _EXPFUNC strstr(const char _FAR *__s1, const char _FAR *__s2);
}
#else
char _FAR * _RTLENTRYF _EXPFUNC strchr(const char _FAR * __s, int __c);
char _FAR * _RTLENTRYF _EXPFUNC strrchr(const char _FAR *__s, int __c);
char _FAR * _RTLENTRYF _EXPFUNC strpbrk(const char _FAR *__s1, const char _FAR *__s2);
char _FAR * _RTLENTRY _EXPFUNC strstr(const char _FAR *__s1, const char _FAR *__s2);
#endif
/* Intrinsic functions */
/* Intrinsics must be prototyped outside of any namespace */
#ifdef __cplusplus
} // std
#endif /* __cplusplus */
char _FAR * _RTLENTRY __stpcpy__(char _FAR *__dest, const char _FAR *__src);
char _FAR * _RTLENTRYF _EXPFUNC16 __strcat__(char _FAR *__dest, const char _FAR *__src);
char _FAR * _RTLENTRY _EXPFUNC16 __strchr__(const char _FAR *__s, int __c);
int _RTLENTRYF _EXPFUNC16 __strcmp__(const char _FAR *__s1, const char _FAR *__s2);
char _FAR * _RTLENTRYF _EXPFUNC16 __strcpy__(char _FAR *__dest, const char _FAR *__src);
_SIZE_T _RTLENTRYF _EXPFUNC16 __strlen__(const char _FAR *__s);
char _FAR * _RTLENTRY _EXPFUNC16 __strncat__(char _FAR *__dest, const char _FAR *__src,
_SIZE_T __maxlen);
int _RTLENTRY _EXPFUNC16 __strncmp__(const char _FAR *__s1, const char _FAR *__s2,
_SIZE_T __maxlen);
char _FAR * _RTLENTRYF _EXPFUNC16 __strncpy__(char _FAR *__dest, const char _FAR *__src,
_SIZE_T __maxlen);
char _FAR * _RTLENTRY _EXPFUNC16 __strnset__(char _FAR *__s, int __ch, _SIZE_T __n);
char _FAR * _RTLENTRYF _EXPFUNC16 __strrchr__(const char _FAR *__s, int __c);
char _FAR * _RTLENTRY _EXPFUNC16 __strset__(char _FAR *__s, int __ch);
/* Now that the intrinsics are finished, turn the namespace back on */
#ifdef __cplusplus
namespace std {
#endif /* __cplusplus */
#if defined(__MSC) && !defined(__MFC_COMPAT__)
#define _strnicmp(s1,s2,s3) strnicmp(s1,s2,s3)
#define _stricmp(s1,s2) stricmp(s1,s2)
#define _strdup(s1) strdup(s1)
#define _strupr(s1) strupr(s1)
#define _strlwr(s1) strlwr(s1)
#define _strrev(s1) strrev(s1)
#endif /* __MSC */
#if defined(__MFC_COMPAT__)
__inline char _FAR * _RTLENTRY _strrev(char _FAR *__s) { return strrev(__s); }
__inline char _FAR * _RTLENTRY _strset(char _FAR *__s, int __ch)
{ return strset(__s, __ch); }
__inline char _FAR * _RTLENTRY _strnset(char _FAR *__s, int __ch, _SIZE_T __n)
{ return strnset(__s, __ch, __n); }
__inline char _FAR * _RTLENTRYF _strupr(char _FAR *__s) { return strupr(__s); }
__inline char _FAR * _RTLENTRYF _strlwr(char _FAR *__s) { return strlwr(__s); }
__inline char _FAR * _RTLENTRY _strdup(const char _FAR *__s)
{ return strdup(__s); }
__inline int _RTLENTRYF _strcmpi(const char _FAR *__s1, const char _FAR *__s2)
{ return stricmp (__s1, __s2); }
__inline int _RTLENTRYF _stricmp(const char _FAR *__s1, const char _FAR *__s2)
{ return stricmp (__s1, __s2); }
__inline int _RTLENTRYF _strcmp(const char _FAR *__s1, const char _FAR *__s2)
{ return strcmp (__s1, __s2); }
__inline int _RTLENTRYF _strnicmp(const char _FAR *__s1, const char _FAR *__s2, _SIZE_T __maxlen)
{ return strnicmp (__s1, __s2, __maxlen); }
#endif
int _RTLENTRY _EXPFUNC _lstrcoll(const char * __s1, const char * __s2);
int _RTLENTRY _EXPFUNC _lstricoll(const char * __s1, const char * __s2);
int _RTLENTRY _EXPFUNC _lstrncoll(const char * __s1, const char * __s2, const int __len);
int _RTLENTRY _EXPFUNC _lstrnicoll(const char * __s1, const char * __s2, int __len);
_SIZE_T _RTLENTRY _EXPFUNC _lstrxfrm(char * __s1, const char * __s2,_SIZE_T __n );
int _RTLENTRY _EXPFUNC strcoll(const char * __s1, const char * __s2);
int _RTLENTRY _EXPFUNC _stricoll(const char * __s1, const char * __s2);
int _RTLENTRY _EXPFUNC _strncoll(const char * __s1, const char * __s2, _SIZE_T __n);
int _RTLENTRY _EXPFUNC _strnicoll(const char * __s1, const char * __s2, int __len);
_SIZE_T _RTLENTRY _EXPFUNC strxfrm(char * __s1, const char * __s2,_SIZE_T __n );
int _RTLENTRY _EXPFUNC _lwcscoll(const wchar_t * __s1, const wchar_t * __s2);
int _RTLENTRY _EXPFUNC _lwcsicoll(const wchar_t * __s1, const wchar_t * __s2);
int _RTLENTRY _EXPFUNC _lwcsncoll(const wchar_t * __s1, const wchar_t * __s2, const int __len);
int _RTLENTRY _EXPFUNC _lwcsnicoll(const wchar_t * __s1, const wchar_t * __s2, int __len);
_SIZE_T _RTLENTRY _EXPFUNC _lwcsxfrm(wchar_t * __s1, const wchar_t * __s2,_SIZE_T __n );
int _RTLENTRY _EXPFUNC wcscoll(const wchar_t * __s1, const wchar_t * __s2);
int _RTLENTRY _EXPFUNC _wcsicoll(const wchar_t * __s1, const wchar_t * __s2);
int _RTLENTRY _EXPFUNC _wcsncoll(const wchar_t * __s1, const wchar_t * __s2, _SIZE_T __n);
int _RTLENTRY _EXPFUNC _wcsnicoll(const wchar_t * __s1, const wchar_t * __s2, int __len);
_SIZE_T _RTLENTRY _EXPFUNC wcsxfrm(wchar_t * __s1, const wchar_t * __s2, _SIZE_T __n );
#if !defined(__STDC__) /* NON_ANSI */
#define _fstrcat strcat
#define _fstrchr strchr
#define _fstrcmp strcmp
#define _fstrcpy strcpy
#define _fstrcspn strcspn
#define _fstrdup strdup
#define _fstricmp stricmp
#define _fstrlen strlen
#define _fstrlwr strlwr
#define _fstrncat strncat
#define _fstrncmp strncmp
#define _fstrncpy strncpy
#define _fstrnicmp strnicmp
#define _fstrnset strnset
#define _fstrpbrk strpbrk
#define _fstrrchr strrchr
#define _fstrrev strrev
#define _fstrset strset
#define _fstrspn strspn
#define _fstrstr strstr
#define _fstrtok strtok
#define _fstrupr strupr
#endif /* __STDC__ */
#if defined(__USELOCALES__)
#define strupr _lstrupr
#define strlwr _lstrlwr
#define strcoll _lstrcoll
#define stricoll _lstricoll
#define strncoll _lstrncoll
#define strnicoll _lstrnicoll
#define strxfrm _lstrxfrm
#endif /* __USELOCALES__ */
#if !defined(RC_INVOKED)
#if defined(__STDC__)
#pragma warn .nak
#endif
#endif /* !RC_INVOKED */
#ifdef __cplusplus
} // std
#endif /* __cplusplus */
#ifdef __cplusplus
}
#endif
#endif /* __STRING_H */
#if defined(__cplusplus) && !defined(__USING_CNAME__) && !defined(__STRING_H_USING_LIST)
#define __STRING_H_USING_LIST
#if !defined(__STDC__)
using std::_lstrlwr;
using std::_lstrupr;
using std::_stpcpy;
using std::strdup;
using std::stricmp;
using std::strlwr;
using std::strnicmp;
using std::strrev;
using std::strupr;
#endif
#if defined(__MFC_COMPAT__)
using std::_strrev;
using std::_strset;
using std::_strnset;
using std::_strupr;
using std::_strdup;
using std::_strlwr;
using std::_strcmpi;
using std::_stricmp;
using std::_strcmp;
using std::_strnicmp;
#endif
using std::_lstrcoll;
using std::_lstricoll;
using std::_lstrncoll;
using std::_lstrnicoll;
using std::_lstrxfrm;
using std::_lwcscoll;
using std::_lwcsicoll;
using std::_lwcslwr;
using std::_lwcsncoll;
using std::_lwcsnicoll;
using std::_lwcsupr;
using std::_lwcsxfrm;
using std::_strerror;
using std::_stricoll;
using std::_strncoll;
using std::_strnicoll;
using std::_wcsdup;
using std::_wcsicmp;
using std::_wcsicoll;
using std::_wcslwr;
using std::_wcsncoll;
using std::_wcsnicmp;
using std::_wcsnicoll;
using std::_wcsnset;
using std::_wcspcpy;
using std::_wcsrev;
using std::_wcsset;
using std::_wcsupr;
/*
Handle intrinsics specially. If intrinsics are on, the compiler creates
a macro of the normal function mapping to the __ intrinsic version, ie:
#define strcpy __strcpy__
Thus, we can test the normal name as a macro to see if it's defined, and
only preform a using statement if it's not an intrinsic
*/
#if !defined(__STDC__)
# ifndef strnset
using std::strnset;
# endif // ifndef strnset
# ifndef stpcpy
using std::stpcpy;
# endif // ifndef stpcpy
# ifndef strset
using std::strset;
# endif // ifndef strset
#endif // __STDC__
# ifndef strcat
using std::strcat;
# endif // ifndef strcat
# ifndef strchr
using std::strchr;
# endif // ifndef strchr
# ifndef strcmp
using std::strcmp;
# endif // ifndef strcmp
# ifndef strcpy
using std::strcpy;
# endif // ifndef strcpy
# ifndef strlen
using std::strlen;
# endif // ifndef strlen
# ifndef strncat
using std::strncat;
# endif // ifndef strncat
# ifndef strncmp
using std::strncmp;
# endif // ifndef strncmp
# ifndef strncpy
using std::strncpy;
# endif // ifndef strncpy
# ifndef strrchr
using std::strrchr;
# endif // ifndef strrchr
using std::strcspn;
using std::strerror;
using std::strpbrk;
using std::strspn;
using std::strstr;
using std::strtok;
using std::strxfrm;
using std::strcoll;
using std::wcscat;
using std::wcschr;
using std::wcscmp;
using std::wcscoll;
using std::wcscpy;
using std::wcscspn;
using std::wcslen;
using std::wcsncat;
using std::wcsncmp;
using std::wcsncpy;
using std::wcspbrk;
using std::wcspcpy;
using std::wcsrchr;
using std::wcsspn;
using std::wcsstr;
using std::wcstok;
using std::wcsxfrm;
#endif /* __USING_CNAME__ */