32
32
#include "ext/standard/info.h"
33
33
#include "php_mbregex.h"
34
34
#include "mbstring.h"
35
-
35
+
36
36
#include "php_onig_compat.h" /* must come prior to the oniguruma header */
37
37
#include <oniguruma.h>
38
38
#undef UChar
@@ -55,7 +55,7 @@ struct _zend_mb_regex_globals {
55
55
#define MBREX (g ) (MBSTRG(mb_regex_globals)->g)
56
56
57
57
/* {{{ static void php_mb_regex_free_cache() */
58
- static void php_mb_regex_free_cache (php_mb_regex_t * * pre )
58
+ static void php_mb_regex_free_cache (php_mb_regex_t * * pre )
59
59
{
60
60
onig_free (* pre );
61
61
}
@@ -78,7 +78,7 @@ static int _php_mb_regex_globals_ctor(zend_mb_regex_globals *pglobals TSRMLS_DC)
78
78
/* }}} */
79
79
80
80
/* {{{ _php_mb_regex_globals_dtor */
81
- static void _php_mb_regex_globals_dtor (zend_mb_regex_globals * pglobals TSRMLS_DC )
81
+ static void _php_mb_regex_globals_dtor (zend_mb_regex_globals * pglobals TSRMLS_DC )
82
82
{
83
83
zend_hash_destroy (& pglobals -> ht_rc );
84
84
}
@@ -466,7 +466,7 @@ static php_mb_regex_t *php_mbregex_compile_pattern(const char *pattern, int patl
466
466
retval = * rc ;
467
467
}
468
468
out :
469
- return retval ;
469
+ return retval ;
470
470
}
471
471
/* }}} */
472
472
@@ -483,15 +483,15 @@ static size_t _php_mb_regex_get_option_string(char *str, size_t len, OnigOptionT
483
483
-- len_left ;
484
484
* (p ++ ) = 'i' ;
485
485
}
486
- ++ len_req ;
486
+ ++ len_req ;
487
487
}
488
488
489
489
if ((option & ONIG_OPTION_EXTEND ) != 0 ) {
490
490
if (len_left > 0 ) {
491
491
-- len_left ;
492
492
* (p ++ ) = 'x' ;
493
493
}
494
- ++ len_req ;
494
+ ++ len_req ;
495
495
}
496
496
497
497
if ((option & (ONIG_OPTION_MULTILINE | ONIG_OPTION_SINGLELINE )) ==
@@ -500,37 +500,37 @@ static size_t _php_mb_regex_get_option_string(char *str, size_t len, OnigOptionT
500
500
-- len_left ;
501
501
* (p ++ ) = 'p' ;
502
502
}
503
- ++ len_req ;
503
+ ++ len_req ;
504
504
} else {
505
505
if ((option & ONIG_OPTION_MULTILINE ) != 0 ) {
506
506
if (len_left > 0 ) {
507
507
-- len_left ;
508
508
* (p ++ ) = 'm' ;
509
509
}
510
- ++ len_req ;
510
+ ++ len_req ;
511
511
}
512
512
513
513
if ((option & ONIG_OPTION_SINGLELINE ) != 0 ) {
514
514
if (len_left > 0 ) {
515
515
-- len_left ;
516
516
* (p ++ ) = 's' ;
517
517
}
518
- ++ len_req ;
518
+ ++ len_req ;
519
519
}
520
- }
520
+ }
521
521
if ((option & ONIG_OPTION_FIND_LONGEST ) != 0 ) {
522
522
if (len_left > 0 ) {
523
523
-- len_left ;
524
524
* (p ++ ) = 'l' ;
525
525
}
526
- ++ len_req ;
526
+ ++ len_req ;
527
527
}
528
528
if ((option & ONIG_OPTION_FIND_NOT_EMPTY ) != 0 ) {
529
529
if (len_left > 0 ) {
530
530
-- len_left ;
531
531
* (p ++ ) = 'n' ;
532
532
}
533
- ++ len_req ;
533
+ ++ len_req ;
534
534
}
535
535
536
536
c = 0 ;
@@ -566,7 +566,7 @@ static size_t _php_mb_regex_get_option_string(char *str, size_t len, OnigOptionT
566
566
-- len_left ;
567
567
* (p ++ ) = '\0' ;
568
568
}
569
- ++ len_req ;
569
+ ++ len_req ;
570
570
if (len < len_req ) {
571
571
return len_req ;
572
572
}
@@ -577,11 +577,11 @@ static size_t _php_mb_regex_get_option_string(char *str, size_t len, OnigOptionT
577
577
578
578
/* {{{ _php_mb_regex_init_options */
579
579
static void
580
- _php_mb_regex_init_options (const char * parg , int narg , OnigOptionType * option , OnigSyntaxType * * syntax , int * eval )
580
+ _php_mb_regex_init_options (const char * parg , int narg , OnigOptionType * option , OnigSyntaxType * * syntax , int * eval )
581
581
{
582
582
int n ;
583
583
char c ;
584
- int optm = 0 ;
584
+ int optm = 0 ;
585
585
586
586
* syntax = ONIG_SYNTAX_RUBY ;
587
587
@@ -636,13 +636,13 @@ _php_mb_regex_init_options(const char *parg, int narg, OnigOptionType *option, O
636
636
* syntax = ONIG_SYNTAX_POSIX_EXTENDED ;
637
637
break ;
638
638
case 'e' :
639
- if (eval != NULL ) * eval = 1 ;
639
+ if (eval != NULL ) * eval = 1 ;
640
640
break ;
641
641
default :
642
642
break ;
643
643
}
644
644
}
645
- if (option != NULL ) * option |=optm ;
645
+ if (option != NULL ) * option |=optm ;
646
646
}
647
647
}
648
648
/* }}} */
@@ -860,11 +860,11 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
860
860
} else {
861
861
/* FIXME: this code is not multibyte aware! */
862
862
convert_to_long_ex (arg_pattern_zval );
863
- pat_buf [0 ] = (char )Z_LVAL_PP (arg_pattern_zval );
863
+ pat_buf [0 ] = (char )Z_LVAL_PP (arg_pattern_zval );
864
864
pat_buf [1 ] = '\0' ;
865
865
866
866
arg_pattern = pat_buf ;
867
- arg_pattern_len = 1 ;
867
+ arg_pattern_len = 1 ;
868
868
}
869
869
/* create regex pattern buffer */
870
870
re = php_mbregex_compile_pattern (arg_pattern , arg_pattern_len , options , MBREX (current_mbctype ), syntax TSRMLS_CC );
@@ -934,7 +934,7 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
934
934
}
935
935
}
936
936
}
937
-
937
+
938
938
if (eval ) {
939
939
zval v ;
940
940
/* null terminate buffer */
@@ -953,32 +953,31 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
953
953
eval_buf .len = 0 ;
954
954
zval_dtor (& v );
955
955
} else if (is_callable ) {
956
- zval * retval_ptr ;
956
+ zval * retval_ptr = NULL ;
957
957
zval * * args [1 ];
958
958
zval * subpats ;
959
959
int i ;
960
-
960
+
961
961
MAKE_STD_ZVAL (subpats );
962
962
array_init (subpats );
963
-
963
+
964
964
for (i = 0 ; i < regs -> num_regs ; i ++ ) {
965
965
add_next_index_stringl (subpats , string + regs -> beg [i ], regs -> end [i ] - regs -> beg [i ], 1 );
966
- }
967
-
966
+ }
967
+
968
968
args [0 ] = & subpats ;
969
969
/* null terminate buffer */
970
970
smart_str_0 (& eval_buf );
971
-
971
+
972
972
arg_replace_fci .param_count = 1 ;
973
973
arg_replace_fci .params = args ;
974
974
arg_replace_fci .retval_ptr_ptr = & retval_ptr ;
975
- if (zend_call_function (& arg_replace_fci , & arg_replace_fci_cache TSRMLS_CC ) == SUCCESS && arg_replace_fci .retval_ptr_ptr ) {
975
+ if (zend_call_function (& arg_replace_fci , & arg_replace_fci_cache TSRMLS_CC ) == SUCCESS && arg_replace_fci .retval_ptr_ptr && retval_ptr ) {
976
976
convert_to_string_ex (& retval_ptr );
977
977
smart_str_appendl (& out_buf , Z_STRVAL_P (retval_ptr ), Z_STRLEN_P (retval_ptr ));
978
978
eval_buf .len = 0 ;
979
979
zval_ptr_dtor (& retval_ptr );
980
980
} else {
981
- efree (description );
982
981
if (!EG (exception )) {
983
982
php_error_docref (NULL TSRMLS_CC , E_WARNING , "Unable to call custom replacement function" );
984
983
}
@@ -991,7 +990,7 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
991
990
pos = (OnigUChar * )string + n ;
992
991
} else {
993
992
if (pos < string_lim ) {
994
- smart_str_appendl (& out_buf , pos , 1 );
993
+ smart_str_appendl (& out_buf , pos , 1 );
995
994
}
996
995
pos ++ ;
997
996
}
@@ -1013,7 +1012,7 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
1013
1012
smart_str_free (& eval_buf );
1014
1013
1015
1014
if (err <= -2 ) {
1016
- smart_str_free (& out_buf );
1015
+ smart_str_free (& out_buf );
1017
1016
RETVAL_FALSE ;
1018
1017
} else {
1019
1018
smart_str_appendc (& out_buf , '\0' );
@@ -1063,7 +1062,7 @@ PHP_FUNCTION(mb_split)
1063
1062
1064
1063
if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "ss|l" , & arg_pattern , & arg_pattern_len , & string , & string_len , & count ) == FAILURE ) {
1065
1064
RETURN_FALSE ;
1066
- }
1065
+ }
1067
1066
1068
1067
if (count > 0 ) {
1069
1068
count -- ;
@@ -1317,7 +1316,7 @@ PHP_FUNCTION(mb_ereg_search_init)
1317
1316
if (zend_parse_parameters (argc TSRMLS_CC , "z|ss" , & arg_str , & arg_pattern , & arg_pattern_len , & arg_options , & arg_options_len ) == FAILURE ) {
1318
1317
return ;
1319
1318
}
1320
-
1319
+
1321
1320
if (argc > 1 && arg_pattern_len == 0 ) {
1322
1321
php_error_docref (NULL TSRMLS_CC , E_WARNING , "Empty pattern ");
1323
1322
RETURN_FALSE ;
@@ -1416,7 +1415,7 @@ PHP_FUNCTION(mb_ereg_search_setpos)
1416
1415
/* }}} */
1417
1416
1418
1417
/* {{{ php_mb_regex_set_options */
1419
- static void _php_mb_regex_set_options (OnigOptionType options , OnigSyntaxType * syntax , OnigOptionType * prev_options , OnigSyntaxType * * prev_syntax TSRMLS_DC )
1418
+ static void _php_mb_regex_set_options (OnigOptionType options , OnigSyntaxType * syntax , OnigOptionType * prev_options , OnigSyntaxType * * prev_syntax TSRMLS_DC )
1420
1419
{
1421
1420
if (prev_options != NULL ) {
1422
1421
* prev_options = MBREX (regex_default_options );
0 commit comments