Skip to content

Commit 86a9caf

Browse files
committed
[ZIP] Unify the code for finding CP437 enconding
1 parent 33cb74c commit 86a9caf

1 file changed

Lines changed: 3 additions & 20 deletions

File tree

Sources/ZIP/LittleEndianByteReader+Zip.swift

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,7 @@ extension LittleEndianByteReader {
2121
return String(data: stringData, encoding: .utf8)
2222
}
2323
if String.cp437Available && !stringData.needsUtf8() {
24-
#if os(Windows)
2524
return String(data: stringData, encoding: String.cp437Encoding)
26-
#else
27-
return String(data: stringData, encoding: String.Encoding(rawValue:
28-
CFStringConvertEncodingToNSStringEncoding(String.cp437Encoding)))
29-
#endif
3025
} else {
3126
return String(data: stringData, encoding: .utf8)
3227
}
@@ -36,21 +31,9 @@ extension LittleEndianByteReader {
3631

3732
fileprivate extension String {
3833

39-
#if os(Linux)
40-
#if compiler(>=5.3)
41-
static let cp437Encoding: CFStringEncoding = CFStringEncoding(CFStringEncodings.dosLatinUS.rawValue)
42-
#else
43-
static let cp437Encoding: CFStringEncoding = UInt32(truncatingIfNeeded: UInt(kCFStringEncodingDOSLatinUS))
44-
#endif
45-
static let cp437Available: Bool = CFStringIsEncodingAvailable(cp437Encoding)
46-
#elseif os(Windows)
47-
// "Latin-US (DOS)" CP437-2147483120
48-
static let cp437Encoding = String.Encoding(rawValue: 0x80000400)
49-
static let cp437Available = String.availableStringEncodings.contains(cp437Encoding)
50-
#else
51-
static let cp437Encoding = CFStringEncoding(CFStringEncodings.dosLatinUS.rawValue)
52-
static let cp437Available = CFStringIsEncodingAvailable(cp437Encoding)
53-
#endif
34+
// "Latin-US (DOS)" CP437-2147483120
35+
static let cp437Encoding = String.Encoding(rawValue: 0x80000400)
36+
static let cp437Available = String.availableStringEncodings.contains(cp437Encoding)
5437

5538
}
5639

0 commit comments

Comments
 (0)