Parcourir la source

Recover Swift 4.0 and 4.1

Norio Nomura il y a 6 ans
Parent
commit
c5e94e50b5

+ 4 - 0
Base32.xcodeproj/project.pbxproj

@@ -7,6 +7,7 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
+		6C5B22F8226029AC00C19E94 /* shim.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C5B22F7226029AC00C19E94 /* shim.swift */; };
 		6CC8D4741D96DF990031ED04 /* Base32.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "_____Product_Base32" /* Base32.framework */; };
 		_LinkFileRef_Base32_via_Base32Tests /* Base32.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "_____Product_Base32" /* Base32.framework */; };
 		__src_cc_ref_Sources/Base32/Base16.swift /* Base16.swift in Sources */ = {isa = PBXBuildFile; fileRef = __PBXFileRef_Sources/Base32/Base16.swift /* Base16.swift */; };
@@ -30,6 +31,7 @@
 /* End PBXContainerItemProxy section */
 
 /* Begin PBXFileReference section */
+		6C5B22F7226029AC00C19E94 /* shim.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = shim.swift; sourceTree = "<group>"; };
 		6C9233FE1E5307C2003ABE13 /* LinuxMain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LinuxMain.swift; path = Tests/LinuxMain.swift; sourceTree = "<group>"; };
 		6CDCD8721D98BE7800A65866 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
 		6CDCD8731D98BE7800A65866 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
@@ -128,6 +130,7 @@
 				__PBXFileRef_Sources/Base32/Base16.swift /* Base16.swift */,
 				__PBXFileRef_Sources/Base32/Base32.swift /* Base32.swift */,
 				__PBXFileRef_Sources/Base32/StringExtension.swift /* StringExtension.swift */,
+				6C5B22F7226029AC00C19E94 /* shim.swift */,
 			);
 			name = Base32;
 			path = Sources/Base32;
@@ -261,6 +264,7 @@
 			files = (
 				__src_cc_ref_Sources/Base32/Base16.swift /* Base16.swift in Sources */,
 				__src_cc_ref_Sources/Base32/Base32.swift /* Base32.swift in Sources */,
+				6C5B22F8226029AC00C19E94 /* shim.swift in Sources */,
 				__src_cc_ref_Sources/Base32/StringExtension.swift /* StringExtension.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;

+ 1 - 1
Package.swift

@@ -1,4 +1,4 @@
-// swift-tools-version:4.2
+// swift-tools-version:4.0
 import PackageDescription
 
 var package = Package(

+ 18 - 0
Package@swift-4.2.swift

@@ -0,0 +1,18 @@
+// swift-tools-version:4.2
+import PackageDescription
+
+var package = Package(
+    name: "Base32",
+    products: [
+      .library(name: "Base32", targets: ["Base32"])
+    ],
+    targets: [
+        .target(name: "Base32"),
+        .testTarget(name: "Base32Tests", dependencies: ["Base32"])
+    ],
+    swiftLanguageVersions: [.v4, .v4_2]
+)
+
+#if os(macOS)
+    package.targets.append(.testTarget(name: "SecEncodeTransformTests", dependencies: ["Base32"]))
+#endif

+ 18 - 0
Package@swift-5.swift

@@ -0,0 +1,18 @@
+// swift-tools-version:5.0
+import PackageDescription
+
+var package = Package(
+    name: "Base32",
+    products: [
+      .library(name: "Base32", targets: ["Base32"])
+    ],
+    targets: [
+        .target(name: "Base32"),
+        .testTarget(name: "Base32Tests", dependencies: ["Base32"])
+    ],
+    swiftLanguageVersions: [.v4, .v4_2, .v5]
+)
+
+#if os(macOS)
+    package.targets.append(.testTarget(name: "SecEncodeTransformTests", dependencies: ["Base32"]))
+#endif

+ 8 - 0
Sources/Base32/Base32.swift

@@ -224,10 +224,18 @@ private func base32encode(_ data: UnsafeRawPointer, _ length: Int, _ table: [Int
     
     // return
     if let base32Encoded = String(validatingUTF8: resultBuffer) {
+#if swift(>=4.1)
         resultBuffer.deallocate()
+#else
+        resultBuffer.deallocate(capacity: resultBufferSize)
+#endif
         return base32Encoded
     } else {
+#if swift(>=4.1)
         resultBuffer.deallocate()
+#else
+        resultBuffer.deallocate(capacity: resultBufferSize)
+#endif
         fatalError("internal error")
     }
 }

+ 9 - 0
Sources/Base32/shim.swift

@@ -0,0 +1,9 @@
+#if !swift(>=4.2)
+extension Collection {
+    public func firstIndex(
+        where predicate: (Element) throws -> Bool
+    ) rethrows -> Index? {
+        return try index(where: predicate)
+    }
+}
+#endif