first commit
This commit is contained in:
447
extern/stdcxx/4.2.1/include/ansi/cstring
vendored
Normal file
447
extern/stdcxx/4.2.1/include/ansi/cstring
vendored
Normal file
@@ -0,0 +1,447 @@
|
||||
// -*- C++ -*-
|
||||
/***************************************************************************
|
||||
*
|
||||
* cstring - C++ Standard library interface to the ANSI C header string.h
|
||||
*
|
||||
* $Id: cstring 550991 2007-06-26 23:58:07Z sebor $
|
||||
*
|
||||
***************************************************************************
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed
|
||||
* with this work for additional information regarding copyright
|
||||
* ownership. The ASF licenses this file to you under the Apache
|
||||
* License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* permissions and limitations under the License.
|
||||
*
|
||||
* Copyright 1994-2006 Rogue Wave Software.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
#include <rw/_defs.h>
|
||||
|
||||
#ifndef _RWSTD_NO_PURE_C_HEADERS
|
||||
# include <ansi/_cstring.h>
|
||||
#else
|
||||
|
||||
#ifndef _RWSTD_NO_DEPRECATED_C_HEADERS
|
||||
|
||||
#ifndef _RWSTD_NO_NAMESPACE
|
||||
|
||||
#ifndef _RWSTD_NAMESPACE_STD_OPEN
|
||||
#define _RWSTD_NAMESPACE_STD_OPEN 15
|
||||
|
||||
_RWSTD_NAMESPACE (std) {
|
||||
|
||||
#endif // _RWSTD_NAMESPACE_STD_OPEN
|
||||
|
||||
|
||||
#include _RWSTD_ANSI_C_STRING_H
|
||||
|
||||
|
||||
#if _RWSTD_NAMESPACE_STD_OPEN == 15
|
||||
#undef _RWSTD_NAMESPACE_STD_OPEN
|
||||
|
||||
} // namespace std
|
||||
|
||||
#endif // _RWSTD_NAMESPACE_STD_OPEN == 15
|
||||
|
||||
|
||||
_RWSTD_NAMESPACE (std) {
|
||||
|
||||
#if 0
|
||||
|
||||
const char* strchr (const char *__s, int __c);
|
||||
const char* strpbrk (const char *__s1, const char *__s2);
|
||||
const char* strrchr (const char *__s, int __c);
|
||||
const char* strstr (const char *__s1, const char *__s2);
|
||||
const void* memchr (const void *__p, int __c, size_t __n);
|
||||
|
||||
#endif // 0/1
|
||||
|
||||
|
||||
#ifndef _RWSTD_CSTRING_INCLUDED
|
||||
#define _RWSTD_CSTRING_INCLUDED
|
||||
|
||||
inline char* strchr (char *__s, int __c)
|
||||
{
|
||||
return strchr ((const char*)__s, __c);
|
||||
}
|
||||
|
||||
inline char* strpbrk (char *__s1, const char *__s2)
|
||||
{
|
||||
return strpbrk ((const char*)__s1, __s2);
|
||||
}
|
||||
|
||||
inline char* strrchr (char *__s, int __c)
|
||||
{
|
||||
return strrchr ((const char*)__s, __c);
|
||||
}
|
||||
|
||||
inline char* strstr (char *__s1, const char *__s2)
|
||||
{
|
||||
return strstr ((const char*)__s1, __s2);
|
||||
}
|
||||
|
||||
inline void* memchr (void *__p, int __c, size_t __n)
|
||||
{
|
||||
return memchr ((const void*)__p, __c, __n);
|
||||
}
|
||||
|
||||
#endif // _RWSTD_CSTRING_INCLUDED
|
||||
|
||||
} // namespace std
|
||||
|
||||
#else // if defined (_RWSTD_NO_NAMESPACE)
|
||||
|
||||
|
||||
#include _RWSTD_ANSI_C_STRING_H
|
||||
|
||||
|
||||
#endif // _RWSTD_NO_NAMESPACE
|
||||
|
||||
#else // if defined (_RWSTD_NO_DEPRECATED_C_HEADERS)
|
||||
|
||||
#ifndef _RWSTD_CSTRING_INCLUDED
|
||||
#define _RWSTD_CSTRING_INCLUDED
|
||||
|
||||
#include _RWSTD_ANSI_C_STRING_H
|
||||
|
||||
# undef index
|
||||
# undef rindex
|
||||
|
||||
# undef strcpy
|
||||
# undef strcmp
|
||||
|
||||
# undef strlen
|
||||
# undef strchr
|
||||
# undef strrchr
|
||||
# undef strcat
|
||||
# undef memchr
|
||||
# undef memcpy
|
||||
# undef memmove
|
||||
# undef memcmp
|
||||
# undef memset
|
||||
|
||||
# undef memccpy
|
||||
# undef strncat
|
||||
# undef strncmp
|
||||
# undef strncpy
|
||||
|
||||
#ifndef NULL
|
||||
# define NULL 0
|
||||
#endif // NULL
|
||||
|
||||
|
||||
#if !defined (_RWSTD_NO_NAMESPACE) && !defined (_RWSTD_NO_HONOR_STD) && \
|
||||
!defined (_RWSTD_NO_USING_LIBC_IN_STD)
|
||||
|
||||
namespace std {
|
||||
|
||||
using ::size_t;
|
||||
|
||||
#ifndef _RWSTD_NO_MEMCHR
|
||||
using ::memchr;
|
||||
#elif !defined (_RWSTD_NO_MEMCHR_IN_LIBC)
|
||||
|
||||
} // namespace std
|
||||
|
||||
extern "C" void* memchr (void*, int, size_t);
|
||||
|
||||
inline const void* memchr (const void *__p, int __c, size_t __n)
|
||||
{
|
||||
return memchr (_RWSTD_CONST_CAST (void*, __p), __c, __n);
|
||||
}
|
||||
|
||||
namespace std {
|
||||
|
||||
using ::memchr;
|
||||
|
||||
# undef _RWSTD_NO_MEMCHR
|
||||
|
||||
#else // if defined (_RWSTD_NO_MEMCHR)
|
||||
#endif // _RWSTD_NO_MEMCHR
|
||||
|
||||
#ifndef _RWSTD_NO_MEMCMP
|
||||
using ::memcmp;
|
||||
#elif !defined (_RWSTD_NO_MEMCMP_IN_LIBC)
|
||||
|
||||
} // namespace std
|
||||
|
||||
extern "C" int memcmp (const void*, const void*, size_t);
|
||||
|
||||
namespace std {
|
||||
|
||||
using ::memcmp;
|
||||
|
||||
# undef _RWSTD_NO_MEMCMP
|
||||
|
||||
#else // if defined (_RWSTD_NO_MEMCMP)
|
||||
|
||||
} // namespace std
|
||||
|
||||
extern "C" {
|
||||
|
||||
inline int memcmp (const void *__s1, const void *__s2, size_t __n)
|
||||
{
|
||||
const char *__ss1 = _RWSTD_REINTERPRET_CAST (const char*, __s1);
|
||||
const char *__ss2 = _RWSTD_REINTERPRET_CAST (const char*, __s2);
|
||||
|
||||
for (; __n; --__n, ++__ss1, ++__ss2)
|
||||
if (*__ss1 != *__ss2)
|
||||
return *__ss1 - *__ss2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
} // extern "C"
|
||||
|
||||
namespace std {
|
||||
|
||||
using ::memcmp;
|
||||
|
||||
# undef _RWSTD_NO_MEMCMP
|
||||
|
||||
#endif // _RWSTD_NO_MEMCMP
|
||||
|
||||
#ifndef _RWSTD_NO_MEMCPY
|
||||
using ::memcpy;
|
||||
#elif !defined (_RWSTD_NO_MEMCPY_IN_LIBC)
|
||||
|
||||
} // namespace std
|
||||
|
||||
extern "C" void* memcpy (void*, const void*, size_t);
|
||||
|
||||
namespace std {
|
||||
|
||||
using ::memcpy;
|
||||
|
||||
# undef _RWSTD_NO_MEMCPY
|
||||
|
||||
#else
|
||||
#endif // _RWSTD_NO_MEMCPY
|
||||
|
||||
#ifndef _RWSTD_NO_MEMMOVE
|
||||
using ::memmove;
|
||||
#elif !defined (_RWSTD_NO_MEMMOVE_IN_LIBC)
|
||||
|
||||
} // namespace std
|
||||
|
||||
extern "C" void* memmove (void*, const void*, size_t);
|
||||
|
||||
namespace std {
|
||||
|
||||
using ::memmove;
|
||||
|
||||
# undef _RWSTD_NO_MEMMOVE
|
||||
|
||||
#else // if defined (_RWSTD_NO_MEMMOVE)
|
||||
|
||||
} // namespace std
|
||||
|
||||
extern "C" {
|
||||
|
||||
inline void* memmove (void *__dest, const void *__src, size_t __n)
|
||||
{
|
||||
char *__d = _RWSTD_REINTERPRET_CAST (char*, __dest);
|
||||
const char *__s = _RWSTD_REINTERPRET_CAST (const char*, __src);
|
||||
|
||||
if (__d < __s || __d >= __s + __n)
|
||||
memcpy (__d, __s, __n);
|
||||
else {
|
||||
// regions overlap
|
||||
__d += __n;
|
||||
__s += __n;
|
||||
while (__n--)
|
||||
*--__d = *--__s;
|
||||
}
|
||||
return __dest;
|
||||
}
|
||||
|
||||
} // extern "C"
|
||||
|
||||
namespace std {
|
||||
|
||||
using ::memmove;
|
||||
|
||||
# undef _RWSTD_NO_MEMMOVE
|
||||
|
||||
#endif // _RWSTD_NO_MEMMOVE
|
||||
|
||||
#ifndef _RWSTD_NO_MEMSET
|
||||
using ::memset;
|
||||
#else // if defined (_RWSTD_NO_MEMSET)
|
||||
#endif // _RWSTD_NO_MEMSET
|
||||
|
||||
#ifndef _RWSTD_NO_STRCAT
|
||||
using ::strcat;
|
||||
#else // if defined (_RWSTD_NO_STRCAT)
|
||||
#endif // _RWSTD_NO_STRCAT
|
||||
|
||||
#ifndef _RWSTD_NO_STRCHR
|
||||
using ::strchr;
|
||||
#elif !defined (_RWSTD_NO_STRCHR_IN_LIBC)
|
||||
|
||||
} // namespace std
|
||||
|
||||
extern "C" char* strchr (char*, int);
|
||||
|
||||
inline const char* strchr (const char *__s, int __c)
|
||||
{
|
||||
return strchr (_RWSTD_CONST_CAST (char*, __s), __c);
|
||||
}
|
||||
|
||||
namespace std {
|
||||
|
||||
using ::strchr;
|
||||
|
||||
# undef _RWSTD_NO_STRCHR
|
||||
|
||||
#else // if defined (_RWSTD_NO_STRCHR)
|
||||
#endif // _RWSTD_NO_STRCHR
|
||||
|
||||
#ifndef _RWSTD_NO_STRCMP
|
||||
using ::strcmp;
|
||||
#elif !defined (_RWSTD_NO_STRCMP_IN_LIBC)
|
||||
#else // if defined (_RWSTD_NO_STRCMP)
|
||||
#endif // _RWSTD_NO_STRCMP
|
||||
|
||||
#ifndef _RWSTD_NO_STRCOLL
|
||||
using ::strcoll;
|
||||
#else // if defined (_RWSTD_NO_STRCOLL)
|
||||
#endif // _RWSTD_NO_STRCOLL
|
||||
|
||||
#ifndef _RWSTD_NO_STRCPY
|
||||
using ::strcpy;
|
||||
#else // if defined (_RWSTD_NO_STRCPY)
|
||||
#endif // _RWSTD_NO_STRCPY
|
||||
|
||||
#ifndef _RWSTD_NO_STRCSPN
|
||||
using ::strcspn;
|
||||
#else // if defined (_RWSTD_NO_STRCSPN)
|
||||
#endif // _RWSTD_NO_STRCSPN
|
||||
|
||||
#ifndef _RWSTD_NO_STRERROR
|
||||
using ::strerror;
|
||||
#else // if defined (_RWSTD_NO_STRERROR)
|
||||
#endif // _RWSTD_NO_STRERROR
|
||||
|
||||
#ifndef _RWSTD_NO_STRLEN
|
||||
using ::strlen;
|
||||
#else // if defined (_RWSTD_NO_STRLEN)
|
||||
#endif // _RWSTD_NO_STRLEN
|
||||
|
||||
#ifndef _RWSTD_NO_STRNCAT
|
||||
using ::strncat;
|
||||
#else // if defined (_RWSTD_NO_STRNCAT)
|
||||
#endif // _RWSTD_NO_STRNCAT
|
||||
|
||||
#ifndef _RWSTD_NO_STRNCMP
|
||||
using ::strncmp;
|
||||
#else // if defined (_RWSTD_NO_STRNCMP)
|
||||
#endif // _RWSTD_NO_STRNCMP
|
||||
|
||||
#ifndef _RWSTD_NO_STRNCPY
|
||||
using ::strncpy;
|
||||
#else // if defined (_RWSTD_NO_STRNCPY)
|
||||
#endif // _RWSTD_NO_STRNCPY
|
||||
|
||||
#ifndef _RWSTD_NO_STRPBRK
|
||||
using ::strpbrk;
|
||||
#elif !defined (_RWSTD_NO_STRPBRK_IN_LIBC)
|
||||
|
||||
} // namespace std
|
||||
|
||||
extern "C" char* strpbrk (char*, const char*);
|
||||
|
||||
inline const char* strpbrk (const char *__s, const char *__pat)
|
||||
{
|
||||
return strpbrk (_RWSTD_CONST_CAST (char*, __s), __pat);
|
||||
}
|
||||
|
||||
namespace std {
|
||||
|
||||
using ::strpbrk;
|
||||
|
||||
# undef _RWSTD_NO_STRPBRK
|
||||
|
||||
#else
|
||||
#endif // _RWSTD_NO_STRPBRK
|
||||
|
||||
#ifndef _RWSTD_NO_STRRCHR
|
||||
using ::strrchr;
|
||||
#elif !defined (_RWSTD_NO_STRRCHR_IN_LIBC)
|
||||
|
||||
} // namespace std
|
||||
|
||||
extern "C" char* strrchr (char*, int);
|
||||
|
||||
inline const char* strrchr (const char *__s, int __c)
|
||||
{
|
||||
return strrchr (_RWSTD_CONST_CAST (char*, __s), __c);
|
||||
}
|
||||
|
||||
namespace std {
|
||||
|
||||
using ::strrchr;
|
||||
|
||||
# undef _RWSTD_NO_STRRCHR
|
||||
|
||||
#else // if defined (_RWSTD_NO_STRRCHR)
|
||||
|
||||
#endif // _RWSTD_NO_STRRCHR
|
||||
|
||||
#ifndef _RWSTD_NO_STRSPN
|
||||
using ::strspn;
|
||||
#else // if defined (_RWSTD_NO_STRSPN)
|
||||
#endif // _RWSTD_NO_STRSPN
|
||||
|
||||
#ifndef _RWSTD_NO_STRSTR
|
||||
using ::strstr;
|
||||
#elif !defined (_RWSTD_NO_STRSTR_IN_LIBC)
|
||||
|
||||
} // namespace std
|
||||
|
||||
extern "C" char* strstr (char*, const char*);
|
||||
|
||||
inline const char* strstr (const char *__s1, const char *__s2)
|
||||
{
|
||||
return strstr (_RWSTD_CONST_CAST (char*, __s1), __s2);
|
||||
}
|
||||
|
||||
namespace std {
|
||||
|
||||
using ::strstr;
|
||||
|
||||
# undef _RWSTD_NO_STRSTR
|
||||
|
||||
#else // if defined (_RWSTD_NO_STRSTR)
|
||||
#endif // _RWSTD_NO_STRSTR
|
||||
|
||||
#ifndef _RWSTD_NO_STRTOK
|
||||
using ::strtok;
|
||||
#else // if defined (_RWSTD_NO_STRTOK)
|
||||
#endif // _RWSTD_NO_STRTOK
|
||||
|
||||
#ifndef _RWSTD_NO_STRXFRM
|
||||
using ::strxfrm;
|
||||
#else // if defined (_RWSTD_NO_STRXFRM)
|
||||
#endif // _RWSTD_NO_STRXFRM
|
||||
|
||||
} // std
|
||||
|
||||
#endif // !NO_NAMESPACE && !NO_HONOR_STD && !NO_USING_LIBC_IN_STD
|
||||
|
||||
#endif // _RWSTD_CSTRING_INCLUDED
|
||||
|
||||
#endif // _RWSTD_NO_DEPRECATED_C_HEADERS
|
||||
|
||||
#endif // _RWSTD_NO_PURE_C_HEADERS
|
||||
Reference in New Issue
Block a user