mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			284 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			284 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C++
		
	
	
	
| // -*- C++ -*- header wrapper.
 | |
| 
 | |
| // Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc.
 | |
| //
 | |
| // This file is part of the GNU ISO C++ Library.  This library is free
 | |
| // software; you can redistribute it and/or modify it under the
 | |
| // terms of the GNU General Public License as published by the
 | |
| // Free Software Foundation; either version 2, or (at your option)
 | |
| // any later version.
 | |
| 
 | |
| // This library is distributed in the hope that it will be useful,
 | |
| // but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| // GNU General Public License for more details.
 | |
| 
 | |
| // You should have received a copy of the GNU General Public License along
 | |
| // with this library; see the file COPYING.  If not, write to the Free
 | |
| // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 | |
| // USA.
 | |
| 
 | |
| // As a special exception, you may use this file as part of a free software
 | |
| // library without restriction.  Specifically, if other files instantiate
 | |
| // templates or use macros or inline functions from this file, or you compile
 | |
| // this file and link it with other files to produce an executable, this
 | |
| // file does not by itself cause the resulting executable to be covered by
 | |
| // the GNU General Public License.  This exception does not however
 | |
| // invalidate any other reasons why the executable file might be covered by
 | |
| // the GNU General Public License.
 | |
| 
 | |
| //
 | |
| // ISO C++ 14882: 27.8.2  C Library files
 | |
| //
 | |
| 
 | |
| #ifndef _CPP_CSTDIO
 | |
| #define _CPP_CSTDIO 1
 | |
| 
 | |
| # include <bits/std_cstddef.h>  
 | |
| # include <bits/std_cstdarg.h>  
 | |
| 
 | |
| namespace _C_legacy {
 | |
|   extern "C" {
 | |
| #     define _IN_C_LEGACY_
 | |
| #     undef __need_FILE
 | |
| #     pragma GCC system_header
 | |
| #     include_next <stdio.h>
 | |
|   }
 | |
| 
 | |
|   typedef FILE _CPP_FILE_capture;
 | |
|   typedef fpos_t _CPP_fpos_t_capture;
 | |
| 
 | |
|   inline FILE* 
 | |
|   _CPP_stderr_capture() { return stderr; }
 | |
| 
 | |
|   inline FILE* 
 | |
|   _CPP_stdin_capture()  { return stdin; }
 | |
| 
 | |
|   inline FILE* 
 | |
|   _CPP_stdout_capture() { return stdout; }
 | |
| 
 | |
|   inline int 
 | |
|   _CPP_getc_capture(FILE* __f) { return getc(__f); }
 | |
| 
 | |
|   inline int 
 | |
|   _CPP_getchar_capture() { return getchar(); }
 | |
| 
 | |
|   inline int 
 | |
|   _CPP_putc_capture(int __c, FILE* __f) { return putc(__c, __f); }
 | |
|   
 | |
|   inline int 
 | |
|   _CPP_putchar_capture(int __c) { return putchar(__c); }
 | |
|  
 | |
|   inline int 
 | |
|   _CPP_feof_capture(FILE* __f) { return feof(__f); }
 | |
| 
 | |
| } // namespace _C_legacy
 | |
| 
 | |
| # undef FILE 
 | |
| # undef fpos_t 
 | |
| 
 | |
| # undef remove
 | |
| # undef rename
 | |
| # undef tmpfile
 | |
| # undef tmpnam
 | |
| # undef fclose
 | |
| # undef fflush
 | |
| # undef fopen
 | |
| # undef freopen
 | |
| # undef setbuf
 | |
| # undef setvbuf
 | |
| # undef fprintf
 | |
| # undef fscanf
 | |
| # undef printf
 | |
| # undef scanf
 | |
| # undef sprintf
 | |
| # undef sscanf
 | |
| # undef vfprintf
 | |
| # undef vprintf
 | |
| # undef vsprintf
 | |
| # undef fgetc
 | |
| # undef fgets
 | |
| # undef fputc
 | |
| # undef fputs
 | |
| # undef getc
 | |
| # undef getchar
 | |
