When he prefix() method is passed a set limit for characters to scan and
the matched characters do reach that limit the entire Tokenizer buffer
content is consumed and returned.
Correct operation is to only consume and return the matched characters.
return false;
if (prefixLen == SBuf::npos && (atEnd() || limit == 0))
return false;
+ if (prefixLen == SBuf::npos && limit > 0)
+ prefixLen = limit;
returnedToken = consume(prefixLen); // cannot be empty after the npos check
return true;
}