]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/txtstrm.cpp
applying OSAF patch for "toolbar selection not correct on Mac after calling Realize...
[wxWidgets.git] / src / common / txtstrm.cpp
index 3643af2ba44805e00f67436219905864e91b24af..93bc7ad912bffa5f6f9a810c06db73f89698dd23 100644 (file)
@@ -252,6 +252,17 @@ wxTextInputStream& wxTextInputStream::operator>>(char& c)
     return *this;
 }
 
+#if wxUSE_UNICODE && wxWCHAR_T_IS_REAL_TYPE
+
+wxTextInputStream& wxTextInputStream::operator>>(wchar_t& wc)
+{
+    wc = GetChar();
+
+    return *this;
+}
+
+#endif // wxUSE_UNICODE
+
 wxTextInputStream& wxTextInputStream::operator>>(wxInt16& i)
 {
     i = (wxInt16)Read16();
@@ -406,6 +417,16 @@ void wxTextOutputStream::WriteString(const wxString& string)
 #endif
 }
 
+wxTextOutputStream& wxTextOutputStream::PutChar(wxChar c)
+{
+#if wxUSE_UNICODE
+    WriteString( wxString(&c, m_conv, 1) );
+#else
+    WriteString( wxString(&c, wxConvLocal, 1) );
+#endif
+    return *this;
+}
+
 wxTextOutputStream& wxTextOutputStream::operator<<(const wxChar *string)
 {
     WriteString( wxString(string) );
@@ -486,17 +507,7 @@ wxTextOutputStream& wxTextOutputStream::operator<<(float f)
 
 wxTextOutputStream &endl( wxTextOutputStream &stream )
 {
-    //RN: Normally a single char on builds without a real
-    //wchar_t will call the version that corresponds to the
-    //numeric value of wchar_t itself (wxUint16 if 2 bytes etc.), 
-    //which is not what we want (will print a 10 numeric value,
-    //not a newline).  Thus, we need to send it a string in that 
-    // case instead so that it correctly prints the newline.
-#if !wxUSE_UNICODE || wxWCHAR_T_IS_REAL_TYPE
-    return stream << wxT('\n');
-#else
-    return stream << wxT("\n");
-#endif
+    return stream.PutChar(wxT('\n'));
 }
 
 #endif