Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. // -*- C++ -*- forwarding header.
  2.  
  3. // Copyright (C) 1997-2013 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 include/cstdio
  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 stdio.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: 27.8.2  C Library files
  37. //
  38.  
  39. #pragma GCC system_header
  40.  
  41. #include <bits/c++config.h>
  42. #include <stdio.h>
  43.  
  44. #ifndef _GLIBCXX_CSTDIO
  45. #define _GLIBCXX_CSTDIO 1
  46.  
  47. #ifndef _GLIBCXX_HAVE_GETS
  48. extern "C" char* gets (char* __s) __attribute__((deprecated));
  49. #endif
  50.  
  51. // Get rid of those macros defined in <stdio.h> in lieu of real functions.
  52. #undef clearerr
  53. #undef fclose
  54. #undef feof
  55. #undef ferror
  56. #undef fflush
  57. #undef fgetc
  58. #undef fgetpos
  59. #undef fgets
  60. #undef fopen
  61. #undef fprintf
  62. #undef fputc
  63. #undef fputs
  64. #undef fread
  65. #undef freopen
  66. #undef fscanf
  67. #undef fseek
  68. #undef fsetpos
  69. #undef ftell
  70. #undef fwrite
  71. #undef getc
  72. #undef gets
  73. #undef perror
  74. #undef printf
  75. #undef putc
  76. #undef putchar
  77. #undef puts
  78. #undef remove
  79. #undef rename
  80. #undef rewind
  81. #undef scanf
  82. #undef setbuf
  83. #undef setvbuf
  84. #undef sprintf
  85. #undef sscanf
  86. #undef tmpfile
  87. #undef tmpnam
  88. #undef ungetc
  89. #undef vfprintf
  90. #undef vprintf
  91. #undef vsprintf
  92.  
  93. namespace std
  94. {
  95.   using ::FILE;
  96.   using ::fpos_t;
  97.  
  98.   using ::clearerr;
  99.   using ::fclose;
  100.   using ::feof;
  101.   using ::ferror;
  102.   using ::fflush;
  103.   using ::fgetc;
  104.   using ::fgetpos;
  105.   using ::fgets;
  106.   using ::fopen;
  107.   using ::fprintf;
  108.   using ::fputc;
  109.   using ::fputs;
  110.   using ::fread;
  111.   using ::freopen;
  112.   using ::fscanf;
  113.   using ::fseek;
  114.   using ::fsetpos;
  115.   using ::ftell;
  116.   using ::fwrite;
  117.   using ::getc;
  118.   using ::getchar;
  119.   using ::gets;
  120.   using ::perror;
  121.   using ::printf;
  122.   using ::putc;
  123.   using ::putchar;
  124.   using ::puts;
  125.   using ::remove;
  126.   using ::rename;
  127.   using ::rewind;
  128.   using ::scanf;
  129.   using ::setbuf;
  130.   using ::setvbuf;
  131.   using ::sprintf;
  132.   using ::sscanf;
  133.   using ::tmpfile;
  134.   using ::tmpnam;
  135.   using ::ungetc;
  136.   using ::vfprintf;
  137.   using ::vprintf;
  138.   using ::vsprintf;
  139. } // namespace
  140.  
  141. #if _GLIBCXX_USE_C99
  142.  
  143. #undef snprintf
  144. #undef vfscanf
  145. #undef vscanf
  146. #undef vsnprintf
  147. #undef vsscanf
  148.  
  149. namespace __gnu_cxx
  150. {
  151. #if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
  152.   extern "C" int
  153.   (snprintf)(char * __restrict, std::size_t, const char * __restrict, ...)
  154.   throw ();
  155.   extern "C" int
  156.   (vfscanf)(FILE * __restrict, const char * __restrict, __gnuc_va_list);
  157.   extern "C" int (vscanf)(const char * __restrict, __gnuc_va_list);
  158.   extern "C" int
  159.   (vsnprintf)(char * __restrict, std::size_t, const char * __restrict,
  160.               __gnuc_va_list) throw ();
  161.   extern "C" int
  162.   (vsscanf)(const char * __restrict, const char * __restrict, __gnuc_va_list)
  163.   throw ();
  164. #endif
  165.  
  166. #if !_GLIBCXX_USE_C99_DYNAMIC
  167.   using ::snprintf;
  168.   using ::vfscanf;
  169.   using ::vscanf;
  170.   using ::vsnprintf;
  171.   using ::vsscanf;
  172. #endif
  173. } // namespace __gnu_cxx
  174.  
  175. namespace std
  176. {
  177.   using ::__gnu_cxx::snprintf;
  178.   using ::__gnu_cxx::vfscanf;
  179.   using ::__gnu_cxx::vscanf;
  180.   using ::__gnu_cxx::vsnprintf;
  181.   using ::__gnu_cxx::vsscanf;
  182. } // namespace std
  183.  
  184. #endif // _GLIBCXX_USE_C99
  185.  
  186. #endif
  187.