@@ -59,59 +59,53 @@ @end @implementation OFTarArchive: OFObject @synthesize encoding = _encoding; -+ (instancetype)archiveWithStream: (OFStream *)stream - mode: (OFString *)mode ++ (instancetype)archiveWithStream: (OFStream *)stream mode: (OFString *)mode { - return [[[self alloc] initWithStream: stream - mode: mode] autorelease]; + return [[[self alloc] initWithStream: stream mode: mode] autorelease]; } #ifdef OF_HAVE_FILES -+ (instancetype)archiveWithPath: (OFString *)path - mode: (OFString *)mode ++ (instancetype)archiveWithPath: (OFString *)path mode: (OFString *)mode { - return [[[self alloc] initWithPath: path - mode: mode] autorelease]; + return [[[self alloc] initWithPath: path mode: mode] autorelease]; } #endif - (instancetype)init { OF_INVALID_INIT_METHOD } -- (instancetype)initWithStream: (OFStream *)stream - mode: (OFString *)mode +- (instancetype)initWithStream: (OFStream *)stream mode: (OFString *)mode { self = [super init]; @try { _stream = [stream retain]; if ([mode isEqual: @"r"]) - _mode = OF_TAR_ARCHIVE_MODE_READ; + _mode = OFTarArchiveModeRead; else if ([mode isEqual: @"w"]) - _mode = OF_TAR_ARCHIVE_MODE_WRITE; + _mode = OFTarArchiveModeWrite; else if ([mode isEqual: @"a"]) - _mode = OF_TAR_ARCHIVE_MODE_APPEND; + _mode = OFTarArchiveModeAppend; else @throw [OFInvalidArgumentException exception]; - if (_mode == OF_TAR_ARCHIVE_MODE_APPEND) { + if (_mode == OFTarArchiveModeAppend) { uint32_t buffer[1024 / sizeof(uint32_t)]; bool empty = true; if (![_stream isKindOfClass: [OFSeekableStream class]]) @throw [OFInvalidArgumentException exception]; [(OFSeekableStream *)_stream seekToOffset: -1024 whence: SEEK_END]; - [_stream readIntoBuffer: buffer - exactLength: 1024]; + [_stream readIntoBuffer: buffer exactLength: 1024]; for (size_t i = 0; i < 1024 / sizeof(uint32_t); i++) if (buffer[i] != 0) empty = false; @@ -120,35 +114,31 @@ [(OFSeekableStream *)stream seekToOffset: -1024 whence: SEEK_END]; } - _encoding = OF_STRING_ENCODING_UTF_8; + _encoding = OFStringEncodingUTF8; } @catch (id e) { [self release]; @throw e; } return self; } #ifdef OF_HAVE_FILES -- (instancetype)initWithPath: (OFString *)path - mode: (OFString *)mode +- (instancetype)initWithPath: (OFString *)path mode: (OFString *)mode { OFFile *file; if ([mode isEqual: @"a"]) - file = [[OFFile alloc] initWithPath: path - mode: @"r+"]; + file = [[OFFile alloc] initWithPath: path mode: @"r+"]; else - file = [[OFFile alloc] initWithPath: path - mode: mode]; + file = [[OFFile alloc] initWithPath: path mode: mode]; @try { - self = [self initWithStream: file - mode: mode]; + self = [self initWithStream: file mode: mode]; } @finally { [file release]; } return self; @@ -166,11 +156,11 @@ { OFTarArchiveEntry *entry; uint32_t buffer[512 / sizeof(uint32_t)]; bool empty = true; - if (_mode != OF_TAR_ARCHIVE_MODE_READ) + if (_mode != OFTarArchiveModeRead) @throw [OFInvalidArgumentException exception]; [(OFTarArchiveFileReadStream *)_lastReturnedStream of_skip]; @try { [_lastReturnedStream close]; @@ -181,20 +171,18 @@ _lastReturnedStream = nil; if (_stream.atEndOfStream) return nil; - [_stream readIntoBuffer: buffer - exactLength: 512]; + [_stream readIntoBuffer: buffer exactLength: 512]; for (size_t i = 0; i < 512 / sizeof(uint32_t); i++) if (buffer[i] != 0) empty = false; if (empty) { - [_stream readIntoBuffer: buffer - exactLength: 512]; + [_stream readIntoBuffer: buffer exactLength: 512]; for (size_t i = 0; i < 512 / sizeof(uint32_t); i++) if (buffer[i] != 0) @throw [OFInvalidFormatException exception]; @@ -212,11 +200,11 @@ return entry; } - (OFStream *)streamForReadingCurrentEntry { - if (_mode != OF_TAR_ARCHIVE_MODE_READ) + if (_mode != OFTarArchiveModeRead) @throw [OFInvalidArgumentException exception]; if (_lastReturnedStream == nil) @throw [OFInvalidArgumentException exception]; @@ -226,12 +214,11 @@ - (OFStream *)streamForWritingEntry: (OFTarArchiveEntry *)entry { void *pool; - if (_mode != OF_TAR_ARCHIVE_MODE_WRITE && - _mode != OF_TAR_ARCHIVE_MODE_APPEND) + if (_mode != OFTarArchiveModeWrite && _mode != OFTarArchiveModeAppend) @throw [OFInvalidArgumentException exception]; pool = objc_autoreleasePoolPush(); @try { @@ -240,12 +227,11 @@ /* Might have already been closed by the user - that's fine. */ } [_lastReturnedStream release]; _lastReturnedStream = nil; - [entry of_writeToStream: _stream - encoding: _encoding]; + [entry of_writeToStream: _stream encoding: _encoding]; _lastReturnedStream = [[OFTarArchiveFileWriteStream alloc] of_initWithStream: _stream entry: entry]; @@ -266,16 +252,14 @@ /* Might have already been closed by the user - that's fine. */ } [_lastReturnedStream release]; _lastReturnedStream = nil; - if (_mode == OF_TAR_ARCHIVE_MODE_WRITE || - _mode == OF_TAR_ARCHIVE_MODE_APPEND) { + if (_mode == OFTarArchiveModeWrite || _mode == OFTarArchiveModeAppend) { char buffer[1024]; memset(buffer, '\0', 1024); - [_stream writeBuffer: buffer - length: 1024]; + [_stream writeBuffer: buffer length: 1024]; } [_stream release]; _stream = nil; } @@ -326,13 +310,11 @@ #endif if ((uint64_t)length > _toRead) length = (size_t)_toRead; - ret = [_stream readIntoBuffer: buffer - length: length]; - + ret = [_stream readIntoBuffer: buffer length: length]; if (ret == 0) _atEndOfStream = true; _toRead -= ret; @@ -375,14 +357,14 @@ { if (_stream == nil || _skipped) return; if ([_stream isKindOfClass: [OFSeekableStream class]] && - _toRead <= INT64_MAX && (of_offset_t)_toRead == (int64_t)_toRead) { + _toRead <= INT64_MAX && (OFFileOffset)_toRead == (int64_t)_toRead) { uint64_t size; - [(OFSeekableStream *)_stream seekToOffset: (of_offset_t)_toRead + [(OFSeekableStream *)_stream seekToOffset: (OFFileOffset)_toRead whence: SEEK_CUR]; _toRead = 0; size = _entry.size; @@ -394,12 +376,11 @@ } else { char buffer[512]; uint64_t size; while (_toRead >= 512) { - [_stream readIntoBuffer: buffer - exactLength: 512]; + [_stream readIntoBuffer: buffer exactLength: 512]; _toRead -= 512; } if (_toRead > 0) { [_stream readIntoBuffer: buffer @@ -444,12 +425,11 @@ [_entry release]; [super dealloc]; } -- (size_t)lowlevelWriteBuffer: (const void *)buffer - length: (size_t)length +- (size_t)lowlevelWriteBuffer: (const void *)buffer length: (size_t)length { size_t bytesWritten; if (_stream == nil) @throw [OFNotOpenException exceptionWithObject: self];