Overview
Comment: | OFZIP: Preserve mode when extracting .gz files |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
f984c522b1f60390e9cc43ae6fb5ad84 |
User & Date: | js on 2016-04-24 14:36:23 |
Other Links: | manifest | tags |
Context
2016-04-24
| ||
15:31 | Move of_tlskey_{new,free} to API-specific files check-in: 4b31620e27 user: js tags: trunk | |
14:36 | OFZIP: Preserve mode when extracting .gz files check-in: f984c522b1 user: js tags: trunk | |
14:28 | OFFileManager: Documentation improvements check-in: a0ffd80bef user: js tags: trunk | |
Changes
Modified utils/ofzip/GZIPArchive.m from [2572905d24] to [7bb45e0fc2].
︙ | ︙ | |||
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #include "config.h" #import "OFApplication.h" #import "OFStdIOStream.h" #import "GZIPArchive.h" #import "OFZIP.h" static OFZIP *app; @implementation GZIPArchive + (void)initialize { if (self == [GZIPArchive class]) app = [[OFApplication sharedApplication] delegate]; } | > > > > > > > > > > > > > > | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #include "config.h" #import "OFApplication.h" #import "OFFileManager.h" #import "OFStdIOStream.h" #import "GZIPArchive.h" #import "OFZIP.h" static OFZIP *app; static void setPermissions(OFString *destination, OFString *source) { #ifdef OF_HAVE_CHMOD OFFileManager *fileManager = [OFFileManager defaultManager]; mode_t mode; mode = [fileManager permissionsOfItemAtPath: source]; [fileManager changePermissionsOfItemAtPath: destination permissions: mode]; #endif } @implementation GZIPArchive + (void)initialize { if (self == [GZIPArchive class]) app = [[OFApplication sharedApplication] delegate]; } |
︙ | ︙ | |||
83 84 85 86 87 88 89 | if (![app shouldExtractFile: fileName outFileName: fileName]) return; output = [OFFile fileWithPath: fileName mode: @"wb"]; | | | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | if (![app shouldExtractFile: fileName outFileName: fileName]) return; output = [OFFile fileWithPath: fileName mode: @"wb"]; setPermissions(fileName, app->_archivePath); while (![_stream isAtEndOfStream]) { ssize_t length = [app copyBlockFromStream: _stream toStream: output fileName: fileName]; if (length < 0) { |
︙ | ︙ |