diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b64845ffb4f..af79841e9be 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,21 @@ +2001-05-21 Stephen M. Webb + + * include/c_std/bits/std_cstring.h (memchr): Define "C" functions to + __glibcpp_memchr. + (strchr): Same, but to __glibcpp_strchr. + (strpbrk): Same. + (strrchr): Same. + (strstr): Same. + * include/c_std/bits/std_cwchar.h (wcschr): Same. + (wcsbrk): Same. + (wcsrchr): Same. + (wcsstr): Same. + (wmemchr): Same. + +2001-05-21 Benjamin Kosnik + + * testsuite/21_strings/c_strings.cc (main): Fix. + 2001-05-19 Phil Edwards * acinclude.m4: Fix --help spacing, correct comments. diff --git a/libstdc++-v3/include/c_std/bits/std_cstring.h b/libstdc++-v3/include/c_std/bits/std_cstring.h index 0134eb22d8f..02b7cda8722 100644 --- a/libstdc++-v3/include/c_std/bits/std_cstring.h +++ b/libstdc++-v3/include/c_std/bits/std_cstring.h @@ -39,6 +39,14 @@ #include #include + +// Need to mangle these "C" functions because C++ modifies their signature. +#define memchr __glibcpp_memchr +#define strchr __glibcpp_strchr +#define strpbrk __glibcpp_strpbrk +#define strrchr __glibcpp_strrchr +#define strstr __glibcpp_strstr + #pragma GCC system_header #include @@ -79,51 +87,38 @@ namespace std extern "C" int strcoll(const char*, const char*); extern "C" int strncmp(const char*, const char*, size_t); extern "C" size_t strxfrm(char*, const char*, size_t); - - inline const void* - memchr(const void* __p, int __c, size_t __n) - { return const_cast(::memchr(__p, __c, __n)); } - + extern "C" const void* memchr(const void*, int, size_t); inline void* memchr(void* __p, int __c, size_t __n) - { return ::memchr(const_cast(__p), __c, __n); } - - inline const char* - strchr(const char* __s1, int __n) - { return const_cast(::strchr(__s1, __n)); } - + { + return const_cast(memchr(const_cast(__p), __c, __n)); + } + extern "C" const char* strchr(const char*, int); inline char* strchr(char* __s1, int __n) - { return ::strchr(const_cast(__s1), __n); } - + { + return const_cast(strchr(const_cast(__s1), __n)); + } extern "C" size_t strcspn(const char*, const char*); - - inline const char* - strpbrk(const char* __s1, const char* __s2) - { return const_cast(::strpbrk(__s1, __s2)); } - + extern "C" const char* strpbrk(const char*, const char*); inline char* strpbrk(char* __s1, const char* __s2) - { return ::strpbrk(const_cast(__s1), __s2); } - - inline const char* - strrchr(const char* __s1, int __n) - { return const_cast(::strrchr(__s1, __n)); } - + { + return const_cast(strpbrk(const_cast(__s1), __s2)); + } + extern "C" const char* strrchr(const char*, int); inline char* strrchr(char* __s1, int __n) - { return ::strrchr(const_cast(__s1), __n); } - + { + return const_cast(strrchr(const_cast(__s1), __n)); + } extern "C" size_t strspn(const char*, const char*); - - inline const char* - strstr(const char* __s1, const char* __s2) - { return const_cast(::strstr(__s1, __s2)); } - + extern "C" const char* strstr(const char*, const char*); inline char* strstr(char* __s1, const char* __s2) - { return ::strstr(const_cast(__s1), __s2); } - + { + return const_cast(strstr(const_cast(__s1), __s2)); + } extern "C" char* strtok(char*, const char*); extern "C" void* memset(void*, int, size_t); extern "C" char* strerror(int); diff --git a/libstdc++-v3/include/c_std/bits/std_cwchar.h b/libstdc++-v3/include/c_std/bits/std_cwchar.h index 27659354771..d3fe012b7b8 100644 --- a/libstdc++-v3/include/c_std/bits/std_cwchar.h +++ b/libstdc++-v3/include/c_std/bits/std_cwchar.h @@ -42,6 +42,13 @@ #include #if _GLIBCPP_HAVE_WCHAR_H +// Need to mangle these "C" functions because C++ modifies their signature. +#define wcschr __glibcpp_wcschr +#define wcsbrk __glibcpp_wcspbrk +#define wcsrchr __glibcpp_wcsrchr +#define wcsstr __glibcpp_wcsstr +#define wmemchr __glibcpp_wmemchr + #pragma GCC system_header #include #endif @@ -156,54 +163,40 @@ namespace std extern "C" int wcscoll(const wchar_t*, const wchar_t*); extern "C" int wcsncmp(const wchar_t*, const wchar_t*, size_t); extern "C" size_t wcsxfrm(wchar_t*, const wchar_t*, size_t); - - inline const wchar_t* - wcschr(const wchar_t* __p, wchar_t __c) - { return const_cast(::wcschr(__p, __c)); } - + extern "C" const wchar_t* wcschr(const wchar_t*, wchar_t); inline wchar_t* wcschr(wchar_t* __p, wchar_t __c) - { return ::wcschr(const_cast(__p), __c); } - + { + return const_cast(wcschr(const_cast(__p), __c)); + } extern "C" size_t wcscspn(const wchar_t*, const wchar_t*); extern "C" size_t wcslen(const wchar_t*); - - inline const wchar_t* - wcspbrk(const wchar_t* __s1, wchar_t* __s2) - { return const_cast(::wcspbrk(__s1, __s2)); } - + extern "C" const wchar_t* wcspbrk(const wchar_t*, const wchar_t*); inline wchar_t* wcspbrk(wchar_t* __s1, wchar_t* __s2) - { return ::wcspbrk(const_cast(__s1), __s2); } - - inline const wchar_t* - wcsrchr(const wchar_t* __p, wchar_t __c) - { return const_cast(::wcsrchr(__p, __c)); } - + { + return const_cast(wcspbrk(const_cast(__s1), __s2)); + } + extern "C" const wchar_t* wcsrchr(const wchar_t*, wchar_t); inline wchar_t* wcsrchr(wchar_t* __p, wchar_t __c) - { return ::wcsrchr(const_cast(__p), __c); } - + { + return const_cast(wcsrchr(const_cast(__p), __c)); + } extern "C" size_t wcsspn(const wchar_t*, const wchar_t*); - - inline const wchar_t* - wcsstr(const wchar_t* __s1, wchar_t* __s2) - { return const_cast(::wcsstr(__s1, __s2)); } - + extern "C" const wchar_t* wcsstr(const wchar_t*, const wchar_t*); inline wchar_t* wcsstr(wchar_t* __s1, wchar_t* __s2) - { return ::wcsstr(const_cast(__s1), __s2); } - + { + return const_cast(wcsstr(const_cast(__s1), __s2)); + } extern "C" wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**); - - inline const wchar_t* - wmemchr(const wchar_t* __p, wchar_t __c, size_t __n) - { return const_cast(::wmemchr(__p, __c, __n)); } - + extern "C" const wchar_t* wmemchr(const wchar_t*, wchar_t, size_t); inline wchar_t* wmemchr(wchar_t* __p, wchar_t __c, size_t __n) - { return ::wmemchr(const_cast(__p), __c, __n); } - + { + return const_cast(wmemchr(const_cast(__p), __c, __n)); + } extern "C" int wmemcmp(const wchar_t*, const wchar_t*, size_t); extern "C" wchar_t* wmemcpy(wchar_t*, const wchar_t*, size_t); extern "C" wchar_t* wmemmove(wchar_t*, const wchar_t*, size_t);