]> git.saurik.com Git - wxWidgets.git/commitdiff
new set of fixes for problems due to huge files support: drop wxFileSize_t, use wxFil...
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 10 Nov 2004 21:02:58 +0000 (21:02 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 10 Nov 2004 21:02:58 +0000 (21:02 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30427 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

22 files changed:
include/wx/file.h
include/wx/filefn.h
include/wx/stream.h
samples/console/console.cpp
src/common/file.cpp
src/common/filefn.cpp
src/common/gifdecod.cpp
src/common/imagbmp.cpp
src/common/image.cpp
src/common/imagiff.cpp
src/common/imagtiff.cpp
src/common/intl.cpp
src/common/stream.cpp
src/common/textfile.cpp
src/common/wfstream.cpp
src/common/xpmdecod.cpp
src/html/chm.cpp
src/msw/gdiimage.cpp
src/msw/urlmsw.cpp
src/unix/snglinst.cpp
tests/streams/bstream.h
utils/HelpGen/src/HelpGen.cpp

index b767d0a4a09c4ead4b5a6e5e0f4d3ad92b5ec674..6a46ec7fe476dec46b482e4b097e7dcfbfad04ff 100644 (file)
@@ -95,28 +95,28 @@ public:
 
   // read/write (unbuffered)
     // returns number of bytes read or ofsInvalid on error
-  wxFileSize_t Read(void *pBuf, wxFileSize_t nCount);
+  size_t Read(void *pBuf, size_t nCount);
     // returns the number of bytes written
-  wxFileSize_t Write(const void *pBuf, wxFileSize_t nCount);
+  size_t Write(const void *pBuf, size_t nCount);
     // returns true on success
   bool Write(const wxString& s, wxMBConv& conv = wxConvUTF8)
   {
       const wxWX2MBbuf buf = s.mb_str(conv);
-      wxFileSize_t size = strlen(buf);
+      size_t size = strlen(buf);
       return Write((const char *) buf, size) == size;
   }
     // flush data not yet written
   bool Flush();
 
-  // file pointer operations (return ofsInvalid on failure)
-    // move ptr ofs bytes related to start/current off_t/end of file
-  wxFileSize_t Seek(wxFileOffset ofs, wxSeekMode mode = wxFromStart);
+  // file pointer operations (return wxInvalidOffset on failure)
+    // move ptr ofs bytes related to start/current offset/end of file
+  wxFileOffset Seek(wxFileOffset ofs, wxSeekMode mode = wxFromStart);
     // move ptr to ofs bytes before the end
-  wxFileSize_t SeekEnd(wxFileOffset ofs = 0) { return Seek(ofs, wxFromEnd); }
-    // get current off_t
-  wxFileSize_t Tell() const;
+  wxFileOffset SeekEnd(wxFileOffset ofs = 0) { return Seek(ofs, wxFromEnd); }
+    // get current offset
+  wxFileOffset Tell() const;
     // get current file length
-  wxFileSize_t Length() const;
+  wxFileOffset Length() const;
 
   // simple accessors
     // is file opened?
@@ -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, wxFileSize_t n) { return m_file.Write(p, n) == n; }
+  bool Write(const void *p, size_t n) { return m_file.Write(p, n) == n; }
   bool Write(const wxString& str, wxMBConv& conv = wxConvUTF8)
     { return m_file.Write(str, conv); }
 
index b977aaf14a5384a874d8efdf6cbab3a98e5743c3..d112029e3b563930cc62e903f1504006e5667d7e 100644 (file)
@@ -131,7 +131,6 @@ 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));
@@ -198,11 +197,9 @@ 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 long wxFileSize_t;
     #endif
 
     #define   wxClose      _close
@@ -218,12 +215,7 @@ enum wxSeekMode
                   _write(fd, (const char *)buf, nCount)
         #endif
     #else
