moriyoshi Mon Jul 28 07:01:54 2008 UTC Added files: (Branch: PHP_5_3) /php-src/ext/mbstring/tests zend_multibyte-14.phpt
Modified files: /ZendEngine2 zend_language_scanner.l Log: - SCNG(input_filter) can be null if the script encoding is idential to the internal encoding. http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_language_scanner.l?r1=1.131.2.11.2.13.2.27&r2=1.131.2.11.2.13.2.28&diff_format=u Index: ZendEngine2/zend_language_scanner.l diff -u ZendEngine2/zend_language_scanner.l:1.131.2.11.2.13.2.27 ZendEngine2/zend_language_scanner.l:1.131.2.11.2.13.2.28 --- ZendEngine2/zend_language_scanner.l:1.131.2.11.2.13.2.27 Mon Jul 28 06:05:14 2008 +++ ZendEngine2/zend_language_scanner.l Mon Jul 28 07:01:54 2008 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.l,v 1.131.2.11.2.13.2.27 2008/07/28 06:05:14 moriyoshi Exp $ */ +/* $Id: zend_language_scanner.l,v 1.131.2.11.2.13.2.28 2008/07/28 07:01:54 moriyoshi Exp $ */ #if 0 # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) @@ -448,20 +448,21 @@ { size_t offset = SCNG(yy_cursor) - SCNG(yy_start); #ifdef ZEND_MULTIBYTE - size_t original_offset = offset, length = 0; - do { - unsigned char *p = NULL; - SCNG(input_filter)(&p, &length, SCNG(script_org), offset TSRMLS_CC); - if (!p) { - break; - } - efree(p); - if (length > original_offset) { - offset--; - } else if (length < original_offset) { - offset++; - } - } while (original_offset != length); + if (SCNG(input_filter)) { + size_t original_offset = offset, length = 0; do { + unsigned char *p = NULL; + SCNG(input_filter)(&p, &length, SCNG(script_org), offset TSRMLS_CC); + if (!p) { + break; + } + efree(p); + if (length > original_offset) { + offset--; + } else if (length < original_offset) { + offset++; + } + } while (original_offset != length); + } #endif return offset; } @@ -607,7 +608,7 @@ zend_encoding *new_encoding = SCNG(script_encoding); zend_encoding_filter new_filter = SCNG(input_filter); SCNG(script_encoding) = old_encoding; - SCNG(input_filter) = new_filter; + SCNG(input_filter) = old_input_filter; offset = zend_get_scanned_file_offset(TSRMLS_C); SCNG(script_encoding) = new_encoding; SCNG(input_filter) = new_filter; http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/tests/zend_multibyte-14.phpt?view=markup&rev=1.1 Index: php-src/ext/mbstring/tests/zend_multibyte-14.phpt +++ php-src/ext/mbstring/tests/zend_multibyte-14.phpt -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php