X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/18680f86512504f043ad5d0b222afc7be87aa3e9..b53aea81d2e102224b452ef5bf7aee1132f37c6f:/src/common/datstrm.cpp diff --git a/src/common/datstrm.cpp b/src/common/datstrm.cpp index 50e4eb4b2e..8a97eca767 100644 --- a/src/common/datstrm.cpp +++ b/src/common/datstrm.cpp @@ -45,6 +45,14 @@ wxDataInputStream::~wxDataInputStream() #endif // wxUSE_UNICODE } +#if wxUSE_UNICODE +void wxDataInputStream::SetConv( const wxMBConv &conv ) +{ + delete m_conv; + m_conv = conv.Clone(); +} +#endif + #if wxHAS_INT64 wxUint64 wxDataInputStream::Read64() { @@ -92,7 +100,7 @@ double wxDataInputStream::ReadDouble() char buf[10]; m_input->Read(buf, 10); - return ConvertFromIeeeExtended((const wxInt8 *)buf); + return wxConvertFromIeeeExtended((const wxInt8 *)buf); #else return 0.0; #endif @@ -100,25 +108,27 @@ double wxDataInputStream::ReadDouble() wxString wxDataInputStream::ReadString() { - size_t len; - - len = Read32(); + wxString ret; - if (len > 0) - { + const size_t len = Read32(); + if ( len > 0 ) + { #if wxUSE_UNICODE - wxCharBuffer tmp(len + 1); - m_input->Read(tmp.data(), len); - tmp.data()[len] = '\0'; - wxString ret(m_conv->cMB2WX(tmp.data())); + wxCharBuffer tmp(len + 1); + if ( tmp ) + { + m_input->Read(tmp.data(), len); + tmp.data()[len] = '\0'; + ret = m_conv->cMB2WX(tmp.data()); + } #else - wxString ret; - m_input->Read( wxStringBuffer(ret, len), len); + wxStringBuffer buf(ret, len); + if ( buf ) + m_input->Read(buf, len); #endif + } + return ret; - } - else - return wxEmptyString; } #if wxUSE_LONGLONG @@ -471,6 +481,14 @@ wxDataOutputStream::~wxDataOutputStream() #endif // wxUSE_UNICODE } +#if wxUSE_UNICODE +void wxDataOutputStream::SetConv( const wxMBConv &conv ) +{ + delete m_conv; + m_conv = conv.Clone(); +} +#endif + #if wxHAS_INT64 void wxDataOutputStream::Write64(wxUint64 i) { @@ -529,7 +547,7 @@ void wxDataOutputStream::WriteDouble(double d) char buf[10]; #if wxUSE_APPLE_IEEE - ConvertToIeeeExtended(d, (wxInt8 *)buf); + wxConvertToIeeeExtended(d, (wxInt8 *)buf); #else #if !defined(__VMS__) && !defined(__GNUG__) # pragma warning "wxDataOutputStream::WriteDouble() not using IeeeExtended - will not work!" @@ -650,13 +668,6 @@ void wxDataOutputStream::WriteDouble(const double *buffer, size_t size) } } -wxDataOutputStream& wxDataOutputStream::operator<<(const wxChar *string) -{ - Write32(wxStrlen(string)); - m_output->Write((const char *)string, wxStrlen(string)*sizeof(wxChar)); - return *this; -} - wxDataOutputStream& wxDataOutputStream::operator<<(const wxString& string) { WriteString(string);