Example #1
0
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;
}
Example #2
0
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;
}
Example #3
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;
}
Example #4
0
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);
}