From: Andrei Zmievski Date: Tue, 9 Jan 2007 17:37:53 +0000 (+0000) Subject: Fix 'b' prefix in highlighting and tokenizer. (Matt W) X-Git-Tag: php-5.2.1RC3~67 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=39fa36a0bec40166d2eb2886d030b49888c19351;p=php Fix 'b' prefix in highlighting and tokenizer. (Matt W) --- diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 6c22224246..76657ae04a 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1578,14 +1578,10 @@ NEWLINE ("\r"|"\n"|"\r\n") ("b"?["]([^$"\\]|("\\".))*["]) { register char *s, *t; char *end; + int bprefix = (*yytext == 'b') ? 1 : 0; - if (*yytext == 'b') { - yytext++; - yyleng--; - } - - zendlval->value.str.val = estrndup(yytext+1, yyleng-2); - zendlval->value.str.len = yyleng-2; + zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2); + zendlval->value.str.len = yyleng-bprefix-2; zendlval->type = IS_STRING; HANDLE_NEWLINES(yytext, yyleng); @@ -1673,14 +1669,10 @@ NEWLINE ("\r"|"\n"|"\r\n") ("b"?[']([^'\\]|("\\".))*[']) { register char *s, *t; char *end; + int bprefix = (*yytext == 'b') ? 1 : 0; - if (*yytext == 'b') { - yytext++; - yyleng--; - } - - zendlval->value.str.val = estrndup(yytext+1, yyleng-2); - zendlval->value.str.len = yyleng-2; + zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2); + zendlval->value.str.len = yyleng-bprefix-2; zendlval->type = IS_STRING; HANDLE_NEWLINES(yytext, yyleng); @@ -1731,15 +1723,11 @@ NEWLINE ("\r"|"\n"|"\r\n") "b"?"<<<"{TABS_AND_SPACES}{LABEL}{NEWLINE} { char *s; - - if (*yytext == 'b') { - yytext++; - yyleng--; - } + int bprefix = (*yytext == 'b') ? 1 : 0; CG(zend_lineno)++; - CG(heredoc_len) = yyleng-3-1-(yytext[yyleng-2]=='\r'?1:0); - s = yytext+3; + CG(heredoc_len) = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0); + s = yytext+bprefix+3; while ((*s == ' ') || (*s == '\t')) { s++; CG(heredoc_len)--;