diff options
author | Remko Tronçon <git@el-tramo.be> | 2012-04-25 18:40:18 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2012-04-25 18:40:18 (GMT) |
commit | 508a5e258d5de152b5b58ceca67a0135383f4fe0 (patch) | |
tree | f0a8ea959823a2cd7979597beaa84032e4197a9e /SwifTools | |
parent | 863b3d6c73f42e316dd8416cad36b9dc3a30656b (diff) | |
download | swift-508a5e258d5de152b5b58ceca67a0135383f4fe0.zip swift-508a5e258d5de152b5b58ceca67a0135383f4fe0.tar.bz2 |
Don't linkify /me actions.
Resolves: #959
Diffstat (limited to 'SwifTools')
-rw-r--r-- | SwifTools/Linkify.cpp | 2 | ||||
-rw-r--r-- | SwifTools/UnitTest/LinkifyTest.cpp | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/SwifTools/Linkify.cpp b/SwifTools/Linkify.cpp index 2ca284d..906026d 100644 --- a/SwifTools/Linkify.cpp +++ b/SwifTools/Linkify.cpp @@ -21,7 +21,7 @@ std::string Linkify::linkify(const std::string& input) { for (size_t i = 0; i < input.size(); ++i) { char c = input[i]; if (inURL) { - if (c != ' ' && c != '\t' && c != '\n') { + if (c != ' ' && c != '\t' && c != '\n' && !(c == '*' && i == input.size() - 1 && input[0] == '*')) { currentURL.push_back(c); } else { diff --git a/SwifTools/UnitTest/LinkifyTest.cpp b/SwifTools/UnitTest/LinkifyTest.cpp index 3d0ce00..5df1a96 100644 --- a/SwifTools/UnitTest/LinkifyTest.cpp +++ b/SwifTools/UnitTest/LinkifyTest.cpp @@ -31,6 +31,7 @@ class LinkifyTest : public CppUnit::TestFixture { CPPUNIT_TEST(testLinkify_UnicodeCharacter); CPPUNIT_TEST(testLinkify_NewLine); CPPUNIT_TEST(testLinkify_Tab); + CPPUNIT_TEST(testLinkify_Action); CPPUNIT_TEST_SUITE_END(); public: @@ -178,6 +179,14 @@ class LinkifyTest : public CppUnit::TestFixture { std::string("<a href=\"http://swift.im\">http://swift.im</a>\tfoo"), result); } + + void testLinkify_Action() { + std::string result = Linkify::linkify("*http://swift.im*"); + + CPPUNIT_ASSERT_EQUAL( + std::string("*<a href=\"http://swift.im\">http://swift.im</a>*"), + result); + } }; CPPUNIT_TEST_SUITE_REGISTRATION(LinkifyTest); |