cellog          Tue May 20 04:09:41 2008 UTC

  Modified files:              
    /php-src/ext/phar   phar_object.c 
  Log:
  MFB relax rename requirements
  
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar_object.c?r1=1.274&r2=1.275&diff_format=u
Index: php-src/ext/phar/phar_object.c
diff -u php-src/ext/phar/phar_object.c:1.274 
php-src/ext/phar/phar_object.c:1.275
--- php-src/ext/phar/phar_object.c:1.274        Mon May 19 19:05:41 2008
+++ php-src/ext/phar/phar_object.c      Tue May 20 04:09:41 2008
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: phar_object.c,v 1.274 2008/05/19 19:05:41 sfox Exp $ */
+/* $Id: phar_object.c,v 1.275 2008/05/20 04:09:41 cellog Exp $ */
 
 #include "phar_internal.h"
 #include "func_interceptors.h"
@@ -1844,6 +1844,7 @@
        char *error;
        const char *pcr_error;
        int ext_len = ext ? strlen(ext) : 0;
+       phar_archive_data **pphar;
 
        if (!ext) {
                if (phar->is_zip) {
@@ -1914,12 +1915,18 @@
        efree(basepath);
        efree(newname);
 
-       if (zend_hash_exists(&(PHAR_GLOBALS->phar_fname_map), newpath, 
phar->fname_len)) {
+       if (SUCCESS == zend_hash_exists(&(PHAR_GLOBALS->phar_fname_map), 
newpath, phar->fname_len, (void **) &pphar)) {
+               if (*pphar == phar) {
+                       if (!zend_hash_num_elements(&phar->manifest)) {
+                               goto its_ok;
+                       }
+               }
                efree(oldpath);
                zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 
TSRMLS_CC, "Unable to add newly converted phar \"%s\" to the list of phars, a 
phar with that name already exists", phar->fname);
                return NULL;
        }
 
+its_ok:
        if (!phar->is_data) {
                if (SUCCESS != phar_detect_phar_fname_ext(newpath, 
phar->fname_len, (const char **) &(phar->ext), &(phar->ext_len), 1, 1, 1 
TSRMLS_CC)) {
                        efree(oldpath);



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

Reply via email to