]> git.saurik.com Git - wxWidgets.git/commitdiff
* Added a fix from Allen to wxStringTokenizer
authorGuilhem Lavaux <lavaux@easynet.fr>
Thu, 20 May 1999 17:44:04 +0000 (17:44 +0000)
committerGuilhem Lavaux <lavaux@easynet.fr>
Thu, 20 May 1999 17:44:04 +0000 (17:44 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2524 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/tokenzr.h
src/common/tokenzr.cpp

index 764b4c80919e854b4bd252b376eb51946009fc9f..8012854ac627290b23838fa6a38f4b849c12f58a 100644 (file)
@@ -47,6 +47,8 @@ public:
 
 protected:
   off_t FindDelims(const wxString& str, const wxString& delims);
+  void EatLeadingDelims(); // AVS - added to fix leading whitespace /
+                           // mult. delims bugs
 protected:
   wxString m_string, m_delims;
   bool m_retdelims;
index 34079c0f66f4edf028519479b0639a6577b657d0..19ae5e0f29a44ab49cfe32d98f3adb5deef8048b 100644 (file)
@@ -82,6 +82,16 @@ bool wxStringTokenizer::HasMoreToken()
   return (m_string.Length() != 0);
 }
 
+// AVS - added to fix leading whitespace / mult. delims bugs
+void wxStringTokenizer::EatLeadingDelims() 
+{
+  int pos;
+
+  while ((pos=FindDelims(m_string, m_delims))==0) { // while leading delims
+     m_string = m_string.Mid((size_t)1);     // trim 'em from the left
+  }
+}
+
 wxString wxStringTokenizer::NextToken()
 {
   register off_t pos, pos2;
@@ -90,6 +100,10 @@ wxString wxStringTokenizer::NextToken()
   if (m_string.IsNull())
     return m_string;
 
+  if (!m_retdelims)
+    EatLeadingDelims(); // AVS - added to fix leading whitespace /
+                        // mult. delims bugs
+
   pos = FindDelims(m_string, m_delims);
   if (pos == -1) {
     r_string = m_string;