fix(core): second pass at libzip compat
This commit is contained in:
parent
3c4b1af3ba
commit
67f5e5e490
|
@ -56,10 +56,14 @@
|
||||||
int errorp;
|
int errorp;
|
||||||
self->z = zip_open([file cString], ZIP_CREATE | ZIP_EXCL, &errorp);
|
self->z = zip_open([file cString], ZIP_CREATE | ZIP_EXCL, &errorp);
|
||||||
if (self->z == NULL) {
|
if (self->z == NULL) {
|
||||||
|
#ifdef LIBZIP_VERSION
|
||||||
zip_error_t ziperror;
|
zip_error_t ziperror;
|
||||||
zip_error_init_with_code(&ziperror, errorp);
|
zip_error_init_with_code(&ziperror, errorp);
|
||||||
NSLog(@"Failed to open zip output file %@: %@", file,
|
NSLog(@"Failed to open zip output file %@: %@", file,
|
||||||
[NSString stringWithCString: zip_error_strerror(&ziperror)]);
|
[NSString stringWithCString: zip_error_strerror(&ziperror)]);
|
||||||
|
#else
|
||||||
|
NSLog(@"Failed to open zip output file %@: %@", file, zip_strerror(self->z));
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
ret = self;
|
ret = self;
|
||||||
}
|
}
|
||||||
|
@ -76,16 +80,23 @@
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
zip_source_t *source = zip_source_buffer(self->z, [data bytes], [data length], 0);
|
struct zip_source *source = zip_source_buffer(self->z, [data bytes], [data length], 0);
|
||||||
if (source == NULL) {
|
if (source == NULL) {
|
||||||
NSLog(@"Failed to create zip source from buffer: %@", [NSString stringWithCString: zip_strerror(self->z)]);
|
NSLog(@"Failed to create zip source from buffer: %@", [NSString stringWithCString: zip_strerror(self->z)]);
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ZIP_FL_ENC_UTF_8
|
||||||
if (zip_file_add(self->z, [filename UTF8String], source, ZIP_FL_ENC_UTF_8) < 0) {
|
if (zip_file_add(self->z, [filename UTF8String], source, ZIP_FL_ENC_UTF_8) < 0) {
|
||||||
NSLog(@"Failed to add file %@: %@", filename, [NSString stringWithCString: zip_strerror(self->z)]);
|
NSLog(@"Failed to add file %@: %@", filename, [NSString stringWithCString: zip_strerror(self->z)]);
|
||||||
zip_source_free(source);
|
zip_source_free(source);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
if (zip_add(self->z, [filename UTF8String], source) < 0) {
|
||||||
|
NSLog(@"Failed to add file %@: %@", filename, [NSString stringWithCString: zip_strerror(self->z)]);
|
||||||
|
zip_source_free(source);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue