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