Browse Source

make sure, dc_add_address_book() does not get names or mail addresses with lineends

B. Petersen 5 years ago
parent
commit
a540d765fa
1 changed files with 9 additions and 2 deletions
  1. 9 2
      deltachat-ios/Handler/DeviceContactsHandler.swift

+ 9 - 2
deltachat-ios/Handler/DeviceContactsHandler.swift

@@ -14,10 +14,17 @@ class DeviceContactsHandler {
     private func makeContactString(contacts: [CNContact]) -> String {
         var contactString: String = ""
         for contact in contacts {
-            let displayName: String = "\(contact.givenName) \(contact.familyName)"
+            var displayName: String = "\(contact.givenName) \(contact.familyName)"
+            displayName = displayName.replacingOccurrences(of: "\r", with: "") // remove characters later used as field separator
+            displayName = displayName.replacingOccurrences(of: "\n", with: "")
+
             // cnContact can have multiple email addresses -> create contact for each email address
             for emailAddress in contact.emailAddresses {
-                contactString += "\(displayName)\n\(emailAddress.value)\n"
+                var adr: String = emailAddress.value as String
+                adr = adr.replacingOccurrences(of: "\r", with: "") // remove characters later used as field separator
+                adr = adr.replacingOccurrences(of: "\n", with: "")
+
+                contactString += "\(displayName)\n\(adr)\n"
             }
         }
         return contactString