From bb5760cca4d8bc844aa0c017958d3dbea7005f2f Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Fri, 28 Jun 2019 12:26:39 +0200 Subject: WgQuickConfig: Swift treats \r\n as a single character let blah = "hello\nworld\ndoes\nthis\nwork" print(blah.split(separator: "\n")) //output: ["hello", "world", "does", "this", "work"] let blah2 = "hello\r\nworld\r\ndoes\r\nthis\r\nwork" print(blah2.split(separator: "\n")) //output: ["hello\r\nworld\r\ndoes\r\nthis\r\nwork"] //expected: ["hello\r", "world\r", "does\r", "this\r", "work\r"] In blah2, the string splitting fails because swift considers \r\n to be its own character. Signed-off-by: Jason A. Donenfeld --- WireGuard/Shared/Model/TunnelConfiguration+WgQuickConfig.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'WireGuard/Shared/Model') diff --git a/WireGuard/Shared/Model/TunnelConfiguration+WgQuickConfig.swift b/WireGuard/Shared/Model/TunnelConfiguration+WgQuickConfig.swift index 6aba0ac..5e8f969 100644 --- a/WireGuard/Shared/Model/TunnelConfiguration+WgQuickConfig.swift +++ b/WireGuard/Shared/Model/TunnelConfiguration+WgQuickConfig.swift @@ -39,7 +39,7 @@ extension TunnelConfiguration { var interfaceConfiguration: InterfaceConfiguration? var peerConfigurations = [PeerConfiguration]() - let lines = wgQuickConfig.split(separator: "\n") + let lines = wgQuickConfig.split { $0.isNewline } var parserState = ParserState.notInASection var attributes = [String: String]() -- cgit v1.2.3-59-g8ed1b