From: JINMEI Tatuya Date: Thu, 15 Nov 2012 03:04:02 +0000 (-0800) Subject: [2373] refactoring: extend skipComment to include 'escaped' consideration. X-Git-Tag: trac2487_base^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1ed3ca78fe3449303aa2f8bd78e358fc52d0584b;p=thirdparty%2Fkea.git [2373] refactoring: extend skipComment to include 'escaped' consideration. this will help constify 'c' in String::handle. --- diff --git a/src/lib/dns/master_lexer.cc b/src/lib/dns/master_lexer.cc index 977459cdc9..7d79e0d063 100644 --- a/src/lib/dns/master_lexer.cc +++ b/src/lib/dns/master_lexer.cc @@ -51,8 +51,8 @@ struct MasterLexer::MasterLexerImpl { // commonly used by state classes. It returns the corresponding "end-of" // character in case it's a comment; otherwise it simply returns the // current character. - int skipComment(int c) { - if (c == ';') { + int skipComment(int c, bool escaped = false) { + if (c == ';' && !escaped) { while (true) { c = source_->getChar(); if (c == '\n' || c == InputSource::END_OF_STREAM) { @@ -325,10 +325,8 @@ String::handle(MasterLexer& lexer) const { bool escaped = false; while (true) { - int c = getLexerImpl(lexer)->source_->getChar(); - if (!escaped) { - c = getLexerImpl(lexer)->skipComment(c); - } + const int c = getLexerImpl(lexer)->skipComment( + getLexerImpl(lexer)->source_->getChar(), escaped); if (getLexerImpl(lexer)->isTokenEnd(c, escaped)) { getLexerImpl(lexer)->source_->ungetChar();