diff --git a/Objective-Zip Tests/ObjectiveZip_Tests.m b/Objective-Zip Tests/ObjectiveZip_Tests.m index 2c77b17..8f152c9 100644 --- a/Objective-Zip Tests/ObjectiveZip_Tests.m +++ b/Objective-Zip Tests/ObjectiveZip_Tests.m @@ -10,8 +10,8 @@ #import "Objective-Zip.h" -#define HUGE_TEST_BLOCK_LENGTH (50000) -#define HUGE_TEST_NUMBER_OF_BLOCKS (100000) +#define HUGE_TEST_BLOCK_LENGTH (50000LL) +#define HUGE_TEST_NUMBER_OF_BLOCKS (100000LL) #define MAC_TEST_ZIP (@"UEsDBBQACAAIAPWF10IAAAAAAAAAAAAAAAANABAAdGVzdF9maWxlLnR4dFVYDACQCsdRjQrHUfYB9gHzT8pKTS7JLEvVjcosUPBNTFYoSS0uUUjLzEnlAgBQSwcIlXE92h4AAAAcAAAAUEsDBAoAAAAAAACG10IAAAAAAAAAAAAAAAAJABAAX19NQUNPU1gvVVgMAKAKx1GgCsdR9gH2AVBLAwQUAAgACAD1hddCAAAAAAAAAAAAAAAAGAAQAF9fTUFDT1NYLy5fdGVzdF9maWxlLnR4dFVYDACQCsdRjQrHUfYB9gFjYBVjZ2BiYPBNTFbwD1aIUIACkBgDJxAbAXElEIP4qxmIAo4hIUFQJkjHHCDmR1PCiBAXT87P1UssKMhJ1QtJrShxzUvOT8nMSwdKlpak6VpYGxqbGBmaW1qYAABQSwcIcBqNwF0AAACrAAAAUEsBAhUDFAAIAAgA9YXXQpVxPdoeAAAAHAAAAA0ADAAAAAAAAAAAQKSBAAAAAHRlc3RfZmlsZS50eHRVWAgAkArHUY0Kx1FQSwECFQMKAAAAAAAAhtdCAAAAAAAAAAAAAAAACQAMAAAAAAAAAABA/UFpAAAAX19NQUNPU1gvVVgIAKAKx1GgCsdRUEsBAhUDFAAIAAgA9YXXQnAajcBdAAAAqwAAABgADAAAAAAAAAAAQKSBoAAAAF9fTUFDT1NYLy5fdGVzdF9maWxlLnR4dFVYCACQCsdRjQrHUVBLBQYAAAAAAwADANwAAABTAQAAAAA=") #define WIN_TEST_ZIP (@"UEsDBBQAAAAAAMmF10L4VbPKIQAAACEAAAANAAAAdGVzdF9maWxlLnR4dE9iamVjdGl2ZS1aaXAgV2luZG93cyB0ZXN0IGZpbGUNClBLAQIUABQAAAAAAMmF10L4VbPKIQAAACEAAAANAAAAAAAAAAEAIAAAAAAAAAB0ZXN0X2ZpbGUudHh0UEsFBgAAAAABAAEAOwAAAEwAAAAAAA==") @@ -218,7 +218,7 @@ [stream writeData:data]; if (i % 100 == 0) - NSLog(@"Test 2: written %lu KB...", ([data length] / 1024) * (i +1)); + NSLog(@"Test 2: written %lu KB...", (unsigned long) ([data length] / 1024) * (i +1)); } NSLog(@"Test 2: closing file's stream..."); @@ -235,6 +235,18 @@ XCTAssertNotNil(unzipFile); + NSLog(@"Test 1: reading file infos..."); + + NSArray *infos= [unzipFile listFileInZipInfos]; + + XCTAssertEqual(1, infos.count); + + OZFileInZipInfo *info1= [infos objectAtIndex:0]; + + XCTAssertEqual(info1.length, HUGE_TEST_NUMBER_OF_BLOCKS * HUGE_TEST_BLOCK_LENGTH); + + NSLog(@"Test 1: - %@ %@ %lu (%d)", info1.name, info1.date, (unsigned long) info1.size, info1.level); + NSLog(@"Test 2: opening file..."); [unzipFile goToFirstFileInZip]; @@ -254,7 +266,7 @@ XCTAssertEqual(0, range.location); if (i % 100 == 0) - NSLog(@"Test 2: read %lu KB...", ([buffer length] / 1024) * (i +1)); + NSLog(@"Test 2: read %lu KB...", (unsigned long) ([buffer length] / 1024) * (i +1)); } NSLog(@"Test 2: closing file's stream..."); diff --git a/Objective-Zip/OZFileInZipInfo+Internals.h b/Objective-Zip/OZFileInZipInfo+Internals.h index 41c21a7..e91e823 100644 --- a/Objective-Zip/OZFileInZipInfo+Internals.h +++ b/Objective-Zip/OZFileInZipInfo+Internals.h @@ -40,7 +40,7 @@ #pragma mark - #pragma mark Initialization -- (instancetype) initWithName:(NSString *)name length:(NSUInteger)length level:(OZZipCompressionLevel)level crypted:(BOOL)crypted size:(NSUInteger)size date:(NSDate *)date crc32:(NSUInteger)crc32; +- (instancetype) initWithName:(NSString *)name length:(unsigned long long)length level:(OZZipCompressionLevel)level crypted:(BOOL)crypted size:(unsigned long long)size date:(NSDate *)date crc32:(NSUInteger)crc32; @end diff --git a/Objective-Zip/OZFileInZipInfo.h b/Objective-Zip/OZFileInZipInfo.h index 42149d3..d218c7b 100644 --- a/Objective-Zip/OZFileInZipInfo.h +++ b/Objective-Zip/OZFileInZipInfo.h @@ -43,10 +43,10 @@ #pragma mark Properties @property (nonatomic, readonly) NSString *name; -@property (nonatomic, readonly) NSUInteger length; +@property (nonatomic, readonly) unsigned long long length; @property (nonatomic, readonly) OZZipCompressionLevel level; @property (nonatomic, readonly) BOOL crypted; -@property (nonatomic, readonly) NSUInteger size; +@property (nonatomic, readonly) unsigned long long size; @property (nonatomic, readonly) NSDate *date; @property (nonatomic, readonly) NSUInteger crc32; diff --git a/Objective-Zip/OZFileInZipInfo.m b/Objective-Zip/OZFileInZipInfo.m index 2c3fa2f..99d1f99 100644 --- a/Objective-Zip/OZFileInZipInfo.m +++ b/Objective-Zip/OZFileInZipInfo.m @@ -40,10 +40,10 @@ @interface OZFileInZipInfo () { @private - NSUInteger _length; + unsigned long long _length; OZZipCompressionLevel _level; BOOL _crypted; - NSUInteger _size; + unsigned long long _size; NSDate *_date; NSUInteger _crc32; NSString *_name; @@ -62,7 +62,7 @@ #pragma mark - #pragma mark Initialization -- (instancetype) initWithName:(NSString *)name length:(NSUInteger)length level:(OZZipCompressionLevel)level crypted:(BOOL)crypted size:(NSUInteger)size date:(NSDate *)date crc32:(NSUInteger)crc32 { +- (instancetype) initWithName:(NSString *)name length:(unsigned long long)length level:(OZZipCompressionLevel)level crypted:(BOOL)crypted size:(unsigned long long)size date:(NSDate *)date crc32:(NSUInteger)crc32 { if (self= [super init]) { _name= name; _length= length; diff --git a/Objective-Zip/OZZipException+Internals.h b/Objective-Zip/OZZipException+Internals.h index 3cc0c4b..c9aae36 100644 --- a/Objective-Zip/OZZipException+Internals.h +++ b/Objective-Zip/OZZipException+Internals.h @@ -36,21 +36,6 @@ #define ERROR_WRAP_BEGIN \ @try { -#define ERROR_WRAP_END(err) \ - } @catch (OZZipException *ze) { \ - if (ze.error) { \ - if (err) { \ - *err= [NSError errorWithDomain:@"ObjectiveZipErrorDomain" \ - code:ze.error \ - userInfo:@{NSLocalizedDescriptionKey: ze.name, \ - NSLocalizedFailureReasonErrorKey: ze.reason}]; \ - } \ - } else \ - @throw ze; \ - } @catch (NSException *exc) { \ - @throw exc; \ - } - #define ERROR_WRAP_END_AND_RETURN(err, ret) \ } @catch (OZZipException *ze) { \ if (ze.error) { \ diff --git a/Objective-Zip/OZZipFile.h b/Objective-Zip/OZZipFile.h index 91e9f6f..06ea717 100644 --- a/Objective-Zip/OZZipFile.h +++ b/Objective-Zip/OZZipFile.h @@ -88,7 +88,7 @@ #pragma mark - #pragma mark File seeking and info (NSError variants) -- (void) goToFirstFileInZipWithError:(NSError * __autoreleasing *)error; +- (BOOL) goToFirstFileInZipWithError:(NSError * __autoreleasing *)error; - (BOOL) goToNextFileInZipWithError:(NSError * __autoreleasing *)error; - (BOOL) locateFileInZip:(NSString *)fileNameInZip error:(NSError * __autoreleasing *)error; @@ -114,13 +114,13 @@ #pragma mark - #pragma mark Closing -- (void) close; +- (BOOL) close; #pragma mark - #pragma mark Closing (NSError variants) -- (void) closeWithError:(NSError * __autoreleasing *)error; +- (BOOL) closeWithError:(NSError * __autoreleasing *)error; #pragma mark - diff --git a/Objective-Zip/OZZipFile.m b/Objective-Zip/OZZipFile.m index da387e3..1c8091c 100644 --- a/Objective-Zip/OZZipFile.m +++ b/Objective-Zip/OZZipFile.m @@ -339,7 +339,7 @@ if (err != UNZ_OK) @throw [OZZipException zipExceptionWithError:err reason:@"Error getting global info of '%@'", _fileName]; - return gi.number_entry; + return (NSUInteger) gi.number_entry; } } @@ -406,7 +406,13 @@ NSCalendar *calendar= [NSCalendar currentCalendar]; NSDate *date= [calendar dateFromComponents:components]; - OZFileInZipInfo *info= [[OZFileInZipInfo alloc] initWithName:name length:file_info.uncompressed_size level:level crypted:crypted size:file_info.compressed_size date:date crc32:file_info.crc]; + OZFileInZipInfo *info= [[OZFileInZipInfo alloc] initWithName:name + length:file_info.uncompressed_size + level:level + crypted:crypted + size:file_info.compressed_size + date:date + crc32:file_info.crc]; return info; } @@ -414,12 +420,14 @@ #pragma mark - #pragma mark File seeking and info (NSError variants) -- (void) goToFirstFileInZipWithError:(NSError * __autoreleasing *)error { +- (BOOL) goToFirstFileInZipWithError:(NSError * __autoreleasing *)error { ERROR_WRAP_BEGIN { [self goToFirstFileInZip]; - } ERROR_WRAP_END(error); + return YES; + + } ERROR_WRAP_END_AND_RETURN(error, NO); } - (BOOL) goToNextFileInZipWithError:(NSError * __autoreleasing *)error { @@ -534,7 +542,7 @@ #pragma mark - #pragma mark Closing -- (void) close { +- (BOOL) close { switch (_mode) { case OZZipFileModeUnzip: { int err= unzClose(_unzFile); @@ -560,17 +568,20 @@ default: @throw [OZZipException zipExceptionWithReason:@"Unknown mode %d", _mode]; } + + return YES; } + #pragma mark - #pragma mark Closing (NSError variants) -- (void) closeWithError:(NSError * __autoreleasing *)error { +- (BOOL) closeWithError:(NSError * __autoreleasing *)error { ERROR_WRAP_BEGIN { [self close]; - } ERROR_WRAP_END(error); + } ERROR_WRAP_END_AND_RETURN(error, NO); } diff --git a/Objective-Zip/OZZipReadStream.h b/Objective-Zip/OZZipReadStream.h index 1bdf295..0a835b6 100644 --- a/Objective-Zip/OZZipReadStream.h +++ b/Objective-Zip/OZZipReadStream.h @@ -48,7 +48,7 @@ #pragma mark Reading data (NSError variants) - (NSUInteger) readDataWithBuffer:(NSMutableData *)buffer error:(NSError * __autoreleasing *)error; -- (void) finishedReadingWithError:(NSError * __autoreleasing *)error; +- (BOOL) finishedReadingWithError:(NSError * __autoreleasing *)error; @end diff --git a/Objective-Zip/OZZipReadStream.m b/Objective-Zip/OZZipReadStream.m index 97cdd80..228cde5 100644 --- a/Objective-Zip/OZZipReadStream.m +++ b/Objective-Zip/OZZipReadStream.m @@ -99,12 +99,14 @@ } ERROR_WRAP_END_AND_RETURN(error, 0); } -- (void) finishedReadingWithError:(NSError * __autoreleasing *)error { +- (BOOL) finishedReadingWithError:(NSError * __autoreleasing *)error { ERROR_WRAP_BEGIN { [self finishedReading]; - } ERROR_WRAP_END(error); + return YES; + + } ERROR_WRAP_END_AND_RETURN(error, NO); } diff --git a/Objective-Zip/OZZipWriteStream.h b/Objective-Zip/OZZipWriteStream.h index d9dc0b8..c5f9db5 100644 --- a/Objective-Zip/OZZipWriteStream.h +++ b/Objective-Zip/OZZipWriteStream.h @@ -47,8 +47,8 @@ #pragma mark - #pragma mark Writing data (NSError variants) -- (void) writeData:(NSData *)data error:(NSError * __autoreleasing *)error; -- (void) finishedWritingWithError:(NSError * __autoreleasing *)error; +- (BOOL) writeData:(NSData *)data error:(NSError * __autoreleasing *)error; +- (BOOL) finishedWritingWithError:(NSError * __autoreleasing *)error; @end diff --git a/Objective-Zip/OZZipWriteStream.m b/Objective-Zip/OZZipWriteStream.m index 7e11098..c4f788b 100644 --- a/Objective-Zip/OZZipWriteStream.m +++ b/Objective-Zip/OZZipWriteStream.m @@ -89,20 +89,24 @@ #pragma mark - #pragma mark Writing data (NSError variants) -- (void) writeData:(NSData *)data error:(NSError * __autoreleasing *)error { +- (BOOL) writeData:(NSData *)data error:(NSError * __autoreleasing *)error { ERROR_WRAP_BEGIN { [self writeData:data]; - } ERROR_WRAP_END(error); + return YES; + + } ERROR_WRAP_END_AND_RETURN(error, NO); } -- (void) finishedWritingWithError:(NSError * __autoreleasing *)error { +- (BOOL) finishedWritingWithError:(NSError * __autoreleasing *)error { ERROR_WRAP_BEGIN { [self finishedWriting]; - } ERROR_WRAP_END(error); + return YES; + + } ERROR_WRAP_END_AND_RETURN(error, NO); }