summaryrefslogtreecommitdiff
path: root/ext/zip/lib/zip_replace.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/zip/lib/zip_replace.c')
-rw-r--r--ext/zip/lib/zip_replace.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/zip/lib/zip_replace.c b/ext/zip/lib/zip_replace.c
index 011bbc2af0..ae78e62b80 100644
--- a/ext/zip/lib/zip_replace.c
+++ b/ext/zip/lib/zip_replace.c
@@ -66,11 +66,14 @@ _zip_replace(struct zip *za, int idx, const char *name,
return -1;
idx = za->nentry - 1;
}
-
+
+
_zip_unchange_data(za->entry+idx);
if (name && _zip_set_name(za, idx, name) != 0)
return -1;
+
+
za->entry[idx].state = ((za->cdir == NULL || idx >= za->cdir->nentry)
? ZIP_ST_ADDED : ZIP_ST_REPLACED);
za->entry[idx].source = source;