| # undef gets
 | |
| # undef putc
 | |
| # undef putchar
 | |
| # undef puts
 | |
| # undef ungetc
 | |
| # undef fread
 | |
| # undef fwrite
 | |
| # undef fgetpos
 | |
| # undef fseek
 | |
| # undef fsetpos
 | |
| # undef ftell
 | |
| # undef rewind
 | |
| # undef clearerr
 | |
| # undef feof
 | |
| # undef ferror
 | |
| # undef perror
 | |
|   
 | |
| # undef stderr
 | |
| # define stderr std::_CPP_stderr()
 | |
| # undef stdin
 | |
| # define stdin  std::_CPP_stdin()
 | |
| # undef stdout
 | |
| # define stdout std::_CPP_stdout()
 | |
| 
 | |
| namespace std {
 | |
|   struct FILE : _C_legacy::_CPP_FILE_capture { };
 | |
|   struct fpos_t { _C_legacy::_CPP_fpos_t_capture _M_dummy; };
 | |
| 
 | |
|   using _C_legacy::remove;
 | |
|   using _C_legacy::rename;
 | |
|   using _C_legacy::tmpnam;
 | |
|   using _C_legacy::printf;
 | |
|   using _C_legacy::scanf;
 | |
|   using _C_legacy::sprintf;
 | |
|   using _C_legacy::sscanf;
 | |
|   using _C_legacy::gets;
 | |
|   using _C_legacy::perror;
 | |
| 
 | |
|   inline FILE* 
 | |
|   _CPP_stderr()
 | |
|   { return reinterpret_cast<FILE*>(_C_legacy::_CPP_stderr_capture() ); }
 | |
| 
 | |
|   inline FILE* 
 | |
|   _CPP_stdin()
 | |
|   { return reinterpret_cast<FILE*>(_C_legacy::_CPP_stdin_capture() ); }
 | |
| 
 | |
|   inline FILE* 
 | |
|   _CPP_stdout()
 | |
|   { return reinterpret_cast<FILE*>(_C_legacy::_CPP_stdout_capture() ); }
 | |
| 
 | |
|   inline FILE*
 | |
|   tmpfile() { return reinterpret_cast<FILE*>(_C_legacy::tmpfile()); }
 | |
| 
 | |
|   inline int
 | |
|   fclose(FILE* __f) { return _C_legacy::fclose(__f); }
 | |
| 
 | |
|   inline int
 | |
|   fflush(FILE* __f) { return _C_legacy::fflush(__f); }
 | |
| 
 | |
|   inline FILE*
 | |
|   fopen(char const* __name, char const* __mode) 
 | |
|   { return reinterpret_cast<FILE*>(_C_legacy::fopen(__name,__mode)); }
 | |
| 
 | |
|   inline FILE*
 | |
|   freopen(char const* __name, char const* __mode, FILE* __f) 
 | |
|   { return reinterpret_cast<FILE*>(_C_legacy::freopen(__name,__mode,__f)); }
 | |
| 
 | |
|   inline void
 | |
|   setbuf(FILE* __f, char* __buf) 
 | |
|   { return _C_legacy::setbuf(__f, __buf); }
 | |
| 
 | |
|   inline int
 | |
|   setvbuf(FILE* __f, char* __buf, int __mode, size_t __size) 
 | |
|   { return _C_legacy::setvbuf(__f, __buf, __mode, __size); }
 | |
| 
 | |
|   inline int
 | |
|   fprintf(FILE* __f, char const* __fmt, ...)
 | |
|   { 
 | |
|     va_list __v; 
 | |
|     va_start(__v,__fmt); 
 | |
|     int __i = _C_legacy::vfprintf(__f, __fmt, __v); 
 | |
|     va_end(__v);
 | |
|     return __i; 
 | |
|   }
 | |
| 
 | |
|   inline int
 | |
|   fscanf(FILE* __f, char const* __fmt, ...)
 | |
|   { 
 | |
|     va_list __v; 
 | |
|     va_start(__v,__fmt); 
 | |
|     int __i = _C_legacy::vfscanf(__f, __fmt, __v); 
 | |
|     va_end(__v);
 | |
|     return __i; 
 | |
|   }
 | |
| 
 | |
|   inline int
 | |
|   vfprintf(FILE* __f, char const* __fmt, va_list __v)
 | |
|   { return _C_legacy::vfprintf(__f, __fmt, __v); }
 | |
| 
 | |
|   inline int
 | |
|   vprintf(char const* __fmt, va_list __v)
 | |
|   { return _C_legacy::vprintf(__fmt, __v); }
 | |
| 
 | |
|   inline int
 | |
|   vsprintf(char* __buf, char const* __fmt, va_list __v)
 | |
|   { return _C_legacy::vsprintf(__buf, __fmt, __v); }
 | |
| 
 | |
|   inline int
 | |
|   fgetc(FILE* __f) { return _C_legacy::fgetc(__f); }
 | |
| 
 | |
|   inline char*
 | |
|   fgets(char* __buf, int __n, FILE* __f) 
 | |
|   { return _C_legacy::fgets(__buf, __n, __f); }
 | |
| 
 | |
|   inline int
 | |
|   fputc(int __c, FILE* __f) { return _C_legacy::fputc(__c, __f); }
 | |
| 
 | |
|   inline int
 | |
|   fputs(char const* __s, FILE* __f) 
 | |
|   { return _C_legacy::fputs(__s, __f); }
 | |
| 
 | |
|   inline int
 | |
|   getc(FILE* __f) { return _C_legacy::_CPP_getc_capture(__f); }
 | |
| 
 | |
|   inline int
 | |
|   getchar() { return _C_legacy::_CPP_getchar_capture(); }
 | |
| 
 | |
|   inline int
 | |
|   putc(int __c, FILE* __f) 
 | |
|   { return _C_legacy::_CPP_putc_capture(__c, __f); }
 | |
| 
 | |
|   inline int
 | |
|   putchar(int __c) { return _C_legacy::_CPP_putchar_capture(__c); }
 | |
| 
 | |
|   using _C_legacy::puts;
 | |
| 
 | |
|   inline int
 | |
|   ungetc(int __c, FILE* __f) { return _C_legacy::ungetc(__c, __f); }
 | |
| 
 | |
|   inline size_t
 | |
|   fread(void* __p, size_t __z, size_t __n, FILE* __f)
 | |
|   { return _C_legacy::fread(__p,__z,__n,__f); }
 | |
| 
 | |
|   inline size_t
 | |
|   fwrite(void const* __p, size_t __z, size_t __n, FILE* __f)
 | |
|   { return _C_legacy::fwrite(__p,__z,__n,__f); }
 | |
| 
 | |
|   inline int
 | |
|   fgetpos(FILE* __f, fpos_t* __pos)
 | |
|   { return _C_legacy::fgetpos(__f,&__pos->_M_dummy); }
 | |
| 
 | |
|   inline int
 | |
|   fseek(FILE* __f, long __off, int __how)
 | |
|   { return _C_legacy::fseek(__f,__off,__how); }
 | |
| 
 | |
|   inline int
 | |
|   fsetpos(FILE* __f, fpos_t const* __pos)
 | |
|   { return _C_legacy::fsetpos(__f,&__pos->_M_dummy); }
 | |
| 
 | |
|   inline long
 | |
|   ftell(FILE* __f) { return _C_legacy::ftell(__f); }
 | |
| 
 | |
|   inline void
 | |
|   rewind(FILE* __f) { return _C_legacy::rewind(__f); }
 | |
| 
 | |
|   inline void
 | |
|   clearerr(FILE* __f) { return _C_legacy::clearerr(__f); }
 | |
| 
 | |
|   inline int
 | |
|   feof(FILE* __f) { return _C_legacy::_CPP_feof_capture(__f); }
 | |
| 
 | |
|   inline int
 | |
|   ferror(FILE* __f) { return _C_legacy::ferror(__f); }
 | |
| } // namespace std
 | |
| 
 | |
| # undef _IN_C_LEGACY_
 | |
| 
 | |
| #endif
 | |
| 
 |