Home | History | Annotate | Download | only in stl
      1 /*
      2  * Copyright (c) 1999
      3  * Boris Fomitchev
      4  *
      5  * This material is provided "as is", with absolutely no warranty expressed
      6  * or implied. Any use is at your own risk.
      7  *
      8  * Permission to use or copy this software for any purpose is hereby granted
      9  * without fee, provided the above notices are retained on all copies.
     10  * Permission to modify the code and to distribute modified code is granted,
     11  * provided the above notices are retained, and a notice that the code was
     12  * modified is included with the above copyright notice.
     13  *
     14  */
     15 
     16 #ifndef _STLP_INTERNAL_CSTDIO
     17 #define _STLP_INTERNAL_CSTDIO
     18 
     19 #if defined (__Lynx__)
     20 #  if defined (_STLP_HAS_INCLUDE_NEXT)
     21 #    include_next <stdarg.h>
     22 #  else
     23 #    include _STLP_NATIVE_C_HEADER(stdarg.h)
     24 #  endif
     25 #endif
     26 
     27 #if defined (_STLP_USE_NEW_C_HEADERS)
     28 #  if defined (_STLP_HAS_INCLUDE_NEXT)
     29 #    include_next <cstdio>
     30 #  else
     31 #    include _STLP_NATIVE_CPP_C_HEADER(cstdio)
     32 #  endif
     33 #else
     34 #  include <stdio.h>
     35 #endif
     36 
     37 #if defined (__MWERKS__)
     38 #  undef stdin
     39 #  undef stdout
     40 #  undef stderr
     41 #  define stdin   (&_STLP_VENDOR_CSTD::__files[0])
     42 #  define stdout  (&_STLP_VENDOR_CSTD::__files[1])
     43 #  define stderr  (&_STLP_VENDOR_CSTD::__files[2])
     44 #endif
     45 
     46 #if defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB < 1400) || defined (_STLP_USING_PLATFORM_SDK_COMPILER)
     47 inline int vsnprintf(char *s1, size_t n, const char *s2, va_list v)
     48 { return _STLP_VENDOR_CSTD::_vsnprintf(s1, n, s2, v); }
     49 #endif
     50 
     51 #if defined (_STLP_IMPORT_VENDOR_CSTD )
     52 _STLP_BEGIN_NAMESPACE
     53 using _STLP_VENDOR_CSTD::FILE;
     54 using _STLP_VENDOR_CSTD::fpos_t;
     55 using _STLP_VENDOR_CSTD::size_t;
     56 
     57 // undef obsolete macros
     58 #  undef putc
     59 #  undef getc
     60 #  undef getchar
     61 #  undef putchar
     62 #  undef feof
     63 #  undef ferror
     64 
     65 #  if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS)
     66 using _STLP_VENDOR_CSTD::clearerr;
     67 using _STLP_VENDOR_CSTD::fclose;
     68 using _STLP_VENDOR_CSTD::feof;
     69 using _STLP_VENDOR_CSTD::ferror;
     70 using _STLP_VENDOR_CSTD::fflush;
     71 using _STLP_VENDOR_CSTD::fgetc;
     72 using _STLP_VENDOR_CSTD::fgetpos;
     73 using _STLP_VENDOR_CSTD::fgets;
     74 using _STLP_VENDOR_CSTD::fopen;
     75 using _STLP_VENDOR_CSTD::fprintf;
     76 using _STLP_VENDOR_CSTD::fputc;
     77 using _STLP_VENDOR_CSTD::fputs;
     78 using _STLP_VENDOR_CSTD::fread;
     79 #    if !defined (_WIN32_WCE) || (_WIN32_WCE < 400)
     80 using _STLP_VENDOR_CSTD::freopen;
     81 #    endif
     82 using _STLP_VENDOR_CSTD::fscanf;
     83 using _STLP_VENDOR_CSTD::fseek;
     84 using _STLP_VENDOR_CSTD::fsetpos;
     85 using _STLP_VENDOR_CSTD::ftell;
     86 using _STLP_VENDOR_CSTD::fwrite;
     87 
     88 #    if  !(defined (__IBMCPP__) && (__IBMCPP__ >= 500))
     89 #      if !defined (_WIN32_WCE) || (_WIN32_WCE < 400) // Supplied as macros, TODO: use inline function to redirect to the macros?
     90  using _STLP_VENDOR_CSTD::getc;
     91  using _STLP_VENDOR_CSTD::putc;
     92 #      endif
     93  using _STLP_VENDOR_CSTD::getchar;
     94  using _STLP_VENDOR_CSTD::putchar;
     95 #    endif
     96 
     97 using _STLP_VENDOR_CSTD::gets;
     98 #    if !defined (_WIN32_WCE) || (_WIN32_WCE < 400)
     99 using _STLP_VENDOR_CSTD::perror;
    100 #    endif
    101 using _STLP_VENDOR_CSTD::printf;
    102 using _STLP_VENDOR_CSTD::puts;
    103 #    if !defined (_WIN32_WCE) || (_WIN32_WCE < 400)
    104 using _STLP_VENDOR_CSTD::remove;
    105 using _STLP_VENDOR_CSTD::rename;
    106 using _STLP_VENDOR_CSTD::rewind;
    107 using _STLP_VENDOR_CSTD::setbuf;
    108 using _STLP_VENDOR_CSTD::tmpfile;
    109 using _STLP_VENDOR_CSTD::tmpnam;
    110 #    endif
    111 using _STLP_VENDOR_CSTD::scanf;
    112 using _STLP_VENDOR_CSTD::setvbuf;
    113 using _STLP_VENDOR_CSTD::sprintf;
    114 using _STLP_VENDOR_CSTD::sscanf;
    115 using _STLP_VENDOR_CSTD::ungetc;
    116 using _STLP_VENDOR_CSTD::vfprintf;
    117 using _STLP_VENDOR_CSTD::vprintf;
    118 using _STLP_VENDOR_CSTD::vsprintf;
    119 #    if (defined (__MWERKS__) || (defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB < 1400)) || \
    120         (defined (__BORLANDC__)))
    121 using _STLP_VENDOR_CSTD::vsnprintf;
    122 #    endif
    123 #  endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */
    124 _STLP_END_NAMESPACE
    125 #endif /* _STLP_IMPORT_VENDOR_CSTD */
    126 
    127 #endif /* _STLP_INTERNAL_CSTDIO */
    128