From: x2003bruneau Date: Mon, 13 Mar 2006 09:29:51 +0000 (+0000) Subject: Corrige la gestion des url : X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=e7241984874c3e08770db21a8abb8c04813c27f7;p=banana.git Corrige la gestion des url : * accepte les , * évite que les @ des url puissent être surinterprétés comme des adresses mails en les échappant en %40 git-svn-id: svn+ssh://murphy/home/svn/banana/trunk@41 9869982d-c50d-0410-be91-f2a2ec7c7c7b --- diff --git a/banana/banana.inc.php.in b/banana/banana.inc.php.in index ab4e6da..7858929 100644 --- a/banana/banana.inc.php.in +++ b/banana/banana.inc.php.in @@ -50,7 +50,7 @@ class Banana * $matches[2] = "http://www.polytechnique.org" * $matches[3] = "]" */ - var $url_regexp = '(["\[])?((?:https?|ftp|news)://(?:&|[a-z@0-9.~%$£µ&i#\-+=_/\?])*)(["\]])?'; + var $url_regexp = '(["\[])?((?:https?|ftp|news)://(?:&|,?[a-z@0-9.~%$£µ&i#\-+=_/\?])*)(["\]])?'; /** Boundary for multipart messages diff --git a/banana/misc.inc.php b/banana/misc.inc.php index 8f33484..f8af7b2 100644 --- a/banana/misc.inc.php +++ b/banana/misc.inc.php @@ -369,6 +369,12 @@ function cutlink($link) return $link; } +function cleanurl($url) +{ + $url = str_replace('@', '%40', $url); + return ''.cutlink($url).''; +} + function formatbody($_text, $format='plain', $flowed=false) { if ($format == 'html') { @@ -383,7 +389,7 @@ function formatbody($_text, $format='plain', $flowed=false) global $banana; $url = $banana->url_regexp; $res = preg_replace("/(<|>|")/", " \\1 ", $res); - $res = preg_replace("!$url!ie", "'\\1'.cutlink('\\2').'\\3'", $res); + $res = preg_replace("!$url!ie", "'\\1'.cleanurl('\\2').'\\3'", $res); $res = preg_replace('/(["\[])?(?:mailto:)?([a-z0-9.\-+_]+@[a-z0-9.\-+_]+)(["\]])?/i', '\1\2\3', $res); $res = preg_replace("/ (<|>|") /", "\\1", $res);