1*e4b17023SJohn Marino// -*- C++ -*- forwarding header. 2*e4b17023SJohn Marino 3*e4b17023SJohn Marino// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 4*e4b17023SJohn Marino// 2006, 2007, 2008, 2009, 2010 5*e4b17023SJohn Marino// Free Software Foundation, Inc. 6*e4b17023SJohn Marino// 7*e4b17023SJohn Marino// This file is part of the GNU ISO C++ Library. This library is free 8*e4b17023SJohn Marino// software; you can redistribute it and/or modify it under the 9*e4b17023SJohn Marino// terms of the GNU General Public License as published by the 10*e4b17023SJohn Marino// Free Software Foundation; either version 3, or (at your option) 11*e4b17023SJohn Marino// any later version. 12*e4b17023SJohn Marino 13*e4b17023SJohn Marino// This library is distributed in the hope that it will be useful, 14*e4b17023SJohn Marino// but WITHOUT ANY WARRANTY; without even the implied warranty of 15*e4b17023SJohn Marino// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*e4b17023SJohn Marino// GNU General Public License for more details. 17*e4b17023SJohn Marino 18*e4b17023SJohn Marino// Under Section 7 of GPL version 3, you are granted additional 19*e4b17023SJohn Marino// permissions described in the GCC Runtime Library Exception, version 20*e4b17023SJohn Marino// 3.1, as published by the Free Software Foundation. 21*e4b17023SJohn Marino 22*e4b17023SJohn Marino// You should have received a copy of the GNU General Public License and 23*e4b17023SJohn Marino// a copy of the GCC Runtime Library Exception along with this program; 24*e4b17023SJohn Marino// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 25*e4b17023SJohn Marino// <http://www.gnu.org/licenses/>. 26*e4b17023SJohn Marino 27*e4b17023SJohn Marino/** @file cstring 28*e4b17023SJohn Marino * This is a Standard C++ Library file. You should @c #include this file 29*e4b17023SJohn Marino * in your programs, rather than any of the @a *.h implementation files. 30*e4b17023SJohn Marino * 31*e4b17023SJohn Marino * This is the C++ version of the Standard C Library header @c string.h, 32*e4b17023SJohn Marino * and its contents are (mostly) the same as that header, but are all 33*e4b17023SJohn Marino * contained in the namespace @c std (except for names which are defined 34*e4b17023SJohn Marino * as macros in C). 35*e4b17023SJohn Marino */ 36*e4b17023SJohn Marino 37*e4b17023SJohn Marino// 38*e4b17023SJohn Marino// ISO C++ 14882: 20.4.6 C library 39*e4b17023SJohn Marino// 40*e4b17023SJohn Marino 41*e4b17023SJohn Marino#ifndef _GLIBCXX_CSTRING 42*e4b17023SJohn Marino#define _GLIBCXX_CSTRING 1 43*e4b17023SJohn Marino 44*e4b17023SJohn Marino#pragma GCC system_header 45*e4b17023SJohn Marino 46*e4b17023SJohn Marino#include <bits/c++config.h> 47*e4b17023SJohn Marino#include <string.h> 48*e4b17023SJohn Marino 49*e4b17023SJohn Marino// Get rid of those macros defined in <string.h> in lieu of real functions. 50*e4b17023SJohn Marino#undef memcpy 51*e4b17023SJohn Marino#undef memmove 52*e4b17023SJohn Marino#undef strcpy 53*e4b17023SJohn Marino#undef strncpy 54*e4b17023SJohn Marino#undef strcat 55*e4b17023SJohn Marino#undef strncat 56*e4b17023SJohn Marino#undef memcmp 57*e4b17023SJohn Marino#undef strcmp 58*e4b17023SJohn Marino#undef strcoll 59*e4b17023SJohn Marino#undef strncmp 60*e4b17023SJohn Marino#undef strxfrm 61*e4b17023SJohn Marino#undef memchr 62*e4b17023SJohn Marino#undef strchr 63*e4b17023SJohn Marino#undef strcspn 64*e4b17023SJohn Marino#undef strpbrk 65*e4b17023SJohn Marino#undef strrchr 66*e4b17023SJohn Marino#undef strspn 67*e4b17023SJohn Marino#undef strstr 68*e4b17023SJohn Marino#undef strtok 69*e4b17023SJohn Marino#undef memset 70*e4b17023SJohn Marino#undef strerror 71*e4b17023SJohn Marino#undef strlen 72*e4b17023SJohn Marino 73*e4b17023SJohn Marinonamespace std _GLIBCXX_VISIBILITY(default) 74*e4b17023SJohn Marino{ 75*e4b17023SJohn Marino_GLIBCXX_BEGIN_NAMESPACE_VERSION 76*e4b17023SJohn Marino 77*e4b17023SJohn Marino using ::memcpy; 78*e4b17023SJohn Marino using ::memmove; 79*e4b17023SJohn Marino using ::strcpy; 80*e4b17023SJohn Marino using ::strncpy; 81*e4b17023SJohn Marino using ::strcat; 82*e4b17023SJohn Marino using ::strncat; 83*e4b17023SJohn Marino using ::memcmp; 84*e4b17023SJohn Marino using ::strcmp; 85*e4b17023SJohn Marino using ::strcoll; 86*e4b17023SJohn Marino using ::strncmp; 87*e4b17023SJohn Marino using ::strxfrm; 88*e4b17023SJohn Marino using ::strcspn; 89*e4b17023SJohn Marino using ::strspn; 90*e4b17023SJohn Marino using ::strtok; 91*e4b17023SJohn Marino using ::memset; 92*e4b17023SJohn Marino using ::strerror; 93*e4b17023SJohn Marino using ::strlen; 94*e4b17023SJohn Marino using ::memchr; 95*e4b17023SJohn Marino using ::strchr; 96*e4b17023SJohn Marino using ::strpbrk; 97*e4b17023SJohn Marino using ::strrchr; 98*e4b17023SJohn Marino using ::strstr; 99*e4b17023SJohn Marino 100*e4b17023SJohn Marino#ifndef __CORRECT_ISO_CPP_STRING_H_PROTO 101*e4b17023SJohn Marino inline void* 102*e4b17023SJohn Marino memchr(void* __s, int __c, size_t __n) 103*e4b17023SJohn Marino { return __builtin_memchr(__s, __c, __n); } 104*e4b17023SJohn Marino 105*e4b17023SJohn Marino inline char* 106*e4b17023SJohn Marino strchr(char* __s, int __n) 107*e4b17023SJohn Marino { return __builtin_strchr(__s, __n); } 108*e4b17023SJohn Marino 109*e4b17023SJohn Marino inline char* 110*e4b17023SJohn Marino strpbrk(char* __s1, const char* __s2) 111*e4b17023SJohn Marino { return __builtin_strpbrk(__s1, __s2); } 112*e4b17023SJohn Marino 113*e4b17023SJohn Marino inline char* 114*e4b17023SJohn Marino strrchr(char* __s, int __n) 115*e4b17023SJohn Marino { return __builtin_strrchr(__s, __n); } 116*e4b17023SJohn Marino 117*e4b17023SJohn Marino inline char* 118*e4b17023SJohn Marino strstr(char* __s1, const char* __s2) 119*e4b17023SJohn Marino { return __builtin_strstr(__s1, __s2); } 120*e4b17023SJohn Marino#endif 121*e4b17023SJohn Marino 122*e4b17023SJohn Marino_GLIBCXX_END_NAMESPACE_VERSION 123*e4b17023SJohn Marino} // namespace 124*e4b17023SJohn Marino 125*e4b17023SJohn Marino#endif 126