diff --git a/src/file.cpp b/src/file.cpp index 6889304..1ea0940 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -6,8 +6,10 @@ #include "bx_p.h" #include -#include -#include +#if !BX_CRT_NONE +# include +# include +#endif // !BX_CRT_NONE #ifndef BX_CONFIG_CRT_FILE_READER_WRITER # define BX_CONFIG_CRT_FILE_READER_WRITER !(0 \ @@ -222,6 +224,24 @@ namespace bx bool m_open; }; + ReaderI* getStdIn() + { + static FileReaderImpl s_stdIn(stdout); + return &s_stdIn; + } + + WriterI* getStdOut() + { + static FileWriterImpl s_stdOut(stdout); + return &s_stdOut; + } + + WriterI* getStdErr() + { + static FileWriterImpl s_stdOut(stderr); + return &s_stdOut; + } + #else class FileReaderImpl : public FileReaderI @@ -261,8 +281,32 @@ namespace bx typedef NoopWriterImpl FileWriterImpl; + ReaderI* getStdIn() + { + static FileReaderImpl s_stdIn(NULL); + return &s_stdIn; + } + + WriterI* getStdOut() + { + static FileWriterImpl s_stdOut(NULL); + return &s_stdOut; + } + + WriterI* getStdErr() + { + static FileWriterImpl s_stdOut(NULL); + return &s_stdOut; + } + #endif // BX_CONFIG_CRT_FILE_READER_WRITER + WriterI* getNullOut() + { + static NoopWriterImpl s_nullOut(NULL); + return &s_nullOut; + } + FileReader::FileReader() { BX_STATIC_ASSERT(sizeof(FileReaderImpl) <= sizeof(m_internal) ); @@ -335,30 +379,6 @@ namespace bx return impl->write(_data, _size, _err); } - ReaderI* getStdIn() - { - static FileReaderImpl s_stdIn(stdout); - return &s_stdIn; - } - - WriterI* getStdOut() - { - static FileWriterImpl s_stdOut(stdout); - return &s_stdOut; - } - - WriterI* getStdErr() - { - static FileWriterImpl s_stdOut(stderr); - return &s_stdOut; - } - - WriterI* getNullOut() - { - static NoopWriterImpl s_nullOut(NULL); - return &s_nullOut; - } - bool stat(const FilePath& _filePath, FileInfo& _outFileInfo) { #if BX_CRT_NONE