// The -*- C++ -*- null-terminated string header. // This file is part of the GNU ANSI C++ Library. #ifndef __CSTRING__ #define __CSTRING__ #include #if 0 // Let's not bother with this just yet. #include #ifdef __GNUG__ #pragma interface "cstring" #endif // The ANSI C prototypes for these functions have a const argument type and // non-const return type, so we can't use them. extern "C++" { extern inline const char * _G_strchr (const char *s, int c) { return strchr (s, c); } extern inline char * _G_strchr (char *s, int c) { return const_cast (strchr (s, c)); } extern inline const char * _G_strpbrk (const char *s1, const char *s2) { return strpbrk (s1, s2); } extern inline char * _G_strpbrk (char *s1, const char *s2) { return const_cast (strpbrk (s1, s2)); } extern inline const char * _G_strrchr (const char *s, int c) { return strrchr (s, c); } extern inline char * _G_strrchr (char *s, int c) { return const_cast (strrchr (s, c)); } extern inline const char * _G_strstr (const char *s1, const char *s2) { return strstr (s1, s2); } extern inline char * _G_strstr (char *s1, const char *s2) { return const_cast (strstr (s1, s2)); } extern inline const void * _G_memchr (const void *s, int c, size_t n) { return memchr (s, c, n); } extern inline void * _G_memchr (void *s, int c, size_t n) { return const_cast (memchr (s, c, n)); } } // extern "C++" // Lose any vendor macros for these functions. #undef strchr #undef strpbrk #undef strrchr #undef strstr #undef memchr // Ewww, namespace pollution. Anyone have a better idea? #define strchr _G_strchr #define strpbrk _G_strpbrk #define strrchr _G_strrchr #define strstr _G_strstr #define memchr _G_memchr #endif // 0 #endif // !defined (__CSTRING__)