X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b5f62a0b2db198609b45dec622a018dae37008e..1e52188741389278cd99abf79218162c87024ba3:/src/common/wfstream.cpp diff --git a/src/common/wfstream.cpp b/src/common/wfstream.cpp index 56743fd214..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; } @@ -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())