From e7241984874c3e08770db21a8abb8c04813c27f7 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Mon, 13 Mar 2006 09:29:51 +0000 Subject: [PATCH] =?utf8?q?Corrige=20la=20gestion=20des=20url=20:=20*=20acc?= =?utf8?q?epte=20les=20,=20*=20=C3=83=C2=A9vite=20que=20les=20@=20des=20ur?= =?utf8?q?l=20puissent=20=C3=83=C2=AAtre=20surinterpr=C3=83=C2=A9t=C3=83?= =?utf8?q?=C2=A9s=20comme=20des=20adresses=20mails=20en=20les=20=C3=83?= =?utf8?q?=C2=A9chappant=20en=20%40?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit git-svn-id: svn+ssh://murphy/home/svn/banana/trunk@41 9869982d-c50d-0410-be91-f2a2ec7c7c7b --- banana/banana.inc.php.in | 2 +- banana/misc.inc.php | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) 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); -- 2.1.4