home *** CD-ROM | disk | FTP | other *** search
- // The -*- C++ -*- null-terminated string header.
- // This file is part of the GNU ANSI C++ Library.
-
- #ifndef __CSTRING__
- #define __CSTRING__
-
- #include <string.h>
-
- #if 0 // Let's not bother with this just yet.
- #include <cstddef>
-
- #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<char *> (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<char *> (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<char *> (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<char *> (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<void *> (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__)
-