// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "datstrm.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#if wxUSE_STREAMS
#include "wx/datstrm.h"
+#include "wx/math.h"
// ---------------------------------------------------------------------------
// wxDataInputStream
return (wxUint8)buf;
}
-// Must be at global scope for VC++ 5
-extern "C" double ConvertFromIeeeExtended(const unsigned char *bytes);
-
double wxDataInputStream::ReadDouble()
{
#if wxUSE_APPLE_IEEE
char buf[10];
m_input->Read(buf, 10);
- return ConvertFromIeeeExtended((unsigned char *)buf);
+ return ConvertFromIeeeExtended((const wxInt8 *)buf);
#else
return 0.0;
#endif
void wxDataInputStream::Read32(wxUint32 *buffer, size_t size)
{
- m_input->Read(buffer, size * 4);
+ m_input->Read(buffer, size * 4);
- if (m_be_order)
- {
- for (wxUint32 i=0; i<size; i++)
+ if (m_be_order)
{
- wxUint32 v = wxUINT32_SWAP_ON_LE(*buffer);
- *(buffer++) = v;
+ for (wxUint32 i=0; i<size; i++)
+ {
+ wxUint32 v = wxUINT32_SWAP_ON_LE(*buffer);
+ *(buffer++) = v;
+ }
}
- }
-else
- {
- for (wxUint32 i=0; i<size; i++)
+ else
{
- wxUint32 v = wxUINT32_SWAP_ON_BE(*buffer);
- *(buffer++) = v;
+ for (wxUint32 i=0; i<size; i++)
+ {
+ wxUint32 v = wxUINT32_SWAP_ON_BE(*buffer);
+ *(buffer++) = v;
+ }
}
- }
}
void wxDataInputStream::Read16(wxUint16 *buffer, size_t size)
m_output->Write(buf, len);
}
-// Must be at global scope for VC++ 5
-extern "C" void ConvertToIeeeExtended(double num, unsigned char *bytes);
-
void wxDataOutputStream::WriteDouble(double d)
{
char buf[10];
#if wxUSE_APPLE_IEEE
- ConvertToIeeeExtended(d, (unsigned char *)buf);
+ ConvertToIeeeExtended(d, (wxInt8 *)buf);
#else
-#ifndef __VMS__
+#if !defined(__VMS__) && !defined(__GNUG__)
# pragma warning "wxDataOutputStream::WriteDouble() not using IeeeExtended - will not work!"
#endif
buf[0] = '\0';