X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9a26db9ed22b5eed62201186f69fcb7e63e2633d..56b9925b116dfa58028fccb2556852f2da2ab9ac:/src/common/wfstream.cpp?ds=sidebyside diff --git a/src/common/wfstream.cpp b/src/common/wfstream.cpp index 2b2e68dc6f..0860226266 100644 --- a/src/common/wfstream.cpp +++ b/src/common/wfstream.cpp @@ -6,10 +6,10 @@ // Created: 11/07/98 // RCS-ID: $Id$ // Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "wfstream.h" #endif @@ -71,19 +71,23 @@ size_t wxFileInputStream::OnSysRead(void *buffer, size_t size) { off_t ret = m_file->Read(buffer, size); - switch ( ret ) - { - case 0: - m_lasterror = wxSTREAM_EOF; - break; - - case wxInvalidOffset: - m_lasterror = wxSTREAM_READ_ERROR; - ret = 0; - break; + // NB: we can't use a switch here because HP-UX CC doesn't allow + // switching over long long (which off_t is in 64bit mode) - default: - m_lasterror = wxSTREAM_NO_ERROR; + if ( !ret ) + { + // nothing read, so nothing more to read + m_lasterror = wxSTREAM_EOF; + } + else if ( ret == wxInvalidOffset ) + { + m_lasterror = wxSTREAM_READ_ERROR; + ret = 0; + } + else + { + // normal case + m_lasterror = wxSTREAM_NO_ERROR; } return ret; @@ -194,7 +198,7 @@ wxFileStream::wxFileStream(const wxString& fileName) wxFFileInputStream::wxFFileInputStream(const wxString& fileName) : wxInputStream() { - m_file = new wxFFile(fileName, "rb"); + m_file = new wxFFile(fileName, _T("rb")); m_file_destroy = TRUE; } @@ -235,10 +239,10 @@ size_t wxFFileInputStream::OnSysRead(void *buffer, size_t size) ret = m_file->Read(buffer, size); if (m_file->Eof()) - m_lasterror = wxStream_EOF; + m_lasterror = wxSTREAM_EOF; if (ret == wxInvalidOffset) { - m_lasterror = wxStream_READ_ERR; + m_lasterror = wxSTREAM_READ_ERROR; ret = 0; } @@ -261,7 +265,7 @@ off_t wxFFileInputStream::OnSysTell() const wxFFileOutputStream::wxFFileOutputStream(const wxString& fileName) { - m_file = new wxFFile(fileName, "w+b"); + m_file = new wxFFile(fileName, _T("w+b")); m_file_destroy = TRUE; if (!m_file->IsOpened()) @@ -307,9 +311,9 @@ size_t wxFFileOutputStream::OnSysWrite(const void *buffer, size_t size) { size_t ret = m_file->Write(buffer, size); if (m_file->Error()) - m_lasterror = wxStream_WRITE_ERR; + m_lasterror = wxSTREAM_WRITE_ERROR; else - m_lasterror = wxStream_NOERROR; + m_lasterror = wxSTREAM_NO_ERROR; return ret; }