1 // I *could* use OWStringScanner, but I don't want to. Shut up, sabi :)
3 #import "ITStringScanner.h"
5 @implementation ITStringScanner
9 if ( ( self = [super init] ) )
19 - (id)initWithString:(NSString*)string
21 if ( ( self = [super init] ) )
23 _cString = (char *)[string cString];
24 _string = [string retain];
26 _size = [string length];
31 - (NSString *)scanUpToCharacter:(char)character
33 size_t i=_currentPosition,j=0;
35 if (_cString[i] == character)
43 NSString *tmpStr = nil;
44 const size_t tmp = _size;
45 unsigned char foundIt = NO;
51 if (_cString[i] == character)
58 while ((!foundIt) && (i<tmp));
62 tmpStr = [_string substringWithRange:r];
69 - (NSString *)scanUpToString:(NSString*)string
71 size_t i=_currentPosition,j=0, len = [string length];
72 const char *str2cstr = [string cString];
78 return [self scanUpToCharacter:str2cstr[0]];
85 NSString *tmpStr = nil;
86 const size_t tmp = _size;
87 unsigned char foundIt = NO;
94 {//now we check for the rest of the string
100 while ((!foundIt) && (i<tmp));
104 tmpStr = [_string substringWithRange:r];
105 _currentPosition = i;