]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/string.cpp
add wxGenericStaticText (#9656)
[wxWidgets.git] / src / common / string.cpp
index bb5029fcf486eeb498a84a7a4567b682630bc27d..04a606a3c563b308768b9678347732562de43ac4 100644 (file)
@@ -168,7 +168,13 @@ static wxStrCacheStatsDumper s_showCacheStats;
 wxSTD ostream& operator<<(wxSTD ostream& os, const wxCStrData& str)
 {
 #if wxUSE_UNICODE && !wxUSE_UNICODE_UTF8
 wxSTD ostream& operator<<(wxSTD ostream& os, const wxCStrData& str)
 {
 #if wxUSE_UNICODE && !wxUSE_UNICODE_UTF8
-    return os << (const char *)str.AsCharBuf();
+    const wxCharBuffer buf(str.AsCharBuf());
+    if ( !buf )
+        os.clear(wxSTD ios_base::failbit);
+    else
+        os << buf.data();
+
+    return os;
 #else
     return os << str.AsInternal();
 #endif
 #else
     return os << str.AsInternal();
 #endif
@@ -1276,7 +1282,7 @@ wxString wxString::Right(size_t nCount) const
   return dest;
 }
 
   return dest;
 }
 
-// get all characters after the last occurence of ch
+// get all characters after the last occurrence of ch
 // (returns the whole string if ch not found)
 wxString wxString::AfterLast(wxUniChar ch) const
 {
 // (returns the whole string if ch not found)
 wxString wxString::AfterLast(wxUniChar ch) const
 {
@@ -1285,7 +1291,7 @@ wxString wxString::AfterLast(wxUniChar ch) const
   if ( iPos == wxNOT_FOUND )
     str = *this;
   else
   if ( iPos == wxNOT_FOUND )
     str = *this;
   else
-    str = wx_str() + iPos + 1;
+    str.assign(*this, iPos + 1, npos);
 
   return str;
 }
 
   return str;
 }
@@ -1303,16 +1309,17 @@ wxString wxString::Left(size_t nCount) const
   return dest;
 }
 
   return dest;
 }
 
-// get all characters before the first occurence of ch
+// get all characters before the first occurrence of ch
 // (returns the whole string if ch not found)
 wxString wxString::BeforeFirst(wxUniChar ch) const
 {
   int iPos = Find(ch);
 // (returns the whole string if ch not found)
 wxString wxString::BeforeFirst(wxUniChar ch) const
 {
   int iPos = Find(ch);
-  if ( iPos == wxNOT_FOUND ) iPos = length();
+  if ( iPos == wxNOT_FOUND )
+      iPos = length();
   return wxString(*this, 0, iPos);
 }
 
   return wxString(*this, 0, iPos);
 }
 
-/// get all characters before the last occurence of ch
+/// get all characters before the last occurrence of ch
 /// (returns empty string if ch not found)
 wxString wxString::BeforeLast(wxUniChar ch) const
 {
 /// (returns empty string if ch not found)
 wxString wxString::BeforeLast(wxUniChar ch) const
 {
@@ -1324,19 +1331,19 @@ wxString wxString::BeforeLast(wxUniChar ch) const
   return str;
 }
 
   return str;
 }
 
-/// get all characters after the first occurence of ch
+/// get all characters after the first occurrence of ch
 /// (returns empty string if ch not found)
 wxString wxString::AfterFirst(wxUniChar ch) const
 {
   wxString str;
   int iPos = Find(ch);
   if ( iPos != wxNOT_FOUND )
 /// (returns empty string if ch not found)
 wxString wxString::AfterFirst(wxUniChar ch) const
 {
   wxString str;
   int iPos = Find(ch);
   if ( iPos != wxNOT_FOUND )
-    str = wx_str() + iPos + 1;
+      str.assign(*this, iPos + 1, npos);
 
   return str;
 }
 
 
   return str;
 }
 
-// replace first (or all) occurences of some substring with another one
+// replace first (or all) occurrences of some substring with another one
 size_t wxString::Replace(const wxString& strOld,
                          const wxString& strNew, bool bReplaceAll)
 {
 size_t wxString::Replace(const wxString& strOld,
                          const wxString& strNew, bool bReplaceAll)
 {
@@ -2123,10 +2130,14 @@ wxUTF8StringBufferLength::~wxUTF8StringBufferLength()
 // wxCharBufferType<T>
 // ----------------------------------------------------------------------------
 
 // wxCharBufferType<T>
 // ----------------------------------------------------------------------------
 
+#ifndef __VMS_BROKEN_TEMPLATES
 template<>
 template<>
+#endif
 wxCharTypeBuffer<char>::Data
 wxCharTypeBuffer<char>::NullData(NULL);
 
 wxCharTypeBuffer<char>::Data
 wxCharTypeBuffer<char>::NullData(NULL);
 
+#ifndef __VMS_BROKEN_TEMPLATES
 template<>
 template<>
+#endif
 wxCharTypeBuffer<wchar_t>::Data
 wxCharTypeBuffer<wchar_t>::NullData(NULL);
 wxCharTypeBuffer<wchar_t>::Data
 wxCharTypeBuffer<wchar_t>::NullData(NULL);