From: x2003bruneau Date: Mon, 13 Mar 2006 09:29:51 +0000 (+0000) Subject: =?utf-8?q?Corrige=20la=20gestion=20des=20url=20: X-Git-Tag: 1.8~254 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=4c921acfa990bca48e1a6d8b23ea3db363db1277;p=banana.git =?utf-8?q?Corrige=20la=20gestion=20des=20url=20: =20*=20accepte=20les=20, =20*=20=C3=83=C2=A9vite=20que=20les=20@=20des=20url=20puissent=20=C3=83=C2=AAtre=20surinterpr=C3=83=C2=A9t=C3=83=C2=A9s=20comme=20des=20adresses=20mails=20en=20les=20=C3=83=C2=A9chappant=20en=20%40?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit 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);