|
|
|
|
|
|
|
|
// as find but search ends if the terminator string is found |
|
|
// as find but search ends if the terminator string is found |
|
|
bool Stream::findUntil(const char *target, const char *terminator) |
|
|
bool Stream::findUntil(const char *target, const char *terminator) |
|
|
{ |
|
|
{ |
|
|
if(target == NULL) return true; |
|
|
|
|
|
size_t tlen = (terminator==NULL)?0:strlen(terminator); |
|
|
|
|
|
|
|
|
if(target == nullptr) return true; |
|
|
|
|
|
size_t tlen = (terminator==nullptr)?0:strlen(terminator); |
|
|
return findUntil(target, strlen(target), terminator, strlen(terminator)); |
|
|
return findUntil(target, strlen(target), terminator, strlen(terminator)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
size_t index = 0; // maximum target string length is 64k bytes! |
|
|
size_t index = 0; // maximum target string length is 64k bytes! |
|
|
size_t termIndex = 0; |
|
|
size_t termIndex = 0; |
|
|
int c; |
|
|
int c; |
|
|
if( target == NULL) return true; |
|
|
|
|
|
|
|
|
if( target == nullptr) return true; |
|
|
if( *target == 0) return true; // return true if target is a null string |
|
|
if( *target == 0) return true; // return true if target is a null string |
|
|
if (terminator == NULL) termLen = 0; |
|
|
|
|
|
|
|
|
if (terminator == nullptr) termLen = 0; |
|
|
|
|
|
|
|
|
while( (c = timedRead()) > 0){ |
|
|
while( (c = timedRead()) > 0){ |
|
|
if( c == target[index]){ |
|
|
if( c == target[index]){ |