From a3652848316e9b91705e0b998c3c957534beabaf Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 25 Jun 2018 03:15:38 +0300 Subject: [PATCH] Support mailto emails. GitOrigin-RevId: aca706aee9b1adb34f3f25700e91cd0d0880424f --- td/telegram/MessageEntity.cpp | 2 ++ test/message_entities.cpp | 1 + 2 files changed, 3 insertions(+) diff --git a/td/telegram/MessageEntity.cpp b/td/telegram/MessageEntity.cpp index dae0fddd7..b1190056e 100644 --- a/td/telegram/MessageEntity.cpp +++ b/td/telegram/MessageEntity.cpp @@ -1011,6 +1011,8 @@ vector> find_urls(Slice str) { for (auto url : match_urls(str)) { if (is_email_address(url)) { result.emplace_back(url, true); + } else if (begins_with(url, "mailto:") && is_email_address(url.substr(7))) { + result.emplace_back(url.substr(7), true); } else { url = fix_url(url); if (!url.empty()) { diff --git a/test/message_entities.cpp b/test/message_entities.cpp index 6be3b1f7e..d40127b83 100644 --- a/test/message_entities.cpp +++ b/test/message_entities.cpp @@ -515,6 +515,7 @@ TEST(MessageEntities, url) { check_url("", {"http://www.ics.uci.edu/pub/ietf/uri/historical.html#WARNING"}); check_url("Look :test@example.com", {":test@example.com"}, {}); // TODO {}, {"test@example.com"} + check_url("Look mailto:test@example.com", {}, {"test@example.com"}); check_url("http://test.com#a", {"http://test.com#a"}); check_url("http://test.com#", {"http://test.com#"}); check_url("http://test.com?#", {"http://test.com?#"});