ObjFW  Diff

Differences From Artifact [ed3299d668]:

To Artifact [e32d96f125]:


29
30
31
32
33
34
35
36


37
38
39
40
41
42
43
29
30
31
32
33
34
35

36
37
38
39
40
41
42
43
44







-
+
+








static OFArc *app;

static void
setPermissions(OFString *path, OFTarArchiveEntry *entry)
{
#ifdef OF_FILE_MANAGER_SUPPORTS_PERMISSIONS
	OFNumber *mode = [OFNumber numberWithUnsignedShort: entry.mode & 0777];
	OFNumber *mode = [OFNumber numberWithUnsignedLongLong:
	    entry.mode.longLongValue & 0777];
	OFFileAttributes attributes = [OFDictionary
	    dictionaryWithObject: mode
			  forKey: OFFilePOSIXPermissions];

	[[OFFileManager defaultManager] setAttributes: attributes
					 ofItemAtPath: path];
#endif
113
114
115
116
117
118
119
120
121


122
123

124
125
126
127
128
129
130
131
114
115
116
117
118
119
120


121
122


123

124
125
126
127
128
129
130







-
-
+
+
-
-
+
-








		if (app->_outputLevel >= 1) {
			OFString *date = [entry.modificationDate
			    localDateStringWithFormat: @"%Y-%m-%d %H:%M:%S"];
			OFString *size = [OFString stringWithFormat:
			    @"%llu", entry.uncompressedSize];
			OFString *mode = [OFString stringWithFormat:
			    @"%06o", entry.mode];
			OFString *UID = [OFString stringWithFormat:
			    @"%06llo", entry.mode.unsignedLongLongValue];
			OFString *UID = entry.UID.description;
			    @"%u", entry.UID];
			OFString *GID = [OFString stringWithFormat:
			OFString *GID = entry.GID.description;
			    @"%u", entry.GID];

			[OFStdOut writeString: @"\t"];
			[OFStdOut writeLine: OF_LOCALIZED(@"list_size",
			    @"["
			    @"    'Size: ',"
			    @"    ["
			    @"        {'size == 1': '1 byte'},"
475
476
477
478
479
480
481
482

483
484
485
486
487
488
489



490
491
492
493
494
495
496
474
475
476
477
478
479
480

481
482
483
484
485
486


487
488
489
490
491
492
493
494
495
496







-
+





-
-
+
+
+







			    @"file", fileName)];

		attributes = [fileManager attributesOfItemAtPath: fileName];
		type = attributes.fileType;
		entry = [OFMutableTarArchiveEntry entryWithFileName: fileName];

#ifdef OF_FILE_MANAGER_SUPPORTS_PERMISSIONS
		entry.mode = attributes.filePOSIXPermissions;
		entry.mode = [attributes objectForKey: OFFilePOSIXPermissions];
#endif
		entry.uncompressedSize = attributes.fileSize;
		entry.modificationDate = attributes.fileModificationDate;

#ifdef OF_FILE_MANAGER_SUPPORTS_OWNER
		entry.UID = attributes.fileOwnerAccountID;
		entry.GID = attributes.fileGroupOwnerAccountID;
		entry.UID = [attributes objectForKey: OFFileOwnerAccountID];
		entry.GID =
		    [attributes objectForKey: OFFileGroupOwnerAccountID];
		entry.owner = attributes.fileOwnerAccountName;
		entry.group = attributes.fileGroupOwnerAccountName;
#endif

		if ([type isEqual: OFFileTypeRegular])
			entry.type = OFTarArchiveEntryTypeFile;
		else if ([type isEqual: OFFileTypeDirectory]) {