X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a1b82138efe9aacda4e0ad7ce4b1551d624524c4..3c86150dd768b4e490b603227de28aa57275ee4b:/src/common/ffile.cpp diff --git a/src/common/ffile.cpp b/src/common/ffile.cpp index 69d1c04af8..503e5bfa0d 100644 --- a/src/common/ffile.cpp +++ b/src/common/ffile.cpp @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// // Name: ffile.cpp -// Purpose: wxFFile - encapsulates "FILE *" IO stream +// Purpose: wxFFile encapsulates "FILE *" IO stream // Author: Vadim Zeitlin // Modified by: // Created: 14.07.99 // RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -17,7 +17,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "ffile.h" #endif @@ -28,9 +28,11 @@ #pragma hdrstop #endif -#if wxUSE_FILE +#if wxUSE_FFILE #ifndef WX_PRECOMP + #include "wx/intl.h" + #include "wx/log.h" #endif #include "wx/ffile.h" @@ -43,18 +45,18 @@ // opening the file // ---------------------------------------------------------------------------- -wxFFile::wxFFile(const wxChar *filename, const char *mode) +wxFFile::wxFFile(const wxChar *filename, const wxChar *mode) { Detach(); (void)Open(filename, mode); } -bool wxFFile::Open(const wxChar *filename, const char *mode) +bool wxFFile::Open(const wxChar *filename, const wxChar *mode) { - wxASSERT_MSG( !m_fp, _T("should close or detach the old file first") ); + wxASSERT_MSG( !m_fp, wxT("should close or detach the old file first") ); - m_fp = fopen(filename, mode); + m_fp = wxFopen(filename, mode); if ( !m_fp ) { @@ -72,7 +74,7 @@ bool wxFFile::Close() { if ( IsOpened() ) { - if ( !fclose(m_fp) ) + if ( fclose(m_fp) != 0 ) { wxLogSysError(_("can't close file '%s'"), m_name.c_str()); @@ -91,8 +93,8 @@ bool wxFFile::Close() bool wxFFile::ReadAll(wxString *str) { - wxCHECK_MSG( str, FALSE, _T("invalid parameter") ); - wxCHECK_MSG( IsOpened(), FALSE, _T("can't read from closed file") ); + wxCHECK_MSG( str, FALSE, wxT("invalid parameter") ); + wxCHECK_MSG( IsOpened(), FALSE, wxT("can't read from closed file") ); clearerr(m_fp); @@ -121,8 +123,8 @@ bool wxFFile::ReadAll(wxString *str) size_t wxFFile::Read(void *pBuf, size_t nCount) { - wxCHECK_MSG( pBuf, FALSE, _T("invalid parameter") ); - wxCHECK_MSG( IsOpened(), FALSE, _T("can't read from closed file") ); + wxCHECK_MSG( pBuf, FALSE, wxT("invalid parameter") ); + wxCHECK_MSG( IsOpened(), FALSE, wxT("can't read from closed file") ); size_t nRead = fread(pBuf, 1, nCount, m_fp); if ( (nRead < nCount) && Error() ) @@ -135,8 +137,8 @@ size_t wxFFile::Read(void *pBuf, size_t nCount) size_t wxFFile::Write(const void *pBuf, size_t nCount) { - wxCHECK_MSG( pBuf, FALSE, _T("invalid parameter") ); - wxCHECK_MSG( IsOpened(), FALSE, _T("can't write to closed file") ); + wxCHECK_MSG( pBuf, FALSE, wxT("invalid parameter") ); + wxCHECK_MSG( IsOpened(), FALSE, wxT("can't write to closed file") ); size_t nWritten = fwrite(pBuf, 1, nCount, m_fp); if ( nWritten < nCount ) @@ -151,7 +153,9 @@ bool wxFFile::Flush() { if ( IsOpened() ) { - if ( !fflush(m_fp) ) + // fflush returns non-zero on error + // + if ( fflush(m_fp) ) { wxLogSysError(_("failed to flush the file '%s'"), m_name.c_str()); @@ -168,13 +172,13 @@ bool wxFFile::Flush() bool wxFFile::Seek(long ofs, wxSeekMode mode) { - wxCHECK_MSG( IsOpened(), FALSE, _T("can't seek on closed file") ); + wxCHECK_MSG( IsOpened(), FALSE, wxT("can't seek on closed file") ); int origin; switch ( mode ) { default: - wxFAIL_MSG(_T("unknown seek mode")); + wxFAIL_MSG(wxT("unknown seek mode")); // still fall through case wxFromStart: @@ -202,6 +206,9 @@ bool wxFFile::Seek(long ofs, wxSeekMode mode) size_t wxFFile::Tell() const { + wxCHECK_MSG( IsOpened(), (size_t)-1, + _T("wxFFile::Tell(): file is closed!") ); + long rc = ftell(m_fp); if ( rc == -1 ) { @@ -214,6 +221,9 @@ size_t wxFFile::Tell() const size_t wxFFile::Length() const { + wxCHECK_MSG( IsOpened(), (size_t)-1, + _T("wxFFile::Length(): file is closed!") ); + wxFFile& self = *(wxFFile *)this; // const_cast size_t posOld = Tell(); @@ -232,4 +242,4 @@ size_t wxFFile::Length() const return (size_t)-1; } -#endif // wxUSE_FILE +#endif // wxUSE_FFILE