--- embedaddon/php/Zend/zend_language_scanner.l 2012/05/29 12:34:36 1.1.1.2 +++ embedaddon/php/Zend/zend_language_scanner.l 2013/07/22 01:32:16 1.1.1.3 @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2012 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.l,v 1.1.1.2 2012/05/29 12:34:36 misho Exp $ */ +/* $Id: zend_language_scanner.l,v 1.1.1.3 2013/07/22 01:32:16 misho Exp $ */ #if 0 # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) @@ -33,6 +33,9 @@ #include #include "zend.h" +#ifdef PHP_WIN32 +# include +#endif #include "zend_alloc.h" #include #include "zend_compile.h" @@ -253,6 +256,7 @@ ZEND_API void zend_restore_lexical_state(zend_lex_stat CG(heredoc) = NULL; CG(heredoc_len) = 0; } + RESET_DOC_COMMENT(); } ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC) @@ -536,6 +540,7 @@ ZEND_API int open_file_for_scanning(zend_file_handle * CG(zend_lineno) = 1; } + RESET_DOC_COMMENT(); CG(increment_lineno) = 0; return SUCCESS; } @@ -575,11 +580,12 @@ ZEND_API zend_op_array *compile_file(zend_file_handle init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE TSRMLS_CC); CG(in_compilation) = 1; CG(active_op_array) = op_array; + zend_stack_push(&CG(context_stack), (void *) &CG(context), sizeof(CG(context))); zend_init_compiler_context(TSRMLS_C); compiler_result = zendparse(TSRMLS_C); zend_do_return(&retval_znode, 0 TSRMLS_CC); CG(in_compilation) = original_in_compilation; - if (compiler_result==1) { /* parser error */ + if (compiler_result != 0) { /* parser error */ zend_bailout(); } compilation_successful=1; @@ -589,7 +595,7 @@ ZEND_API zend_op_array *compile_file(zend_file_handle CG(active_op_array) = original_active_op_array; if (compilation_successful) { pass_two(op_array TSRMLS_CC); - zend_release_labels(TSRMLS_C); + zend_release_labels(0 TSRMLS_CC); } else { efree(op_array); retval = NULL; @@ -685,6 +691,7 @@ ZEND_API int zend_prepare_string_for_scanning(zval *st zend_set_compiled_filename(filename TSRMLS_CC); CG(zend_lineno) = 1; CG(increment_lineno) = 0; + RESET_DOC_COMMENT(); return SUCCESS; } @@ -744,6 +751,7 @@ zend_op_array *compile_string(zval *source_string, cha init_op_array(op_array, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE TSRMLS_CC); CG(interactive) = orig_interactive; CG(active_op_array) = op_array; + zend_stack_push(&CG(context_stack), (void *) &CG(context), sizeof(CG(context))); zend_init_compiler_context(TSRMLS_C); BEGIN(ST_IN_SCRIPTING); compiler_result = zendparse(TSRMLS_C); @@ -753,7 +761,7 @@ zend_op_array *compile_string(zval *source_string, cha SCNG(script_filtered) = NULL; } - if (compiler_result==1) { + if (compiler_result != 0) { CG(active_op_array) = original_active_op_array; CG(unclean_shutdown)=1; destroy_op_array(op_array TSRMLS_CC); @@ -763,7 +771,7 @@ zend_op_array *compile_string(zval *source_string, cha zend_do_return(NULL, 0 TSRMLS_CC); CG(active_op_array) = original_active_op_array; pass_two(op_array TSRMLS_CC); - zend_release_labels(TSRMLS_C); + zend_release_labels(0 TSRMLS_CC); retval = op_array; } } @@ -905,7 +913,11 @@ static void zend_scan_escape_string(zval *zendlval, ch zendlval->value.str.len--; break; case 'e': +#ifdef PHP_WIN32 + *t++ = VK_ESCAPE; +#else *t++ = '\e'; +#endif zendlval->value.str.len--; break; case '"':