Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

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