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