111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/*
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1999
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Boris Fomitchev
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * This material is provided "as is", with absolutely no warranty expressed
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * or implied. Any use is at your own risk.
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Permission to use or copy this software for any purpose is hereby granted
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * without fee, provided the above notices are retained on all copies.
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Permission to modify the code and to distribute modified code is granted,
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * provided the above notices are retained, and a notice that the code was
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * modified is included with the above copyright notice.
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _STLP_INTERNAL_CSTDIO
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_INTERNAL_CSTDIO
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (__Lynx__)
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  if defined (_STLP_HAS_INCLUDE_NEXT)
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    include_next <stdarg.h>
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  else
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    include _STLP_NATIVE_C_HEADER(stdarg.h)
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  endif
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_USE_NEW_C_HEADERS)
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  if defined (_STLP_HAS_INCLUDE_NEXT)
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    include_next <cstdio>
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  else
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    include _STLP_NATIVE_CPP_C_HEADER(cstdio)
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  endif
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  include <stdio.h>
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (__MWERKS__)
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef stdin
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef stdout
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef stderr
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define stdin   (&_STLP_VENDOR_CSTD::__files[0])
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define stdout  (&_STLP_VENDOR_CSTD::__files[1])
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  define stderr  (&_STLP_VENDOR_CSTD::__files[2])
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB < 1400) || defined (_STLP_USING_PLATFORM_SDK_COMPILER)
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertinline int vsnprintf(char *s1, size_t n, const char *s2, va_list v)
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ return _STLP_VENDOR_CSTD::_vsnprintf(s1, n, s2, v); }
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_IMPORT_VENDOR_CSTD )
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_BEGIN_NAMESPACE
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::FILE;
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fpos_t;
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::size_t;
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// undef obsolete macros
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef putc
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef getc
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef getchar
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef putchar
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef feof
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  undef ferror
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS)
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::clearerr;
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fclose;
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::feof;
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::ferror;
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fflush;
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fgetc;
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fgetpos;
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fgets;
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fopen;
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fprintf;
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fputc;
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fputs;
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fread;
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    if !defined (_WIN32_WCE) || (_WIN32_WCE < 400)
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::freopen;
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    endif
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fscanf;
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fseek;
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fsetpos;
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::ftell;
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::fwrite;
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    if  !(defined (__IBMCPP__) && (__IBMCPP__ >= 500))
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#      if !defined (_WIN32_WCE) || (_WIN32_WCE < 400) // Supplied as macros, TODO: use inline function to redirect to the macros?
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert using _STLP_VENDOR_CSTD::getc;
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert using _STLP_VENDOR_CSTD::putc;
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#      endif
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert using _STLP_VENDOR_CSTD::getchar;
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert using _STLP_VENDOR_CSTD::putchar;
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    endif
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::gets;
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    if !defined (_WIN32_WCE) || (_WIN32_WCE < 400)
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::perror;
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    endif
10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::printf;
10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::puts;
10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    if !defined (_WIN32_WCE) || (_WIN32_WCE < 400)
10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::remove;
10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::rename;
10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::rewind;
10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::setbuf;
10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::tmpfile;
10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::tmpnam;
11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    endif
11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::scanf;
11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::setvbuf;
11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::sprintf;
11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::sscanf;
11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::ungetc;
11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::vfprintf;
11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::vprintf;
11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::vsprintf;
11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    if (defined (__MWERKS__) || (defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB < 1400)) || \
12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert        (defined (__BORLANDC__)))
12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertusing _STLP_VENDOR_CSTD::vsnprintf;
12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#    endif
12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#  endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */
12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_END_NAMESPACE
12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* _STLP_IMPORT_VENDOR_CSTD */
12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* _STLP_INTERNAL_CSTDIO */
128