1 // Copyright (C) 2018 Bruce Guenter <bruce@untroubled.org>
2 //
3 // This program is free software; you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation; either version 2 of the License, or
6 // (at your option) any later version.
7 //
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with this program; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
17 #include "mystring.h"
18
mystring_iter(const mystring & s,char e)19 mystring_iter::mystring_iter(const mystring& s, char e)
20 : str(s), sep(e), pos(0)
21 {
22 advance();
23 }
24
~mystring_iter()25 mystring_iter::~mystring_iter()
26 {
27 }
28
advance()29 void mystring_iter::advance()
30 {
31 if(pos == -1)
32 return;
33 int i = str.find_first(sep, pos);
34 if(i == -1) {
35 if(pos >= 0 && pos < (int)str.length()) {
36 part = str.right(pos);
37 pos = str.length();
38 }
39 else {
40 part = "";
41 pos = -1;
42 }
43 }
44 else {
45 part = str.sub(pos, i-pos);
46 pos = i + 1;
47 }
48 }
49