19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/*
29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1999
39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Boris Fomitchev
49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * This material is provided "as is", with absolutely no warranty expressed
69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * or implied. Any use is at your own risk.
79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to use or copy this software for any purpose is hereby granted
99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * without fee, provided the above notices are retained on all copies.
109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to modify the code and to distribute modified code is granted,
119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * provided the above notices are retained, and a notice that the code was
129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * modified is included with the above copyright notice.
139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_INTERNAL_CSTDIO
179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_INTERNAL_CSTDIO
189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (__Lynx__)
20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if defined (_STLP_HAS_INCLUDE_NEXT)
21e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    include_next <stdarg.h>
22e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  else
23e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    include _STLP_NATIVE_C_HEADER(stdarg.h)
24e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_STLP_USE_NEW_C_HEADERS)
28e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if defined (_STLP_HAS_INCLUDE_NEXT)
29e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    include_next <cstdio>
30e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  else
31e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    include _STLP_NATIVE_CPP_C_HEADER(cstdio)
32e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#else
34e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  include <stdio.h>
359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
37e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if defined (__MWERKS__)
389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  undef stdin
399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  undef stdout
409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  undef stderr
419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  define stdin   (&_STLP_VENDOR_CSTD::__files[0])
429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  define stdout  (&_STLP_VENDOR_CSTD::__files[1])
439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  define stderr  (&_STLP_VENDOR_CSTD::__files[2])
449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB < 1400) || defined (_STLP_USING_PLATFORM_SDK_COMPILER)
479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline int vsnprintf(char *s1, size_t n, const char *s2, va_list v)
489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return _STLP_VENDOR_CSTD::_vsnprintf(s1, n, s2, v); }
499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_STLP_IMPORT_VENDOR_CSTD )
529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_BEGIN_NAMESPACE
539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::FILE;
549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fpos_t;
559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::size_t;
569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// undef obsolete macros
589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  undef putc
599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  undef getc
609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  undef getchar
619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  undef putchar
629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  undef feof
639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  undef ferror
649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS)
669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::clearerr;
679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fclose;
689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::feof;
699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::ferror;
709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fflush;
719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fgetc;
729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fgetpos;
739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fgets;
749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fopen;
759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fprintf;
769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fputc;
779720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fputs;
789720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fread;
79e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    if !defined (_WIN32_WCE) || (_WIN32_WCE < 400)
809720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::freopen;
819720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    endif
829720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fscanf;
839720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fseek;
849720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fsetpos;
859720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::ftell;
869720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::fwrite;
879720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
889720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    if  !(defined (__IBMCPP__) && (__IBMCPP__ >= 500))
89e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#      if !defined (_WIN32_WCE) || (_WIN32_WCE < 400) // Supplied as macros, TODO: use inline function to redirect to the macros?
909720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block using _STLP_VENDOR_CSTD::getc;
919720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block using _STLP_VENDOR_CSTD::putc;
929720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#      endif
939720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block using _STLP_VENDOR_CSTD::getchar;
949720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block using _STLP_VENDOR_CSTD::putchar;
959720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    endif
969720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
979720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::gets;
98e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    if !defined (_WIN32_WCE) || (_WIN32_WCE < 400)
999720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::perror;
1009720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    endif
1019720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::printf;
1029720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::puts;
103e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    if !defined (_WIN32_WCE) || (_WIN32_WCE < 400)
1049720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::remove;
1059720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::rename;
1069720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::rewind;
1079720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::setbuf;
1089720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::tmpfile;
1099720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::tmpnam;
1109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    endif
1119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::scanf;
1129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::setvbuf;
1139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::sprintf;
1149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::sscanf;
1159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::ungetc;
1169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::vfprintf;
1179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::vprintf;
1189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::vsprintf;
119e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    if (defined (__MWERKS__) || (defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB < 1400)) || \
1209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block        (defined (__BORLANDC__)))
1219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockusing _STLP_VENDOR_CSTD::vsnprintf;
1229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    endif
1239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */
1249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_END_NAMESPACE
1259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* _STLP_IMPORT_VENDOR_CSTD */
1269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* _STLP_INTERNAL_CSTDIO */
128