Add two proeprties to TarEntryInfo which indicate if it is an extended header

This commit is contained in:
Timofey Solomko
2017-10-11 14:01:26 +03:00
parent 19b5380e01
commit fc334ddfea
2 changed files with 8 additions and 4 deletions
+3 -4
View File
@@ -80,12 +80,11 @@ public class TarContainer: Container {
let entry = TarEntry(info, data)
switch info.tarType {
case .globalExtendedHeader:
if info.isGlobalExtendedHeader {
lastGlobalExtendedHeader = String(data: entry.data!, encoding: .utf8)
case .localExtendedHeader:
} else if info.isLocalExtendedHeader {
lastLocalExtendedHeader = String(data: entry.data!, encoding: .utf8)
default:
} else {
output.append(entry)
lastLocalExtendedHeader = nil
longName = nil
+5
View File
@@ -123,6 +123,9 @@ public class TarEntryInfo: ContainerEntryInfo {
private let gnuLongName: String?
private let gnuLongLinkName: String?
let isGlobalExtendedHeader: Bool
let isLocalExtendedHeader: Bool
let blockStartIndex: Int
init(_ pointerData: DataWithPointer, _ globalExtendedHeader: String?, _ localExtendedHeader: String?,
@@ -220,6 +223,8 @@ public class TarEntryInfo: ContainerEntryInfo {
default:
attributesDict[FileAttributeKey.type] = FileAttributeType.typeUnknown
}
self.isGlobalExtendedHeader = fileTypeIndicator == "g"
self.isLocalExtendedHeader = fileTypeIndicator == "x"
// Linked file name
linkedFileName = try pointerData.nullEndedAsciiString(cutoff: 100)