X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d3e9a6f3bfcc5e2f017eaa90dd0e45ea87dd459d..eea4d01c65f9b29baa1193db762b4c6b8144af24:/src/common/datstrm.cpp diff --git a/src/common/datstrm.cpp b/src/common/datstrm.cpp index 99e9051c03..607c542647 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,10 +547,15 @@ void wxDataOutputStream::WriteDouble(double d) char buf[10]; #if wxUSE_APPLE_IEEE - ConvertToIeeeExtended(d, (wxInt8 *)buf); + wxConvertToIeeeExtended(d, (wxInt8 *)buf); #else + wxUnusedVar(d); #if !defined(__VMS__) && !defined(__GNUG__) +#ifdef _MSC_VER +# pragma message("wxDataOutputStream::WriteDouble() not using IeeeExtended - will not work!") +#else # pragma warning "wxDataOutputStream::WriteDouble() not using IeeeExtended - will not work!" +#endif #endif buf[0] = '\0'; #endif