if (c==(wxChar)0) return 0;
f = 0.0;
- if (! (c == wxT('.') || c == wxT('-') || c == wxT('+') || isdigit(c)) )
+ if (! (c == wxT('.') || c == wxT(',') || c == wxT('-') || c == wxT('+') || isdigit(c)) )
{
m_input.Ungetch(c);
return 0.0;
c = m_input.GetC();
}
- if (c == wxT('.'))
+ if (c == wxT('.') || c == wxT(','))
{
double f_multiplicator = (double) 0.1;
return *this;
}
-wxTextOutputStream::wxTextOutputStream(wxOutputStream& s)
+wxTextOutputStream::wxTextOutputStream(wxOutputStream& s, wxEOL mode)
: m_output(s)
{
+ m_mode = mode;
+ if (m_mode == wxEOL_NATIVE)
+ {
+#if defined(__WXMSW__) || defined(__WXPM__)
+ m_mode = wxEOL_DOS;
+#elif defined(__WXMAC__)
+ m_mode = wxEOL_MAC;
+#else
+ m_mode = wxEOL_UNIX;
+#endif
+ }
}
wxTextOutputStream::~wxTextOutputStream()
{
}
+void wxTextOutputStream::SetMode(wxEOL mode)
+{
+ m_mode = mode;
+ if (m_mode == wxEOL_NATIVE)
+ {
+#if defined(__WXMSW__) || defined(__WXPM__)
+ m_mode = wxEOL_DOS;
+#elif defined(__WXMAC__)
+ m_mode = wxEOL_MAC;
+#else
+ m_mode = wxEOL_UNIX;
+#endif
+ }
+}
+
void wxTextOutputStream::Write32(wxUint32 i)
{
wxString str;
wxChar c = string[i];
if (c == wxT('\n'))
{
-#if defined(__WINDOWS__)
- c = wxT('\r');
- m_output.Write( (const void*)(&c), sizeof(wxChar) );
- c = wxT('\n');
- m_output.Write( (const void*)(&c), sizeof(wxChar) );
-#elif defined(__UNIX__)
- c = wxT('\n');
- m_output.Write( (const void*)(&c), sizeof(wxChar) );
-#elif defined(__WXMAC__)
- c = wxT('\r');
- m_output.Write( (const void*)(&c), sizeof(wxChar) );
-#elif defined(__OS2__)
- c = wxT('\r');
- m_output.Write( (const void*)(&c), sizeof(wxChar) );
- c = wxT('\n');
- m_output.Write( (const void*)(&c), sizeof(wxChar) );
-#else
- #error "wxTextOutputStream: unsupported platform."
-#endif
+ if (m_mode == wxEOL_DOS)
+ {
+ c = wxT('\r');
+ m_output.Write( (const void*)(&c), sizeof(wxChar) );
+ c = wxT('\n');
+ m_output.Write( (const void*)(&c), sizeof(wxChar) );
+ } else
+ if (m_mode == wxEOL_MAC)
+ {
+ c = wxT('\r');
+ m_output.Write( (const void*)(&c), sizeof(wxChar) );
+ } else
+ {
+ c = wxT('\n');
+ m_output.Write( (const void*)(&c), sizeof(wxChar) );
+ }
}
else
{
wxTextOutputStream& wxTextOutputStream::operator<<(wxInt16 c)
{
- Write16( (wxUint16)c );
+ wxString str;
+ str.Printf(wxT("%d"), (signed int)c);
+ WriteString(str);
+
return *this;
}
wxTextOutputStream& wxTextOutputStream::operator<<(wxInt32 c)
{
- Write32( (wxUint32)c );
+ wxString str;
+ str.Printf(wxT("%ld"), (signed long)c);
+ WriteString(str);
+
return *this;
}
wxTextOutputStream& wxTextOutputStream::operator<<(wxUint16 c)
{
- Write16(c);
+ wxString str;
+ str.Printf(wxT("%u"), (unsigned int)c);
+ WriteString(str);
+
return *this;
}
wxTextOutputStream& wxTextOutputStream::operator<<(wxUint32 c)
{
- Write32(c);
+ wxString str;
+ str.Printf(wxT("%lu"), (unsigned long)c);
+ WriteString(str);
+
return *this;
}