Re: cvs: php4 /ext/pcre php_pcre.c
| From: | Wico de Leeuw | Date: | Thu, 20 Jul 2000 15:44:36 +0000 |
| Subject: | Re: cvs: php4 /ext/pcre php_pcre.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-821@lists.php.net to get a copy of this message | ||
Thank you so much :)
If you where a woman i had come to you to kiss you :)
(glad you aren't :)
Greetz,
Wico
At 15:27 20-7-00 +0000, Andrei Zmievski wrote:
andrei Thu Jul 20 08:27:16 2000 EDTModified files:/php4/ext/pcre php_pcre.cLog: # There you go, Wico. Fix bug $5676. @- Fixed preg_replace() to automatically escape quotes in matched @ strings when using /e modifier. (Andrei) Index: php4/ext/pcre/php_pcre.c diff -u php4/ext/pcre/php_pcre.c:1.62 php4/ext/pcre/php_pcre.c:1.63--- php4/ext/pcre/php_pcre.c:1.62 Fri Jun 30 12:40:42 2000 +++ php4/ext/pcre/php_pcre.c Thu Jul 20 08:27:16 2000@@ -16,7 +16,7 @@+----------------------------------------------------------------------+*/ -/* $Id: php_pcre.c,v 1.62 2000/06/30 19:40:42 andrei Exp $ */ +/* $Id: php_pcre.c,v 1.63 2000/07/20 15:27:16 andrei Exp $ */ /*TODO:@@ -536,10 +536,12 @@*code, /* PHP code string */ *new_code, /* Code as result of substitution */ *match, /* Current match for a backref */ + *esc_match, /* Quote-escaped match */ *walk; /* Used to walk the code string */ int code_len; /* Length of the code string */ int new_code_len; /* Length of the substituted code string */ int match_len; /* Length of the match */ + int esc_match_len; /* Length of the quote-escaped match */ int result_len; /* Length of the result of the evaluation */ int backref; /* Current backref */ CLS_FETCH();@@ -557,15 +559,17 @@in instead of the backref */ match = subject + offsets[backref<<1]; match_len = offsets[(backref<<1)+1] - offsets[backref<<1]; + esc_match = php_addslashes(match, match_len, &esc_match_len, 0); sprintf(backref_buf, "\\%d", backref); new_code = php_str_to_str(code, code_len,backref_buf, (backref > 9) ? 3 : 2, - match, match_len, &new_code_len); + esc_match, esc_match_len, &new_code_len);/* Adjust the walk pointer */ walk = new_code + (walk - code) + match_len;/* Clean up and reassign */ + efree(esc_match); efree(code); code = new_code; code_len = new_code_len;-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-cvs-unsubscribe@lists.php.net For additional commands, e-mail: php-cvs-help@lists.php.net To contact the list administrators, e-mail: php-list-admin@lists.php.net