- pos = m_string.find_first_of(m_delims, pos);
- if ( pos == wxString::npos )
- break;
+ // no non empty tokens left, but in 2 cases we still may return true if
+ // GetNextToken() wasn't called yet for this empty token:
+ //
+ // a) in wxTOKEN_RET_EMPTY_ALL mode we always do it
+ // b) in wxTOKEN_RET_EMPTY mode we do it in the special case of a
+ // string containing only the delimiter: then there is an empty
+ // token just before it
+ return (m_mode == wxTOKEN_RET_EMPTY_ALL) ||
+ (m_mode == wxTOKEN_RET_EMPTY && m_pos == 0)
+ ? m_hasMore : false;
+ }
+ else
+ {
+ // there are non delimiter characters left, hence we do have more
+ // tokens
+ return true;
+ }
+}