From: Vadim Zeitlin Date: Fri, 15 Oct 2004 00:01:00 +0000 (+0000) Subject: added wxFileSize_t, changed types of wxFile methods/parameters once again X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/93e0db9a80d880a15d3a8eb25c3db01f63392038 added wxFileSize_t, changed types of wxFile methods/parameters once again git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29853 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index 18c3a3426c..d4faf397f4 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -150,10 +150,10 @@ INCOMPATIBLE CHANGES SINCE 2.4.x - wxNotebookSizer and wxBookCtrlSizer are now deprecated -- they are no longer needed, you can treat wxNotebook as any other control and put it directly into the sizer that was wxNotebookSizer's parent sizer in old code. -- wxFile methods now return wxFileOffset which may be a 64 bit integer type, - even on 32 bit platforms, instead of off_t and so the return value of - wxFile::Length(), for example, shouldn't be assigned to off_t variable any - more (the compiler might warn you about this). +- wxFile methods now return either wxFileOffset or wxFileSize_t which may be a + 64 bit integer type, even on 32 bit platforms, instead of off_t and so the + return value of wxFile::Length(), for example, shouldn't be assigned to off_t + variable any more (the compiler might warn you about this) - wxListItem::m_data is now of type wxUIntPtr, not long, for compatibility with 64 bit systems diff --git a/include/wx/file.h b/include/wx/file.h index 15b35b8d83..e4ed0193f2 100644 --- a/include/wx/file.h +++ b/include/wx/file.h @@ -95,14 +95,14 @@ public: // read/write (unbuffered) // returns number of bytes read or ofsInvalid on error - size_t Read(void *pBuf, size_t nCount); + wxFileSize_t Read(void *pBuf, wxFileSize_t nCount); // returns the number of bytes written - size_t Write(const void *pBuf, size_t nCount); + wxFileSize_t Write(const void *pBuf, wxFileSize_t nCount); // returns true on success bool Write(const wxString& s, wxMBConv& conv = wxConvUTF8) { const wxWX2MBbuf buf = s.mb_str(conv); - size_t size = strlen(buf); + wxFileSize_t size = strlen(buf); return Write((const char *) buf, size) == size; } // flush data not yet written @@ -164,7 +164,7 @@ public: bool IsOpened() const { return m_file.IsOpened(); } // I/O (both functions return true on success, false on failure) - bool Write(const void *p, size_t n) { return m_file.Write(p, n) != 0; } + bool Write(const void *p, wxFileSize_t n) { return m_file.Write(p, n) == n; } bool Write(const wxString& str, wxMBConv& conv = wxConvUTF8) { return m_file.Write(str, conv); } diff --git a/include/wx/filefn.h b/include/wx/filefn.h index 8835bdb28c..6848bbdeaf 100644 --- a/include/wx/filefn.h +++ b/include/wx/filefn.h @@ -131,6 +131,7 @@ enum wxSeekMode // Implemented in filefnwce.cpp #if defined( __WXWINCE__) typedef __int64 wxFileOffset; + typedef unsigned __int64 wxFileSize_t; #define wxFileOffsetFmtSpec _("I64") int wxOpen(const wxChar *filename, int oflag, int WXUNUSED(pmode)); int wxAccess(const wxChar *name, int WXUNUSED(how)); @@ -195,9 +196,11 @@ enum wxSeekMode #if wxHAS_HUGE_FILES typedef wxLongLong_t wxFileOffset; + typedef unsigned wxLongLong_t wxFileSize_t; #define wxFileOffsetFmtSpec wxLongLongFmtSpec #else typedef off_t wxFileOffset; + typedef unsigned off_t wxFileSize_t; #define wxFileOffsetFmtSpec _("") #endif @@ -319,6 +322,7 @@ enum wxSeekMode #undef wxHAS_HUGE_FILES #else // Unix platforms using configure typedef off_t wxFileOffset; + typedef unsigned off_t wxFileSize_t; #ifdef _LARGE_FILES #define wxFileOffsetFmtSpec wxLongLongFmtSpec #else @@ -360,9 +364,9 @@ enum wxSeekMode // VisualAge C++ V4.0 cannot have any external linkage const decs // in headers included by more than one primary source // -extern const wxFileOffset wxInvalidOffset; +extern const wxFileSize_t wxInvalidOffset; #else -const wxFileOffset wxInvalidOffset = (wxFileOffset)-1; +const wxFileSize_t wxInvalidOffset = (wxFileSize_t)-1; #endif // ---------------------------------------------------------------------------- diff --git a/src/common/file.cpp b/src/common/file.cpp index b8d659f833..d4f8309c9e 100644 --- a/src/common/file.cpp +++ b/src/common/file.cpp @@ -298,22 +298,22 @@ bool wxFile::Close() // ---------------------------------------------------------------------------- // read -size_t wxFile::Read(void *pBuf, size_t nCount) +wxFileSize_t wxFile::Read(void *pBuf, wxFileSize_t nCount) { wxCHECK( (pBuf != NULL) && IsOpened(), 0 ); - int iRc = wxRead(m_fd, pBuf, nCount); + wxFileOffset iRc = wxRead(m_fd, pBuf, nCount); if ( iRc == -1 ) { wxLogSysError(_("can't read from file descriptor %d"), m_fd); - return (size_t)wxInvalidOffset; + return wxInvalidOffset; } else - return (size_t)iRc; + return (wxFileSize_t)iRc; } // write -size_t wxFile::Write(const void *pBuf, size_t nCount) +wxFileSize_t wxFile::Write(const void *pBuf, wxFileSize_t nCount) { wxCHECK( (pBuf != NULL) && IsOpened(), 0 ); @@ -325,7 +325,7 @@ size_t wxFile::Write(const void *pBuf, size_t nCount) return 0; } else - return iRc; + return (wxFileSize_t)iRc; } // flush diff --git a/src/common/filefn.cpp b/src/common/filefn.cpp index eab5a6c4b0..f0ab27e53c 100644 --- a/src/common/filefn.cpp +++ b/src/common/filefn.cpp @@ -104,7 +104,7 @@ static wxChar wxFileFunctionsBuffer[4*_MAXPATHLEN]; // VisualAge C++ V4.0 cannot have any external linkage const decs // in headers included by more than one primary source // -const off_t wxInvalidOffset = (off_t)-1; +const wxFileSize_t wxInvalidOffset = (wxFileSize_t)-1; #endif // ----------------------------------------------------------------------------