37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
static OFArc *app;
static void
setPermissions(OFString *path, OFZIPArchiveEntry *entry)
{
#ifdef OF_FILE_MANAGER_SUPPORTS_PERMISSIONS
if ((entry.versionMadeBy >> 8) ==
OF_ZIP_ARCHIVE_ENTRY_ATTR_COMPAT_UNIX) {
OFNumber *mode = [OFNumber numberWithUnsignedShort:
(entry.versionSpecificAttributes >> 16) & 0777];
OFFileAttributes attributes = [OFDictionary
dictionaryWithObject: mode
forKey: OFFilePOSIXPermissions];
[[OFFileManager defaultManager] setAttributes: attributes
|
|
|
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
static OFArc *app;
static void
setPermissions(OFString *path, OFZIPArchiveEntry *entry)
{
#ifdef OF_FILE_MANAGER_SUPPORTS_PERMISSIONS
if ((entry.versionMadeBy >> 8) ==
OFZIPArchiveEntryAttributeCompatibilityUNIX) {
OFNumber *mode = [OFNumber numberWithUnsignedShort:
(entry.versionSpecificAttributes >> 16) & 0777];
OFFileAttributes attributes = [OFDictionary
dictionaryWithObject: mode
forKey: OFFilePOSIXPermissions];
[[OFFileManager defaultManager] setAttributes: attributes
|
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
OFString *compressedSize = [OFString
stringWithFormat: @"%" PRIu64,
entry.compressedSize];
OFString *uncompressedSize = [OFString
stringWithFormat: @"%" PRIu64,
entry.uncompressedSize];
OFString *compressionMethod =
of_zip_archive_entry_compression_method_to_string(
entry.compressionMethod);
OFString *CRC32 = [OFString
stringWithFormat: @"%08" PRIX32, entry.CRC32];
OFString *modificationDate = [entry.modificationDate
localDateStringWithFormat: @"%Y-%m-%d %H:%M:%S"];
[of_stdout writeString: @"\t"];
|
|
|
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
OFString *compressedSize = [OFString
stringWithFormat: @"%" PRIu64,
entry.compressedSize];
OFString *uncompressedSize = [OFString
stringWithFormat: @"%" PRIu64,
entry.uncompressedSize];
OFString *compressionMethod =
OFZIPArchiveEntryCompressionMethodName(
entry.compressionMethod);
OFString *CRC32 = [OFString
stringWithFormat: @"%08" PRIX32, entry.CRC32];
OFString *modificationDate = [entry.modificationDate
localDateStringWithFormat: @"%Y-%m-%d %H:%M:%S"];
[of_stdout writeString: @"\t"];
|
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
[of_stdout writeLine: OF_LOCALIZED(
@"list_modification_date",
@"Modification date: %[date]",
@"date", modificationDate)];
if (app->_outputLevel >= 2) {
uint16_t versionMadeBy = entry.versionMadeBy;
[of_stdout writeString: @"\t"];
[of_stdout writeLine: OF_LOCALIZED(
@"list_version_made_by",
@"Version made by: %[version]",
@"version",
of_zip_archive_entry_version_to_string(
versionMadeBy))];
[of_stdout writeString: @"\t"];
[of_stdout writeLine: OF_LOCALIZED(
@"list_min_version_needed",
@"Minimum version needed: %[version]",
@"version",
of_zip_archive_entry_version_to_string(
entry.minVersionNeeded))];
if ((versionMadeBy >> 8) ==
OF_ZIP_ARCHIVE_ENTRY_ATTR_COMPAT_UNIX) {
uint32_t mode = entry
.versionSpecificAttributes >> 16;
OFString *modeString = [OFString
stringWithFormat: @"%06o", mode];
[of_stdout writeString: @"\t"];
[of_stdout writeLine: OF_LOCALIZED(
@"list_mode",
|
>
>
|
|
|
<
|
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
|
[of_stdout writeLine: OF_LOCALIZED(
@"list_modification_date",
@"Modification date: %[date]",
@"date", modificationDate)];
if (app->_outputLevel >= 2) {
uint16_t versionMadeBy = entry.versionMadeBy;
OFZIPArchiveEntryAttributeCompatibility UNIX =
OFZIPArchiveEntryAttributeCompatibilityUNIX;
[of_stdout writeString: @"\t"];
[of_stdout writeLine: OF_LOCALIZED(
@"list_version_made_by",
@"Version made by: %[version]",
@"version",
OFZIPArchiveEntryVersionToString(
versionMadeBy))];
[of_stdout writeString: @"\t"];
[of_stdout writeLine: OF_LOCALIZED(
@"list_min_version_needed",
@"Minimum version needed: %[version]",
@"version",
OFZIPArchiveEntryVersionToString(
entry.minVersionNeeded))];
if ((versionMadeBy >> 8) == UNIX) {
uint32_t mode = entry
.versionSpecificAttributes >> 16;
OFString *modeString = [OFString
stringWithFormat: @"%06o", mode];
[of_stdout writeString: @"\t"];
[of_stdout writeLine: OF_LOCALIZED(
@"list_mode",
|
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
|
if (size > INT64_MAX)
@throw [OFOutOfRangeException exception];
entry.compressedSize = (int64_t)size;
entry.uncompressedSize = (int64_t)size;
entry.compressionMethod =
OF_ZIP_ARCHIVE_ENTRY_COMPRESSION_METHOD_NONE;
entry.modificationDate = attributes.fileModificationDate;
[entry makeImmutable];
output = [_archive streamForWritingEntry: entry];
if (!isDirectory) {
|
|
|
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
|
if (size > INT64_MAX)
@throw [OFOutOfRangeException exception];
entry.compressedSize = (int64_t)size;
entry.uncompressedSize = (int64_t)size;
entry.compressionMethod =
OFZIPArchiveEntryCompressionMethodNone;
entry.modificationDate = attributes.fileModificationDate;
[entry makeImmutable];
output = [_archive streamForWritingEntry: entry];
if (!isDirectory) {
|