Re: cvs: php4 /ext/pcre php_pcre.c

From: 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 EDT
Modified files:
    /php4/ext/pcre      php_pcre.c
Log: # 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


« previous php.cvs (#821) next »