Re: [PHP-CVS] cvs: php-src(PHP_5_3) /ext/mbstring/tests zend_multibyte-13.phpt ZendEngine2 zend_compile.h zend_language_scanner.l

2008-07-28 Thread Marcus Boerger
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:  
 /ZendEngine2zend_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.25r2=1.131.2.11.2.13.2.26diff_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.25Sat 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.30r2=1.316.2.8.2.12.2.31diff_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 

Re: [PHP-CVS] cvs: php-src(PHP_5_3) /ext/mbstring/tests zend_multibyte-13.phpt ZendEngine2 zend_compile.h zend_language_scanner.l

2008-07-28 Thread Moriyoshi Koizumi

I thought these were fixed in the subsequent commit. Weren't they?

Moriyoshi

Marcus Boerger wrote:


/* 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 {


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-CVS] cvs: php-src(PHP_5_3) /ext/mbstring/tests zend_multibyte-13.phpt ZendEngine2 zend_compile.h zend_language_scanner.l

2008-07-28 Thread Marcus Boerger
Hello Moriyoshi,

  sorry for the confusion. They were. Only for some reason I got those
  mails too late.

marcus

Tuesday, July 29, 2008, 1:14:31 AM, you wrote:

 I thought these were fixed in the subsequent commit. Weren't they?

 Moriyoshi

 Marcus Boerger wrote:

 /* 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 {




Best regards,
 Marcus


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php