projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use the correct WXDLLIMPEXT declaration for
[wxWidgets.git]
/
src
/
common
/
wfstream.cpp
diff --git
a/src/common/wfstream.cpp
b/src/common/wfstream.cpp
index 904a89809f83787474a730478bc0c41f6e1c0d71..8370eebc6faac3f3332554139f29e37bfcee0aa8 100644
(file)
--- a/
src/common/wfstream.cpp
+++ b/
src/common/wfstream.cpp
@@
-20,12
+20,14
@@
#pragma hdrstop
#endif
#pragma hdrstop
#endif
-#if wxUSE_STREAMS
&& wxUSE_FILE
+#if wxUSE_STREAMS
#include <stdio.h>
#include "wx/stream.h"
#include "wx/wfstream.h"
#include <stdio.h>
#include "wx/stream.h"
#include "wx/wfstream.h"
+#if wxUSE_FILE
+
// ----------------------------------------------------------------------------
// wxFileInputStream
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// wxFileInputStream
// ----------------------------------------------------------------------------
@@
-62,17
+64,17
@@
wxFileInputStream::~wxFileInputStream()
delete m_file;
}
delete m_file;
}
-
size_t wxFileInputStream::GetSize
() const
+
wxFileOffset wxFileInputStream::GetLength
() const
{
return m_file->Length();
}
size_t wxFileInputStream::OnSysRead(void *buffer, size_t size)
{
{
return m_file->Length();
}
size_t wxFileInputStream::OnSysRead(void *buffer, size_t size)
{
-
wxFileOffse
t ret = m_file->Read(buffer, size);
+
ssize_
t ret = m_file->Read(buffer, size);
// NB: we can't use a switch here because HP-UX CC doesn't allow
// 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 )
{
if ( !ret )
{
@@
-176,7
+178,7
@@
void wxFileOutputStream::Sync()
m_file->Flush();
}
m_file->Flush();
}
-
size_t wxFileOutputStream::GetSize
() const
+
wxFileOffset wxFileOutputStream::GetLength
() const
{
return m_file->Length();
}
{
return m_file->Length();
}
@@
-191,22
+193,27
@@
wxFileStream::wxFileStream(const wxString& fileName)
wxFileOutputStream::m_file = wxFileInputStream::m_file;
}
wxFileOutputStream::m_file = wxFileInputStream::m_file;
}
+#endif //wxUSE_FILE
+
+#if wxUSE_FFILE
+
// ----------------------------------------------------------------------------
// wxFFileInputStream
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// wxFFileInputStream
// ----------------------------------------------------------------------------
-wxFFileInputStream::wxFFileInputStream(const wxString& fileName)
- : wxInputStream()
+wxFFileInputStream::wxFFileInputStream(const wxString& fileName,
+ const wxChar *mode)
+ : wxInputStream()
{
{
- m_file = new wxFFile(fileName,
_T("rb")
);
+ m_file = new wxFFile(fileName,
mode
);
m_file_destroy = true;
}
wxFFileInputStream::wxFFileInputStream()
m_file_destroy = true;
}
wxFFileInputStream::wxFFileInputStream()
- : wxInputStream()
+
: wxInputStream()
{
{
- m_file_destroy = false;
m_file = NULL;
m_file = NULL;
+ m_file_destroy = false;
}
wxFFileInputStream::wxFFileInputStream(wxFFile& file)
}
wxFFileInputStream::wxFFileInputStream(wxFFile& file)
@@
-227,18
+234,17
@@
wxFFileInputStream::~wxFFileInputStream()
delete m_file;
}
delete m_file;
}
-
size_t wxFFileInputStream::GetSize
() const
+
wxFileOffset wxFFileInputStream::GetLength
() const
{
return m_file->Length();
}
size_t wxFFileInputStream::OnSysRead(void *buffer, size_t size)
{
{
return m_file->Length();
}
size_t wxFFileInputStream::OnSysRead(void *buffer, size_t size)
{
- wxFileOffset ret;
-
- ret = m_file->Read(buffer, size);
+ ssize_t ret = m_file->Read(buffer, size);
- if (m_file->Eof())
+ // It is not safe to call Eof() if the file is not opened.
+ if (!m_file->IsOpened() || m_file->Eof())
m_lasterror = wxSTREAM_EOF;
if (ret == wxInvalidOffset)
{
m_lasterror = wxSTREAM_EOF;
if (ret == wxInvalidOffset)
{
@@
-251,13
+257,7
@@
size_t wxFFileInputStream::OnSysRead(void *buffer, size_t size)
wxFileOffset wxFFileInputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode)
{
wxFileOffset wxFFileInputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode)
{
-#ifdef __VMS
-#pragma message disable intsignchange
-#endif
- return ( m_file->Seek(pos, mode) ? m_file->Tell() : wxInvalidOffset );
-#ifdef __VMS
-#pragma message enable intsignchange
-#endif
+ return m_file->Seek(pos, mode) ? m_file->Tell() : wxInvalidOffset;
}
wxFileOffset wxFFileInputStream::OnSysTell() const
}
wxFileOffset wxFFileInputStream::OnSysTell() const
@@
-269,9
+269,10
@@
wxFileOffset wxFFileInputStream::OnSysTell() const
// wxFFileOutputStream
// ----------------------------------------------------------------------------
// wxFFileOutputStream
// ----------------------------------------------------------------------------
-wxFFileOutputStream::wxFFileOutputStream(const wxString& fileName)
+wxFFileOutputStream::wxFFileOutputStream(const wxString& fileName,
+ const wxChar *mode)
{
{
- m_file = new wxFFile(fileName,
_T("w+b")
);
+ m_file = new wxFFile(fileName,
mode
);
m_file_destroy = true;
if (!m_file->IsOpened())
m_file_destroy = true;
if (!m_file->IsOpened())
@@
-292,10
+293,10
@@
wxFFileOutputStream::wxFFileOutputStream(wxFFile& file)
}
wxFFileOutputStream::wxFFileOutputStream()
}
wxFFileOutputStream::wxFFileOutputStream()
- : wxOutputStream()
+
: wxOutputStream()
{
{
- m_file_destroy = false;
m_file = NULL;
m_file = NULL;
+ m_file_destroy = false;
}
wxFFileOutputStream::wxFFileOutputStream(FILE *file)
}
wxFFileOutputStream::wxFFileOutputStream(FILE *file)
@@
-316,7
+317,8
@@
wxFFileOutputStream::~wxFFileOutputStream()
size_t wxFFileOutputStream::OnSysWrite(const void *buffer, size_t size)
{
size_t ret = m_file->Write(buffer, size);
size_t wxFFileOutputStream::OnSysWrite(const void *buffer, size_t size)
{
size_t ret = m_file->Write(buffer, size);
- if (m_file->Error())
+ // It is not safe to call Error() if the file is not opened.
+ if (!m_file->IsOpened() || m_file->Error())
m_lasterror = wxSTREAM_WRITE_ERROR;
else
m_lasterror = wxSTREAM_NO_ERROR;
m_lasterror = wxSTREAM_WRITE_ERROR;
else
m_lasterror = wxSTREAM_NO_ERROR;
@@
-330,13
+332,7
@@
wxFileOffset wxFFileOutputStream::OnSysTell() const
wxFileOffset wxFFileOutputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode)
{
wxFileOffset wxFFileOutputStream::OnSysSeek(wxFileOffset pos, wxSeekMode mode)
{
-#ifdef __VMS
-#pragma message disable intsignchange
-#endif
- return ( m_file->Seek(pos, mode) ? m_file->Tell() : wxInvalidOffset );
-#ifdef __VMS
-#pragma message enable intsignchange
-#endif
+ return m_file->Seek(pos, mode) ? m_file->Tell() : wxInvalidOffset;
}
void wxFFileOutputStream::Sync()
}
void wxFFileOutputStream::Sync()
@@
-345,7
+341,7
@@
void wxFFileOutputStream::Sync()
m_file->Flush();
}
m_file->Flush();
}
-
size_t wxFFileOutputStream::GetSize
() const
+
wxFileOffset wxFFileOutputStream::GetLength
() const
{
return m_file->Length();
}
{
return m_file->Length();
}
@@
-360,6
+356,7
@@
wxFFileStream::wxFFileStream(const wxString& fileName)
wxFFileOutputStream::m_file = wxFFileInputStream::m_file;
}
wxFFileOutputStream::m_file = wxFFileInputStream::m_file;
}
-#endif
- // wxUSE_STREAMS && wxUSE_FILE
+#endif //wxUSE_FFILE
+
+#endif // wxUSE_STREAMS