Re: cvs: php-src(PHP_5_3) /ext/mbstring/tests zend_multibyte-13.phpt ZendEngine2 zend_compile.h zend_language_scanner.l
| From: | Marcus Boerger | Date: | Mon, 28 Jul 2008 16:01:18 +0000 |
| Subject: | Re: cvs: php-src(PHP_5_3) /ext/mbstring/tests zend_multibyte-13.phpt ZendEngine2 zend_compile.h zend_language_scanner.l | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-51682@lists.php.net to get a copy of this message | ||
Hello Moriyoshi,
Monday, July 28, 2008, 7:59:17 AM, you wrote:
> moriyoshi Mon Jul 28 05:59:17 2008 UTC
> Added files: (Branch: PHP_5_3)
> /php-src/ext/mbstring/tests zend_multibyte-13.phpt
> Modified files:
> /ZendEngine2 zend_language_scanner.l zend_compile.h
> Log:
> - Fix __halt_compiler() weirdness with zend-mulibyte enabled
>
>
>
> http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_language_scanner.l?r1=1.131.2.11.2.13.2.25&r2=1.131.2.11.2.13.2.26&diff_format=u
> Index: ZendEngine2/zend_language_scanner.l
> diff -u ZendEngine2/zend_language_scanner.l:1.131.2.11.2.13.2.25
> ZendEngine2/zend_language_scanner.l:1.131.2.11.2.13.2.26
> --- ZendEngine2/zend_language_scanner.l:1.131.2.11.2.13.2.25 Sat Jul 26 15:30:25 2008
> +++ ZendEngine2/zend_language_scanner.l Mon Jul 28 05:59:16 2008
> @@ -21,7 +21,7 @@
>
> +----------------------------------------------------------------------+
> */
>
> -/* $Id: zend_language_scanner.l,v 1.131.2.11.2.13.2.25 2008/07/26 15:30:25 dmitry Exp $ */
> +/* $Id: zend_language_scanner.l,v 1.131.2.11.2.13.2.26 2008/07/28 05:59:16 moriyoshi Exp $ */
>
> #if 0
> # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
> @@ -444,9 +444,26 @@
> }
>
>
> -ZEND_API int zend_get_scanned_file_offset(TSRMLS_D)
> +ZEND_API size_t zend_get_scanned_file_offset(TSRMLS_D)
> {
> - return SCNG(yy_cursor) - SCNG(yy_start);
> + 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);
> +#endif
> + return offset;
> }
>
>
> @@ -581,29 +598,19 @@
> BEGIN_EXTERN_C()
> ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter
> old_input_filter, zend_encoding *old_encoding TSRMLS_DC)
> {
> - size_t offset, original_offset, length, free_flag, new_len;
> + size_t original_offset, offset, free_flag, new_len, length;
> unsigned char *p;
> - zend_encoding *new_encoding;
>
> /* calculate current position */
> offset = original_offset = YYCURSOR - SCNG(yy_start);
> - if (old_input_filter && original_offset > 0) {
> - new_encoding = SCNG(script_encoding);
> + if (old_input_filter && offset > 0) {
> + zend_encoding *new_encoding = SCNG(script_encoding);
> + zend_encoding_filter new_filter = SCNG(input_filter);
You broke indentation here and at severl other places.
> SCNG(script_encoding) = old_encoding;
> - do {
> - (old_input_filter)(&p, &length,
> SCNG(script_org), offset TSRMLS_CC);
> - if (!p) {
> - SCNG(script_encoding) = new_encoding;
> - return;
> - }
> - efree(p);
> - if (length > original_offset) {
> - offset--;
> - } else if (length < original_offset) {
> - offset++;
> - }
> - } while (original_offset != length);
> + SCNG(input_filter) = new_filter;
> + offset = zend_get_scanned_file_offset(TSRMLS_C);
> SCNG(script_encoding) = new_encoding;
> + SCNG(input_filter) = new_filter;
> }
>
> /* convert and set */
> @@ -1926,7 +1933,7 @@
>
> /* Check for ending label on the next line */
> if (CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s,
> CG(heredoc_len))) {
> - char *end = YYCURSOR + CG(heredoc_len);
> + unsigned char *end = YYCURSOR + CG(heredoc_len);
>
> if (*end == ';') {
> end++;
>
> http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_compile.h?r1=1.316.2.8.2.12.2.30&r2=1.316.2.8.2.12.2.31&diff_format=u
> Index: ZendEngine2/zend_compile.h
> diff -u ZendEngine2/zend_compile.h:1.316.2.8.2.12.2.30
> ZendEngine2/zend_compile.h:1.316.2.8.2.12.2.31
> --- ZendEngine2/zend_compile.h:1.316.2.8.2.12.2.30 Sat Jul 26 15:30:24 2008
> +++ ZendEngine2/zend_compile.h Mon Jul 28 05:59:16 2008
> @@ -17,7 +17,7 @@
>
> +----------------------------------------------------------------------+
> */
>
> -/* $Id: zend_compile.h,v 1.316.2.8.2.12.2.30 2008/07/26 15:30:24 dmitry Exp $ */
> +/* $Id: zend_compile.h,v 1.316.2.8.2.12.2.31 2008/07/28 05:59:16 moriyoshi Exp $ */
>
> #ifndef ZEND_COMPILE_H
> #define ZEND_COMPILE_H
> @@ -357,7 +357,7 @@
> ZEND_API void zend_restore_compiled_filename(char
> *original_compiled_filename TSRMLS_DC);
> ZEND_API char *zend_get_compiled_filename(TSRMLS_D);
> ZEND_API int zend_get_compiled_lineno(TSRMLS_D);
> -ZEND_API int zend_get_scanned_file_offset(TSRMLS_D);
> +ZEND_API size_t zend_get_scanned_file_offset(TSRMLS_D);
>
> void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_name
> TSRMLS_DC);
> ZEND_API char* zend_get_compiled_variable_name(zend_op_array *op_array, zend_uint var, int*
> name_len);
>
> http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/tests/zend_multibyte-13.phpt?view=markup&rev=1.1
> Index: php-src/ext/mbstring/tests/zend_multibyte-13.phpt
> +++ php-src/ext/mbstring/tests/zend_multibyte-13.phpt
Best regards,
Marcus