]> granicus.if.org Git - php/commitdiff
- MFB: restore overwrite feature (regression introduced in 5.2.8)
authorPierre Joye <pajoye@php.net>
Fri, 2 Jan 2009 00:07:57 +0000 (00:07 +0000)
committerPierre Joye <pajoye@php.net>
Fri, 2 Jan 2009 00:07:57 +0000 (00:07 +0000)
ext/zip/lib/zip_open.c

index 10c5e1e6d819c0e007de1121e897de737ab74ac2..cd782817901cd3b3d2953544a9d4721cccc5028b 100644 (file)
@@ -65,10 +65,14 @@ zip_open(const char *fn, int flags, int *zep)
     struct zip_cdir *cdir;
     int i;
     off_t len;
-    
+
+
     switch (_zip_file_exists(fn, flags, zep)) {
     case -1:
-       return NULL;
+                       if (!(flags & ZIP_OVERWRITE)) {
+                               return NULL;
+                       }
+                       
     case 0:
        return _zip_allocate_new(fn, zep);
     default:
@@ -440,7 +444,7 @@ _zip_file_exists(const char *fn, int flags, int *zep)
     }
     
     if (stat(fn, &st) != 0) {
-       if (flags & ZIP_CREATE)
+       if (flags & ZIP_CREATE || flags & ZIP_OVERWRITE)
            return 0;
        else {
            set_error(zep, NULL, ZIP_ER_OPEN);