PHPZIPAPI int zip_unchange_all(struct zip *za) { int ret, i; ret = 0; for (i=0; i<za->nentry; i++) ret |= _zip_unchange(za, i, 1); ret |= zip_unchange_archive(za); return ret; }
ZIP_EXTERN int zip_delete(struct zip *za, int idx) { if (idx < 0 || idx >= za->nentry) { _zip_error_set(&za->error, ZIP_ER_INVAL, 0); return -1; } /* allow duplicate file names, because the file will * be removed directly afterwards */ if (_zip_unchange(za, idx, 1) != 0) return -1; za->entry[idx].state = ZIP_ST_DELETED; return 0; }
ZIP_EXTERN int zip_unchange_all(zip_t *za) { int ret; zip_uint64_t i; if (!_zip_hash_revert(za->names, &za->error)) { return -1; } ret = 0; for (i = 0; i < za->nentry; i++) ret |= _zip_unchange(za, i, 1); ret |= zip_unchange_archive(za); return ret; }
ZIP_EXTERN int zip_delete(struct zip *za, zip_uint64_t idx) { if (idx >= za->nentry) { _zip_error_set(&za->error, ZIP_ER_INVAL, 0); return -1; } if (ZIP_IS_RDONLY(za)) { _zip_error_set(&za->error, ZIP_ER_RDONLY, 0); return -1; } /* allow duplicate file names, because the file will * be removed directly afterwards */ if (_zip_unchange(za, idx, 1) != 0) return -1; za->entry[idx].deleted = 1; return 0; }
ZIP_EXTERN int zip_unchange(struct zip *za, zip_uint64_t idx) { return _zip_unchange(za, idx, 0); }