]> granicus.if.org Git - php/commitdiff
Fix 'b' prefix in highlighting and tokenizer. (Matt W)
authorAndrei Zmievski <andrei@php.net>
Tue, 9 Jan 2007 17:37:53 +0000 (17:37 +0000)
committerAndrei Zmievski <andrei@php.net>
Tue, 9 Jan 2007 17:37:53 +0000 (17:37 +0000)
Zend/zend_language_scanner.l

index 6c22224246ffe2475f87a5fbcebcbcdcb99001ef..76657ae04ac3a6f71983d1f9ef6915adab268e07 100644 (file)
@@ -1578,14 +1578,10 @@ NEWLINE ("\r"|"\n"|"\r\n")
 <ST_IN_SCRIPTING>("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")
 <ST_IN_SCRIPTING>("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")
 
 <ST_IN_SCRIPTING>"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)--;