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