-        #if defined(__WATCOMC__)
-            inline wxFileSize_t wxRead( int handle, void *buffer, wxFileSize_t len )
-                                { return ::read( handle, buffer, (unsigned int)len ); }
-            inline wxFileSize_t wxWrite( int handle, const void *buffer, wxFileSize_t len )
-                                { return ::write( handle, buffer, (unsigned int)len ); }
-        #elif defined(__DMC__)
+        #if defined(__DMC__) || defined(__WATCOMC__)
             #define wxRead        ::read
             #define wxWrite       ::write
         #else
@@ -332,10 +324,8 @@ enum wxSeekMode
         #define wxFileOffsetFmtSpec wxLongLongFmtSpec
         wxCOMPILE_TIME_ASSERT( sizeof(off_t) == sizeof(wxLongLong_t),
                                 BadFileSizeType );
-        typedef unsigned wxLongLong_t wxFileSize_t;
     #else
         #define wxFileOffsetFmtSpec _T("")
-        typedef unsigned long wxFileSize_t;
     #endif
     // functions
     #define   wxClose      close
@@ -373,9 +363,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 wxFileSize_t wxInvalidOffset;
+extern const int wxInvalidOffset;
 #else
-const wxFileSize_t wxInvalidOffset = (wxFileSize_t)-1;
+const int wxInvalidOffset = -1;
 #endif
 
 // ----------------------------------------------------------------------------
index 3824fd1026e83fac46d0c4f52cae1263c334ce6b..9f627b9be684e37293005162a098232e50f2d682 100644 (file)
@@ -23,7 +23,7 @@
 #include <stdio.h>
 #include "wx/object.h"
 #include "wx/string.h"
-#include "wx/filefn.h"  // for off_t, wxInvalidOffset and wxSeekMode
+#include "wx/filefn.h"  // for wxFileOffset, wxInvalidOffset and wxSeekMode
 
 class WXDLLIMPEXP_BASE wxStreamBase;
 class WXDLLIMPEXP_BASE wxInputStream;
index 1bedd459bca4755c0b9c8d3563bdf7c4b244b652..0a961b1676ea84cdd03cf6bbd4b51726a2bd508e 100644 (file)
@@ -575,12 +575,12 @@ static void TestFileRead()
 
         wxPuts(_T("File dump:\n----------"));
 
