From 56d7348ec2ce6750aed73659a4889f22d31f61c8 Mon Sep 17 00:00:00 2001 From: Sean Murphy Date: Fri, 6 Feb 2009 12:18:15 -0500 Subject: [PATCH] Fixed #1149: URL auto-linking bug when following colon. --- lib/util.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/util.php b/lib/util.php index e963175204..5f95c1a965 100644 --- a/lib/util.php +++ b/lib/util.php @@ -394,7 +394,21 @@ function common_render_text($text) function common_replace_urls_callback($text, $callback) { // Start off with a regex - preg_match_all('#(?:(?:(?:https?|ftps?|mms|rtsp|gopher|news|nntp|telnet|wais|file|prospero|webcal|xmpp|irc)://|(?:mailto|aim|tel):)[^.\s]+\.[^\s]+|(?:[^.\s/]+\.)+(?:museum|travel|[a-z]{2,4})(?:[:/][^\s]*)?)#i', $text, $matches); + $regex = '# + (?: + (?: + (?:https?|ftps?|mms|rtsp|gopher|news|nntp|telnet|wais|file|prospero|webcal|xmpp|irc):// + | + (?:mailto|aim|tel): + ) + [^.\s]+\.[^\s]+ + | + (?:[^.\s/:]+\.)+ + (?:museum|travel|[a-z]{2,4}) + (?:[:/][^\s]*)? + ) + #ix'; + preg_match_all($regex, $text, $matches); // Then clean up what the regex left behind $offset = 0;