]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Add optional limit parameter to Tokenizer::prefix()
authorAmos Jeffries <squid3@treenet.co.nz>
Tue, 20 May 2014 11:35:49 +0000 (04:35 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Tue, 20 May 2014 11:35:49 +0000 (04:35 -0700)
src/parser/Tokenizer.cc
src/parser/Tokenizer.h

index a4a4a751f3695e33c815df9ec7173b149f080d23..227bf4066d93078a9b46af6381edd736cd96bfd0 100644 (file)
@@ -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);
index d40869875d2b708dd4904cee8867025eee20e301..1d12fe94d8d7cf88efa2dd4d82f944b99d6aa6c3 100644 (file)
@@ -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);