summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-12-26 19:13:42 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-12-26 19:14:05 (GMT)
commit7f1b958ef2f9d1b892c51d5f7de3a6ab5669a804 (patch)
treea95caf7209de3f9de2fda26e1efb3246910c797a
parent49d621c38effcdcc9aaafd3ee14082a2ae8278c4 (diff)
downloadswift-7f1b958ef2f9d1b892c51d5f7de3a6ab5669a804.zip
swift-7f1b958ef2f9d1b892c51d5f7de3a6ab5669a804.tar.bz2
Fixed linkifying of unicode URLs.
-rw-r--r--SwifTools/Linkify.cpp2
-rw-r--r--SwifTools/UnitTest/LinkifyTest.cpp9
2 files changed, 10 insertions, 1 deletions
diff --git a/SwifTools/Linkify.cpp b/SwifTools/Linkify.cpp
index 0dfa7b5..32428ec 100644
--- a/SwifTools/Linkify.cpp
+++ b/SwifTools/Linkify.cpp
@@ -21,7 +21,7 @@ String Linkify::linkify(const String& input) {
for (size_t i = 0; i < input.getUTF8Size(); ++i) {
char c = input[i];
if (inURL) {
- if (c >= 33 && c != '\\' && c != '"') {
+ if (c != ' ' && c != '\t') {
currentURL.push_back(c);
}
else {
diff --git a/SwifTools/UnitTest/LinkifyTest.cpp b/SwifTools/UnitTest/LinkifyTest.cpp
index 9655b87..60edc9b 100644
--- a/SwifTools/UnitTest/LinkifyTest.cpp
+++ b/SwifTools/UnitTest/LinkifyTest.cpp
@@ -28,6 +28,7 @@ class LinkifyTest : public CppUnit::TestFixture {
CPPUNIT_TEST(testLinkify_Authentication);
CPPUNIT_TEST(testLinkify_At);
CPPUNIT_TEST(testLinkify_Amps);
+ CPPUNIT_TEST(testLinkify_UnicodeCharacter);
CPPUNIT_TEST_SUITE_END();
public:
@@ -151,6 +152,14 @@ class LinkifyTest : public CppUnit::TestFixture {
String("<a href=\"http://swift.im/foo&bar&baz\">http://swift.im/foo&bar&baz</a>"),
result);
}
+
+ void testLinkify_UnicodeCharacter() {
+ String result = Linkify::linkify("http://\xe2\x98\x83.net");
+
+ CPPUNIT_ASSERT_EQUAL(
+ String("<a href=\"http://\xe2\x98\x83.net\">http://\xe2\x98\x83.net</a>"),
+ result);
+ }
};
CPPUNIT_TEST_SUITE_REGISTRATION(LinkifyTest);