[TAR] Add a Data extension function which pads to 512 bytes and appends

This commit is contained in:
Timofey Solomko
2021-07-23 16:40:21 +03:00
parent 1730eabc1c
commit bdf22b2cc5
2 changed files with 21 additions and 0 deletions
+4
View File
@@ -214,6 +214,7 @@
06F276DF1F2BAB4A00E67335 /* 7zEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06F276DE1F2BAB4900E67335 /* 7zEntry.swift */; };
06FEAD921F54B9CD00AD016E /* EncodingTree.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06FEAD911F54B9CD00AD016E /* EncodingTree.swift */; };
E648151D26A889B8009261F0 /* TarHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = E648151C26A889B8009261F0 /* TarHeader.swift */; };
E64F71BC26AAFD6A008BB308 /* Data+Tar.swift in Sources */ = {isa = PBXBuildFile; fileRef = E64F71BB26AAFD6A008BB308 /* Data+Tar.swift */; };
E652D8F3263D670900FC229B /* test_nonstandard_runlength.bz2 in Resources */ = {isa = PBXBuildFile; fileRef = E652D8F2263D670900FC229B /* test_nonstandard_runlength.bz2 */; };
E652D8F5263D678000FC229B /* test_nonstandard_runlength.answer in Resources */ = {isa = PBXBuildFile; fileRef = E652D8F4263D678000FC229B /* test_nonstandard_runlength.answer */; };
E66F36242538726E00076A6E /* test_empty.lzma in Resources */ = {isa = PBXBuildFile; fileRef = E66F36232538726E00076A6E /* test_empty.lzma */; };
@@ -439,6 +440,7 @@
06FEAD911F54B9CD00AD016E /* EncodingTree.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EncodingTree.swift; path = Sources/Common/CodingTree/EncodingTree.swift; sourceTree = SOURCE_ROOT; };
06FED40B1DD7717E0013DFB2 /* BZip2.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BZip2.swift; sourceTree = "<group>"; };
E648151C26A889B8009261F0 /* TarHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TarHeader.swift; sourceTree = "<group>"; };
E64F71BB26AAFD6A008BB308 /* Data+Tar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Data+Tar.swift"; sourceTree = "<group>"; };
E652D8F2263D670900FC229B /* test_nonstandard_runlength.bz2 */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_nonstandard_runlength.bz2; sourceTree = "<group>"; };
E652D8F4263D678000FC229B /* test_nonstandard_runlength.answer */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_nonstandard_runlength.answer; sourceTree = "<group>"; };
E66F36232538726E00076A6E /* test_empty.lzma */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_empty.lzma; sourceTree = "<group>"; };
@@ -641,6 +643,7 @@
0651FEC11F8E2E9100C49646 /* ContainerEntryType+Tar.swift */,
0656B82A1F8A979A00111605 /* ByteReader+Tar.swift */,
06CFF6B12078C5A5003B8375 /* TarEntryInfoProvider.swift */,
E64F71BB26AAFD6A008BB308 /* Data+Tar.swift */,
);
path = TAR;
sourceTree = "<group>";
@@ -1112,6 +1115,7 @@
buildActionMask = 2147483647;
files = (
061C06521F0E904600832F0C /* ZipEndOfCentralDirectory.swift in Sources */,
E64F71BC26AAFD6A008BB308 /* Data+Tar.swift in Sources */,
06BB8F301E0C2C720079FB9E /* LZMA2.swift in Sources */,
0620F4C31F8E24B6001C9B7A /* CompressionAlgorithm.swift in Sources */,
06955E491F65C761004D5D79 /* BZip2+Lengths.swift in Sources */,
+17
View File
@@ -0,0 +1,17 @@
// Copyright (c) 2021 Timofey Solomko
// Licensed under MIT License
//
// See LICENSE for license information
import Foundation
extension Data {
@inline(__always)
mutating func appendAsTarBlock(_ data: Data) {
self.append(data)
let paddingSize = data.count.roundTo512() - data.count
self.append(Data(count: paddingSize))
}
}