From 92c3688a97530f013adfd64a394b9a286a20128f Mon Sep 17 00:00:00 2001 From: "Stephen M. Webb" Date: Mon, 2 Apr 2001 22:51:25 +0000 Subject: [PATCH] std_cstring.h: Fix for const-correctness. 2001-04-02 Stephen M. Webb * include/c_std/bits/std_cstring.h: Fix for const-correctness. * include/c_std/bits/std_cwchar.h: Same. * testsuite/21_strings/c_strings.cc: Add. From-SVN: r41019 --- libstdc++-v3/ChangeLog | 6 ++++ libstdc++-v3/include/c_std/bits/std_cstring.h | 35 ++++++++++++++++--- libstdc++-v3/include/c_std/bits/std_cwchar.h | 35 ++++++++++++++++--- 3 files changed, 66 insertions(+), 10 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index a0914cfbdf2..ceb86b2c764 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2001-04-02 Stephen M. Webb + + * include/c_std/bits/std_cstring.h: Fix for const-correctness. + * include/c_std/bits/std_cwchar.h: Same. + * testsuite/21_strings/c_strings.cc: Add. + 2001-04-01 Benjamin Kosnik * docs/html/configopts.html: Add --enable-sjlj-exceptions docs. diff --git a/libstdc++-v3/include/c_std/bits/std_cstring.h b/libstdc++-v3/include/c_std/bits/std_cstring.h index 7429e6570e2..52b490264ed 100644 --- a/libstdc++-v3/include/c_std/bits/std_cstring.h +++ b/libstdc++-v3/include/c_std/bits/std_cstring.h @@ -79,13 +79,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); - extern "C" void* memchr(const void*, int, size_t); - extern "C" char* strchr(const char*, int); + extern "C" const void* memchr(const void*, int, size_t); + inline void* + memchr(void* __p, int __c, size_t __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 const_cast(strchr(const_cast(__s1), __n)); + } extern "C" size_t strcspn(const char*, const char*); - extern "C" char* strpbrk(const char*, const char*); - extern "C" char* strrchr(const char*, int); + extern "C" const char* strpbrk(const char*, const char*); + inline char* + strpbrk(char* __s1, const char* __s2) + { + return const_cast(strpbrk(const_cast(__s1), __s2)); + } + extern "C" const char* strrchr(const char*, int); + inline char* + strrchr(char* __s1, int __n) + { + return const_cast(strrchr(const_cast(__s1), __n)); + } extern "C" size_t strspn(const char*, const char*); - extern "C" char* strstr(const char*, const char*); + extern "C" const char* strstr(const char*, const char*); + inline char* + strstr(char* __s1, const char* __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 d2ac5bbdda3..e9e987adfd7 100644 --- a/libstdc++-v3/include/c_std/bits/std_cwchar.h +++ b/libstdc++-v3/include/c_std/bits/std_cwchar.h @@ -157,15 +157,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); - extern "C" wchar_t* wcschr(const wchar_t*, wchar_t); + extern "C" const wchar_t* wcschr(const wchar_t*, wchar_t); + inline wchar_t* + wcschr(wchar_t* __p, wchar_t __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*); - extern "C" wchar_t* wcspbrk(const wchar_t*, const wchar_t*); - extern "C" wchar_t* wcsrchr(const wchar_t*, wchar_t); + extern "C" const wchar_t* wcspbrk(const wchar_t*, const wchar_t*); + inline wchar_t* + wcspbrk(wchar_t* __s1, wchar_t* __s2) + { + 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 const_cast(wcsrchr(const_cast(__p), __c)); + } extern "C" size_t wcsspn(const wchar_t*, const wchar_t*); - extern "C" wchar_t* wcsstr(const wchar_t*, const wchar_t*); + extern "C" const wchar_t* wcsstr(const wchar_t*, const wchar_t*); + inline wchar_t* + wcsstr(wchar_t* __s1, wchar_t* __s2) + { + return const_cast(wcsstr(const_cast(__s1), __s2)); + } extern "C" wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**); - extern "C" wchar_t* wmemchr(const wchar_t*, wchar_t, size_t); + 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 const_cast(wmemchr(const_cast(__p), __c, __n)); + } extern "C" int wmemcmp(const wchar_t*, const wchar_t*, size_t); //extern "C" int wmemcmp(wchar_t*, const wchar_t*, size_t); extern "C" wchar_t* wmemcpy(wchar_t*, const wchar_t*, size_t);