aboutsummaryrefslogtreecommitdiffstats
path: root/src/kvilib/core/KviCString.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kvilib/core/KviCString.cpp')
-rw-r--r--src/kvilib/core/KviCString.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/kvilib/core/KviCString.cpp b/src/kvilib/core/KviCString.cpp
index b4c8b4f07..9514fa5ad 100644
--- a/src/kvilib/core/KviCString.cpp
+++ b/src/kvilib/core/KviCString.cpp
@@ -2657,7 +2657,7 @@ KviCString & KviCString::stripLeft(char c)
return (*this);
}
-bool KviCString::getToken(KviCString & str, char sep)
+bool KviCString::getToken(KviCString & str, char sep, bool skipEmpty)
{
KVI_ASSERT(str.m_ptr);
KVI_ASSERT(str.m_ptr != m_ptr);
@@ -2673,7 +2673,11 @@ bool KviCString::getToken(KviCString & str, char sep)
KviMemory::copy(str.m_ptr, m_ptr, str.m_len);
*(str.m_ptr + str.m_len) = '\0';
while(*p && (*p == sep))
+ {
p++;
+ if(!skipEmpty)
+ break;
+ }
cutLeft(p - m_ptr);
return (m_len != 0);
}
@@ -2700,14 +2704,18 @@ bool KviCString::getLine(KviCString & str)
return true;
}
-KviCString KviCString::getToken(char sep)
+KviCString KviCString::getToken(char sep, bool skipEmpty)
{
char * p = m_ptr;
while(*p && (*p != sep))
p++;
KviCString ret(m_ptr, p);
while(*p && (*p == sep))
+ {
p++;
+ if(!skipEmpty)
+ break;
+ }
cutLeft(p - m_ptr);
return ret;
}