]> granicus.if.org Git - php/commitdiff
MFH: Fixed bug #26463 (Incorrect handling of semicolons after heredoc)
authorIlia Alshanetsky <iliaa@php.net>
Sat, 29 Nov 2003 19:05:59 +0000 (19:05 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Sat, 29 Nov 2003 19:05:59 +0000 (19:05 +0000)
ext/tokenizer/tests/bug26463.phpt
ext/tokenizer/tokenizer.c

index d1e75b4e034552902a2875c2475b08c725596200..6d795a829d4c24ce11a17ef111dfcf93714ec8f8 100644 (file)
@@ -18,7 +18,7 @@ array(17) {
   [0]=>
   array(2) {
     [0]=>
-    int(363)
+    int(353)
     [1]=>
     string(6) "<?php
 "
@@ -26,7 +26,7 @@ array(17) {
   [1]=>
   array(2) {
     [0]=>
-    int(307)
+    int(306)
     [1]=>
     string(2) "$x"
   }
@@ -35,7 +35,7 @@ array(17) {
   [3]=>
   array(2) {
     [0]=>
-    int(367)
+    int(357)
     [1]=>
     string(6) "<<<DD
 "
@@ -43,7 +43,7 @@ array(17) {
   [4]=>
   array(2) {
     [0]=>
-    int(305)
+    int(304)
     [1]=>
     string(13) "jhdsjkfhjdsh
 "
@@ -51,7 +51,7 @@ array(17) {
   [5]=>
   array(2) {
     [0]=>
-    int(368)
+    int(358)
     [1]=>
     string(2) "DD"
   }
@@ -60,7 +60,7 @@ array(17) {
   [7]=>
   array(2) {
     [0]=>
-    int(313)
+    int(312)
     [1]=>
     string(2) """"
   }
@@ -69,7 +69,7 @@ array(17) {
   [9]=>
   array(2) {
     [0]=>
-    int(366)
+    int(356)
     [1]=>
     string(1) "
 "
@@ -77,7 +77,7 @@ array(17) {
   [10]=>
   array(2) {
     [0]=>
-    int(307)
+    int(306)
     [1]=>
     string(2) "$a"
   }
@@ -86,7 +86,7 @@ array(17) {
   [12]=>
   array(2) {
     [0]=>
-    int(367)
+    int(357)
     [1]=>
     string(8) "<<<DDDD
 "
@@ -94,7 +94,7 @@ array(17) {
   [13]=>
   array(2) {
     [0]=>
-    int(305)
+    int(304)
     [1]=>
     string(13) "jhdsjkfhjdsh
 "
@@ -102,7 +102,7 @@ array(17) {
   [14]=>
   array(2) {
     [0]=>
-    int(368)
+    int(358)
     [1]=>
     string(4) "DDDD"
   }
@@ -111,7 +111,7 @@ array(17) {
   [16]=>
   array(2) {
     [0]=>
-    int(365)
+    int(355)
     [1]=>
     string(2) "?>"
   }
index 463aedd3f546fb36bca6f0777a68a25a7d26ed16..c640a99f71eecf750599632fac6dd2ad70a6457f 100644 (file)
@@ -346,7 +346,12 @@ static void tokenize(zval *return_value TSRMLS_DC)
                        MAKE_STD_ZVAL(keyword);
                        array_init(keyword);
                        add_next_index_long(keyword, token_type);
-                       add_next_index_stringl(keyword, zendtext, zendleng, 1);
+                       if (token_type == T_END_HEREDOC) {
+                               add_next_index_stringl(keyword, Z_STRVAL(token), Z_STRLEN(token), 1);
+                               efree(Z_STRVAL(token));
+                       } else {
+                               add_next_index_stringl(keyword, zendtext, zendleng, 1);
+                       }
                        add_next_index_zval(return_value, keyword);
                } else {
                        add_next_index_stringl(return_value, zendtext, zendleng, 1);
@@ -354,9 +359,6 @@ static void tokenize(zval *return_value TSRMLS_DC)
                if (destroy && Z_TYPE(token) != IS_NULL) {
                        zval_dtor(&token);
                }
-               if (token_type == T_END_HEREDOC) {
-                       efree(Z_STRVAL(token));
-               }
                ZVAL_NULL(&token);
        }
 }