From: Amos Jeffries Date: Tue, 20 May 2014 11:35:49 +0000 (-0700) Subject: Add optional limit parameter to Tokenizer::prefix() X-Git-Tag: SQUID_3_5_0_1~217^2~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=263eedf22f2e566af2dd188f8c30d711b9bd3a85;p=thirdparty%2Fsquid.git Add optional limit parameter to Tokenizer::prefix() --- diff --git a/src/parser/Tokenizer.cc b/src/parser/Tokenizer.cc index a4a4a751f3..227bf4066d 100644 --- a/src/parser/Tokenizer.cc +++ b/src/parser/Tokenizer.cc @@ -19,9 +19,9 @@ Tokenizer::token(SBuf &returnedToken, const CharacterSet &whitespace) } bool -Tokenizer::prefix(SBuf &returnedToken, const CharacterSet &tokenChars) +Tokenizer::prefix(SBuf &returnedToken, const CharacterSet &tokenChars, const SBuf::size_type limit) { - SBuf::size_type prefixLen = buf_.findFirstNotOf(tokenChars); + SBuf::size_type prefixLen = buf_.substr(0,limit).findFirstNotOf(tokenChars); if (prefixLen == 0) return false; returnedToken = buf_.consume(prefixLen); diff --git a/src/parser/Tokenizer.h b/src/parser/Tokenizer.h index d40869875d..1d12fe94d8 100644 --- a/src/parser/Tokenizer.h +++ b/src/parser/Tokenizer.h @@ -26,8 +26,8 @@ public: */ bool token(SBuf &returnedToken, const CharacterSet &whitespace); - /// Accumulates all sequential permitted characters (a token). - bool prefix(SBuf &returnedToken, const CharacterSet &tokenChars); + /// Accumulates all sequential permitted characters (a token) up to an optional length limit. + bool prefix(SBuf &returnedToken, const CharacterSet &tokenChars, SBuf::size_type limit = SBuf::npos); /// Skips all sequential permitted characters (a token). bool skip(const CharacterSet &tokenChars);