-        static const off_t len = 1024;
+        static const size_t len = 1024;
         wxChar buf[len];
         for ( ;; )
         {
-            off_t nRead = file.Read(buf, len);
-            if ( nRead == wxInvalidOffset )
+            size_t nRead = file.Read(buf, len);
+            if ( nRead == (size_t)wxInvalidOffset )
             {
                 wxPrintf(_T("Failed to read the file."));
                 break;
index 07ad8170567cebe9b306cf0ef5defd46539b3fda..55d70d03dbb3ca972e9712bdaae0ac7e4e719895 100644 (file)
     #include "wx/msw/private.h"
 #endif
 
+#if !defined __UNIX__ && !defined __DJGPP__
+    #ifdef __WXWINCE__
+        typedef int ssize_t;
+    #else
+        typedef ptrdiff_t ssize_t;
+    #endif
+#endif
+wxCOMPILE_TIME_ASSERT(sizeof(ssize_t) == sizeof(size_t), ssize_t_wrong_size);
+
 // ============================================================================
 // implementation of wxFile
 // ============================================================================
@@ -298,35 +307,36 @@ bool wxFile::Close()
 // ----------------------------------------------------------------------------
 
 // read
-wxFileSize_t wxFile::Read(void *pBuf, wxFileSize_t nCount)
+size_t wxFile::Read(void *pBuf, size_t nCount)
 {
     wxCHECK( (pBuf != NULL) && IsOpened(), 0 );
 
-    wxFileSize_t iRc = wxRead(m_fd, pBuf, nCount);
+    ssize_t iRc = wxRead(m_fd, pBuf, nCount);
 
-    if ( iRc == wxInvalidOffset )
+    if ( iRc == -1 )
     {
         wxLogSysError(_("can't read from file descriptor %d"), m_fd);
+        return (size_t)wxInvalidOffset;
     }
 
     return iRc;
 }
 
 // write
-wxFileSize_t wxFile::Write(const void *pBuf, wxFileSize_t nCount)
+size_t wxFile::Write(const void *pBuf, size_t nCount)
 {
     wxCHECK( (pBuf != NULL) && IsOpened(), 0 );
 
-    wxFileSize_t iRc = wxWrite(m_fd, pBuf, nCount);
+    ssize_t iRc = wxWrite(m_fd, pBuf, nCount);
 
-    if ( iRc == wxInvalidOffset )
+    if ( iRc == -1 )
     {
         wxLogSysError(_("can't write to file descriptor %d"), m_fd);
         m_error = true;
         iRc = 0;
     }
 
-    return (wxFileSize_t)iRc;
+    return iRc;
 }
 
 // flush
@@ -352,7 +362,7 @@ bool wxFile::Flush()
 // ----------------------------------------------------------------------------
 
 // seek
-wxFileSize_t wxFile::Seek(wxFileOffset ofs, wxSeekMode mode)
+wxFileOffset wxFile::Seek(wxFileOffset ofs, wxSeekMode mode)
 {
     wxASSERT( IsOpened() );
 
@@ -374,12 +384,12 @@ wxFileSize_t wxFile::Seek(wxFileOffset ofs, wxSeekMode mode)
             break;
     }
 
-    if (ofs == (wxFileOffset) wxInvalidOffset)
+    if (ofs == wxInvalidOffset)
     {
         wxLogSysError(_("can't seek on file descriptor %d, large files support is not enabled."), m_fd);
         return wxInvalidOffset;
     }
-    wxFileSize_t iRc = wxSeek(m_fd, ofs, origin);
+    wxFileOffset iRc = wxSeek(m_fd, ofs, origin);
     if ( iRc == wxInvalidOffset )
     {
         wxLogSysError(_("can't seek on file descriptor %d"), m_fd);
@@ -389,11 +399,11 @@ wxFileSize_t wxFile::Seek(wxFileOffset ofs, wxSeekMode mode)
 }
 
 // get current file offset
-wxFileSize_t wxFile::Tell() const
+wxFileOffset wxFile::Tell() const
 {
     wxASSERT( IsOpened() );
 
-    wxFileSize_t iRc = wxTell(m_fd);
+    wxFileOffset iRc = wxTell(m_fd);
     if ( iRc == wxInvalidOffset )
     {
         wxLogSysError(_("can't get seek position on file descriptor %d"), m_fd);
@@ -403,14 +413,14 @@ wxFileSize_t wxFile::Tell() const
 }
 
 // get current file length
-wxFileSize_t wxFile::Length() const
+wxFileOffset wxFile::Length() const
 {
     wxASSERT( IsOpened() );
 
-    wxFileSize_t iRc = Tell();
+    wxFileOffset iRc = Tell();
     if ( iRc != wxInvalidOffset ) {
         // have to use const_cast :-(
-        wxFileSize_t iLen = ((wxFile *)this)->SeekEnd();
+        wxFileOffset iLen = ((wxFile *)this)->SeekEnd();
         if ( iLen != wxInvalidOffset ) {
             // restore old position
             if ( ((wxFile *)this)->Seek(iRc) == wxInvalidOffset ) {
@@ -435,11 +445,11 @@ bool wxFile::Eof() const
 {
     wxASSERT( IsOpened() );
 
-    wxFileSize_t iRc;
+    wxFileOffset iRc;
 
 #if defined(__DOS__) || defined(__UNIX__) || defined(__GNUWIN32__) || defined( __MWERKS__ ) || defined(__SALFORDC__)
     // @@ this doesn't work, of course, on unseekable file descriptors
-    wxFileSize_t ofsCur = Tell(),
+    wxFileOffset ofsCur = Tell(),
     ofsMax = Length();
     if ( ofsCur == wxInvalidOffset || ofsMax == wxInvalidOffset )
         iRc = wxInvalidOffset;
index f0ab27e53c58927b8d641d5f8ffa912cdfc2da54..1ed53771518298db91cdb6f922c8a84f1592b644 100644 (file)
@@ -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 wxFileSize_t wxInvalidOffset = (wxFileSize_t)-1;
+const int wxInvalidOffset = -1;
 #endif
 
 // ----------------------------------------------------------------------------
index 732557ca3b2d7fa1c623fa8f95a92ae27dcee8d4..c9cfe9b16ec1e2fbea84df6901e7d6a2c77d6ffa 100644 (file)
@@ -621,7 +621,7 @@ bool wxGIFDecoder::CanRead()
     if ( !m_f->Read(buf, WXSIZEOF(buf)) )
         return false;
 
-    m_f->SeekI(-(off_t)WXSIZEOF(buf), wxFromCurrent);
+    m_f->SeekI(-(wxFileOffset)WXSIZEOF(buf), wxFromCurrent);
 
     return memcmp(buf, "GIF", WXSIZEOF(buf)) == 0;
 }
index c699ae596f19a9e428babcd2756f58c225fc41c2..09b1a9387f26a6e326ae09b99a93008b95cb4312 100644 (file)
@@ -844,7 +844,7 @@ bool wxBMPHandler::LoadDib(wxImage *image, wxInputStream& stream,
     wxInt32         dbuf[4];
     wxInt8          bbuf[4];
 
-    wxFileSize_t offset = 0; // keep gcc quiet
+    wxFileOffset offset = 0; // keep gcc quiet
     if ( IsBmp )
     {
         // read the header off the .BMP format file
index 784a016b94210942efce04a431dab95838df4a97..afd54ca6365183fa74407c9cdf5b676abd5846d6 100644 (file)
@@ -1481,7 +1481,7 @@ bool wxImageHandler::CanRead( const wxString& name )
 
 bool wxImageHandler::CallDoCanRead(wxInputStream& stream)
 {
-    wxFileSize_t posOld = stream.TellI();
+    wxFileOffset posOld = stream.TellI();
     if ( posOld == wxInvalidOffset )
     {
         // can't test unseekable stream
index 5a6dc5cced6e3343ddec1ae76aa064725dda8d26..b6db906cdb2863fb5cdb0e6d494086f490bf3895 100644 (file)
@@ -239,7 +239,7 @@ bool wxIFFDecoder::CanRead()
     if ( !m_f->Read(buf, WXSIZEOF(buf)) )
         return false;
 
-    m_f->SeekI(-(off_t)WXSIZEOF(buf), wxFromCurrent);
+    m_f->SeekI(-(wxFileOffset)WXSIZEOF(buf), wxFromCurrent);
 
     return (memcmp(buf, "FORM", 4) == 0) && (memcmp(buf+8, "ILBM", 4) == 0);
 }
@@ -339,7 +339,7 @@ int wxIFFDecoder::ReadIFF()
     }
 
     // compute file length
-    off_t currentPos = m_f->TellI();
+    wxFileOffset currentPos = m_f->TellI();
     m_f->SeekI(0, wxFromEnd);
     long filesize = m_f->TellI();
     m_f->SeekI(currentPos, wxFromStart);
index ef9589c911dbe43e8ab19e3fdb4bda7349d62987..3cd681f75775d59cf0ae59de5e1cfcb905297ecf 100644 (file)
@@ -89,7 +89,7 @@ _tiffSeekIProc(thandle_t handle, toff_t off, int whence)
         default:       mode = wxFromCurrent; break;
     }
 
-    return (toff_t)stream->SeekI( (off_t)off, mode );
+    return (toff_t)stream->SeekI( (wxFileOffset)off, mode );
 }
 
 toff_t TIFFLINKAGEMODE
@@ -105,7 +105,7 @@ _tiffSeekOProc(thandle_t handle, toff_t off, int whence)
         default:       mode = wxFromCurrent; break;
     }
 
-    return (toff_t)stream->SeekO( (off_t)off, mode );
+    return (toff_t)stream->SeekO( (wxFileOffset)off, mode );
 }
 
 int TIFFLINKAGEMODE
index 2350c1a41e19f4bacb02492576d0882401806124..7dbd7b0cb37fcfe5452ab05465cf1f5ad9223ab2 100644 (file)
@@ -1037,6 +1037,8 @@ static wxString GetFullSearchPath(const wxChar *lang)
                    << wxPATH_SEP;
     }
 
+    // TODO: use wxStandardPaths instead of all this mess!!
+
     // LC_PATH is a standard env var containing the search path for the .mo
     // files
 #ifndef __WXWINCE__
@@ -1056,14 +1058,16 @@ static wxString GetFullSearchPath(const wxChar *lang)
 
     // then take the current directory
     // FIXME it should be the directory of the executable
-#ifdef __WXMAC__
-    wxChar cwd[512] ;
-    wxGetWorkingDirectory( cwd , sizeof( cwd ) ) ;
-    searchPath << GetAllMsgCatalogSubdirs(cwd, lang);
+#if defined(__WXMAC__)
+    searchPath << GetAllMsgCatalogSubdirs(wxGetCwd(), lang);
     // generic search paths could be somewhere in the system folder preferences
-#else // !Mac
+#elif defined(__WXMSW__)
+    // look in the directory of the executable
+    wxString path;
+    wxSplitPath(wxGetFullModuleName(), &path, NULL, NULL);
+    searchPath << GetAllMsgCatalogSubdirs(path, lang);
+#else // !Mac, !MSW
     searchPath << GetAllMsgCatalogSubdirs(wxT("."), lang);
-
 #endif // platform
 
     return searchPath;
@@ -1120,19 +1124,19 @@ bool wxMsgCatalogFile::Load(const wxChar *szDirPrefix, const wxChar *szName0,
     return false;
 
   // get the file size (assume it is less than 4Gb...)
-  wxFileSize_t nSize = fileMsg.Length();
+  wxFileOffset nSize = fileMsg.Length();
   if ( nSize == wxInvalidOffset )
     return false;
 
   // read the whole file in memory
   m_pData = new size_t8[nSize];
-  if ( fileMsg.Read(m_pData, nSize) != nSize ) {
+  if ( fileMsg.Read(m_pData, nSize) != nSize + (size_t)0 ) {
     wxDELETEA(m_pData);
     return false;
   }
 
   // examine header
-  bool bValid = nSize > sizeof(wxMsgCatalogHeader);
+  bool bValid = nSize + (size_t)0 > sizeof(wxMsgCatalogHeader);
 
   wxMsgCatalogHeader *pHeader = (wxMsgCatalogHeader *)m_pData;
   if ( bValid ) {
index 3230417f2c9f028f25f5bdc1ae51ccb79f9b6685..f1d432eb697ca5a7925b854a3ca26aebc7bf99d3 100644 (file)
@@ -576,10 +576,10 @@ wxFileOffset wxStreamBuffer::Seek(wxFileOffset pos, wxSeekMode mode)
             default:
                 wxFAIL_MSG( _T("invalid seek mode") );
 
-                return (wxFileOffset) wxInvalidOffset;
+                return wxInvalidOffset;
         }
         if (diff < 0 || diff > last_access)
-            return (wxFileOffset) wxInvalidOffset;
+            return wxInvalidOffset;
         SetIntPosition(diff);
         return diff;
     }
@@ -616,19 +616,19 @@ wxFileOffset wxStreamBuffer::Seek(wxFileOffset pos, wxSeekMode mode)
             return ret_off;
     }
 
-    return (wxFileOffset) wxInvalidOffset;
+    return wxInvalidOffset;
 }
 
 wxFileOffset wxStreamBuffer::Tell() const
 {
-    wxFileSize_t pos;
+    wxFileOffset pos;
 
     // ask the stream for position if we have a real one
     if ( m_stream )
     {
         pos = m_stream->OnSysTell();
         if ( pos == wxInvalidOffset )
-            return (wxFileOffset) wxInvalidOffset;
+            return wxInvalidOffset;
     }
     else // no associated stream
     {
@@ -659,12 +659,12 @@ wxStreamBase::~wxStreamBase()
 
 wxFileOffset wxStreamBase::OnSysSeek(wxFileOffset WXUNUSED(seek), wxSeekMode WXUNUSED(mode))
 {
-    return (wxFileOffset) wxInvalidOffset;
+    return wxInvalidOffset;
 }
 
 wxFileOffset wxStreamBase::OnSysTell() const
 {
-    return (wxFileOffset) wxInvalidOffset;
+    return wxInvalidOffset;
 }
 
 // ----------------------------------------------------------------------------
@@ -889,7 +889,7 @@ wxFileOffset wxInputStream::SeekI(wxFileOffset pos, wxSeekMode mode)
 
 wxFileOffset wxInputStream::TellI() const
 {
-    wxFileSize_t pos = OnSysTell();
+    wxFileOffset pos = OnSysTell();
 
     if (pos != wxInvalidOffset)
         pos -= (m_wbacksize - m_wbackcur);
@@ -990,7 +990,7 @@ wxFileOffset wxCountingOutputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode
 
         default:
             wxFAIL_MSG( _T("invalid seek mode") );
-            return (wxFileOffset) wxInvalidOffset;
+            return wxInvalidOffset;
     }
 
     if (m_currentPos > m_lastcount)
@@ -1122,7 +1122,7 @@ wxFileOffset wxBufferedInputStream::SeekI(wxFileOffset pos, wxSeekMode mode)
 
 wxFileOffset wxBufferedInputStream::TellI() const
 {
-    wxFileSize_t pos = m_i_streambuf->Tell();
+    wxFileOffset pos = m_i_streambuf->Tell();
 
     if (pos != wxInvalidOffset)
         pos -= (m_wbacksize - m_wbackcur);
index 604bb54c4c46401f91bf461ff6da8e3175ac12c6..25503be862e36806246222c6d8246dc56e64ad19 100644 (file)
@@ -97,7 +97,7 @@ bool wxTextFile::OnRead(wxMBConv& conv)
     char *strBuf, *strPtr, *strEnd;
     char ch, chLast = '\0';
     char buf[1024];
-    wxFileSize_t nRead;
+    size_t nRead;
 
     strPtr = strBuf = new char[1024];
     strEnd = strBuf + 1024;
@@ -105,14 +105,14 @@ bool wxTextFile::OnRead(wxMBConv& conv)
     do
     {
         nRead = m_file.Read(buf, WXSIZEOF(buf));
-        if ( nRead == wxInvalidOffset )
+        if ( nRead == (size_t)wxInvalidOffset )
         {
             // read error (error message already given in wxFile::Read)
             delete[] strBuf;
             return false;
         }
 
-        for (wxFileSize_t n = 0; n < nRead; n++)
+        for (size_t n = 0; n < nRead; n++)
         {
             ch = buf[n];
             switch ( ch )
index 970f92c2961f830c386a99a405818d287879379b..a1b94af437675ec9eef582a02ff605c07c143dc5 100644 (file)
@@ -69,17 +69,17 @@ size_t wxFileInputStream::GetSize() const
 
 size_t wxFileInputStream::OnSysRead(void *buffer, size_t size)
 {
-    wxFileSize_t ret = m_file->Read(buffer, size);
+    size_t ret = m_file->Read(buffer, size);
 
     // 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)
+    //     switching over long long (which size_t is in 64bit mode)
 
     if ( !ret )
     {
         // nothing read, so nothing more to read
         m_lasterror = wxSTREAM_EOF;
     }
-    else if ( ret == wxInvalidOffset )
+    else if ( ret == (size_t)wxInvalidOffset )
     {
         m_lasterror = wxSTREAM_READ_ERROR;
         ret = 0;
@@ -234,11 +234,11 @@ size_t wxFFileInputStream::GetSize() const
 
 size_t wxFFileInputStream::OnSysRead(void *buffer, size_t size)
 {
-    wxFileSize_t ret = m_file->Read(buffer, size);
+    size_t ret = m_file->Read(buffer, size);
 
     if (m_file->Eof())
         m_lasterror = wxSTREAM_EOF;
-    if (ret == wxInvalidOffset)
+    if (ret == (size_t)wxInvalidOffset)
     {
         m_lasterror = wxSTREAM_READ_ERROR;
         ret = 0;
@@ -252,7 +252,7 @@ wxFileOffset wxFFileInputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode)
 #ifdef __VMS
 #pragma message disable intsignchange
 #endif
-   return ( m_file->Seek(pos, mode) ? m_file->Tell() : wxInvalidOffset );
+   return ( m_file->Seek(pos, mode) ? (wxFileOffset)m_file->Tell() : wxInvalidOffset );
 #ifdef __VMS
 #pragma message enable intsignchange
 #endif
@@ -331,7 +331,7 @@ wxFileOffset wxFFileOutputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode)
 #ifdef __VMS
 #pragma message disable intsignchange
 #endif
-    return ( m_file->Seek(pos, mode) ? m_file->Tell() : wxInvalidOffset );
+    return ( m_file->Seek(pos, mode) ? (wxFileOffset)m_file->Tell() : wxInvalidOffset );
 #ifdef __VMS
 #pragma message enable intsignchange
 #endif
index 69a91e7c600c7ea3d6ac9c890c34875e085ed79d..89cdad65eed7b0b2da8c0ebecdd890af03ba260f 100644 (file)
@@ -127,7 +127,7 @@ bool wxXPMDecoder::CanRead(wxInputStream& stream)
     if ( !stream.Read(buf, WXSIZEOF(buf)) )
         return false;
 
-    stream.SeekI(-(off_t)WXSIZEOF(buf), wxFromCurrent);
+    stream.SeekI(-(wxFileOffset)WXSIZEOF(buf), wxFromCurrent);
 
     return memcmp(buf, "/* XPM */", WXSIZEOF(buf)) == 0;
 }
index 627b039f335ffca83c7fc772d1a95a0655267d57..b7dc1ee4f5ae196d59f5bc0a0d0ea51e611e3d4c 100644 (file)
@@ -377,13 +377,13 @@ protected:
     /// See wxInputStream
     virtual size_t OnSysRead(void *buffer, size_t bufsize);
     /// See wxInputStream
-    virtual off_t OnSysSeek(off_t seek, wxSeekMode mode);
+    virtual wxFileOffset OnSysSeek(wxFileOffset seek, wxSeekMode mode);
     /// See wxInputStream
-    virtual off_t OnSysTell() const { return m_pos; }
+    virtual wxFileOffset OnSysTell() const { return m_pos; }
 
 private:
     size_t m_size;
-    off_t m_pos;
+    wxFileOffset m_pos;
     bool m_simulateHHP;
 
     char * m_content;
@@ -501,7 +501,7 @@ size_t wxChmInputStream::OnSysRead(void *buffer, size_t bufsize)
 
 
 
-off_t wxChmInputStream::OnSysSeek(off_t seek, wxSeekMode mode)
+wxFileOffset wxChmInputStream::OnSysSeek(wxFileOffset seek, wxSeekMode mode)
 {
     wxString mode_str = wxEmptyString;
 
@@ -512,7 +512,7 @@ off_t wxChmInputStream::OnSysSeek(off_t seek, wxSeekMode mode)
     }
     m_lasterror = wxSTREAM_NO_ERROR;
 
-    off_t nextpos;
+    wxFileOffset nextpos;
 
     switch ( mode )
     {
index cba81891160a319f02caeacba742e46ec378df8f..f6dc5a9096a1029b20de1de52ab579f884adeaba 100644 (file)
@@ -648,7 +648,7 @@ HBITMAP wxLoadBMP(const wxString& filename)
       pBmpInfo->bmiHeader.biClrUsed : 1 << pBmpInfo->bmiHeader.biBitCount;
     if (nColors < 1
       || file.Read(pBmpInfo->bmiColors, nColors * sizeof(RGBQUAD))
-        == (off_t)(nColors * sizeof(RGBQUAD))) {
+        == nColors * sizeof(RGBQUAD)) {
 
       // So how big the bitmap surface is.
       int nBitsSize = BmpFileHdr.bfSize - BmpFileHdr.bfOffBits;
index a5c5fd3b376fc13e23e05f05bdec62700bac0e7d..5b1611561547eacba74259ae76f55c76612ec019 100644 (file)
@@ -122,9 +122,9 @@ public:
 
     void Attach(HINTERNET hFile);
 
-    off_t SeekI( off_t WXUNUSED(pos), wxSeekMode WXUNUSED(mode) )
+    wxFileOffset SeekI( wxFileOffset WXUNUSED(pos), wxSeekMode WXUNUSED(mode) )
         { return -1; }
-    off_t TellI() const
+    wxFileOffset TellI() const
         { return -1; }
 
 protected:
index d581d39f83f78dad87f891e6c0ab2a29020e63a8..af5e2063a574916b95446cc7767f318d2a1a1cff 100644 (file)
@@ -277,8 +277,8 @@ bool wxSingleInstanceCheckerImpl::Create(const wxString& name)
     }
 
     char buf[256];
-    wxFileSize_t count = file.Read(buf, WXSIZEOF(buf));
-    if ( count == wxInvalidOffset )
+    size_t count = file.Read(buf, WXSIZEOF(buf));
+    if ( count == (size_t)wxInvalidOffset )
     {
         wxLogError(_("Failed to read PID from lock file."));
     }
index 3505fc33aadbb86786f2026a313d01134ce7b750..4d15aa503f72843bd44a12c991a06bde5d459f14 100644 (file)
@@ -208,7 +208,7 @@ protected:
         CPPUNIT_ASSERT(stream_in.TellI() == 1);
         if (!m_bSimpleTellITest)
         {
-            off_t pos = stream_in.SeekI(5, wxFromStart);
+            wxFileOffset pos = stream_in.SeekI(5, wxFromStart);
             CPPUNIT_ASSERT(stream_in.TellI() == pos);
             (void)stream_in.GetC();
             CPPUNIT_ASSERT(stream_in.TellI() == 6);
@@ -269,8 +269,8 @@ protected:
         TStreamOut &stream_out = CreateOutStream();
 
         char *buf = "Some text";
-        off_t i;
-        off_t len = (off_t) strlen(buf);
+        int i;
+        int len = strlen(buf);
         for (i = 0; i < len; i++)
             stream_out.PutC(buf[i]);
 
@@ -285,7 +285,7 @@ protected:
 
         // Do the buffer version.
         char *buf = "Some text";
-        off_t len = (off_t) strlen(buf);
+        int len = strlen(buf);
         (void)stream_out.Write(buf, len);
         CPPUNIT_ASSERT(stream_out.TellO() == len);
 
index d2dc393cd222449b3fc74d46f342060fb2473e63..95155b320b5eeb7e3d93f88999f5dc9746d14b87 100644 (file)
@@ -1417,7 +1417,7 @@ bool DocManager::ParseTeXFile(const wxString& filename)
     char *buf = new char[len + 1];
     buf[len] = '\0';
 
-    if ( (wxFileOffset)file.Read(buf, len) == wxInvalidOffset ) {
+    if ( file.Read(buf, len) == (size_t)wxInvalidOffset ) {
         delete [] buf;
 
         return false;
@@ -1988,7 +1988,7 @@ bool IgnoreNamesHandler::AddNamesFromFile(const wxString& filename)
     char *buf = new char[len + 1];
     buf[len] = '\0';
 
-    if ( (wxFileOffset)file.Read(buf, len) == wxInvalidOffset ) {
+    if ( file.Read(buf, len) == (size_t)wxInvalidOffset ) {
         delete [] buf;
 
         return false;
@@ -2186,6 +2186,9 @@ static const wxString GetVersionString()
 
 /*
    $Log$
+   Revision 1.32  2004/11/10 21:02:58  VZ
+   new set of fixes for problems due to huge files support: drop wxFileSize_t, use wxFileOffset only, make wxInvalidOffset an int (main part of the patch 1063498)
+
    Revision 1.31  2004/10/05 15:38:29  ABX
    Warning fixes found under hardest mode of OpenWatcom. Seems clean in Borland, MinGW and DMC.