Corrige la gestion des url :
authorx2003bruneau <x2003bruneau@9869982d-c50d-0410-be91-f2a2ec7c7c7b>
Mon, 13 Mar 2006 09:29:51 +0000 (09:29 +0000)
committerx2003bruneau <x2003bruneau@9869982d-c50d-0410-be91-f2a2ec7c7c7b>
Mon, 13 Mar 2006 09:29:51 +0000 (09:29 +0000)
* 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

banana/banana.inc.php.in
banana/misc.inc.php

index ab4e6da..7858929 100644 (file)
@@ -50,7 +50,7 @@ class Banana
      *   $matches[2] = "http://www.polytechnique.org"
      *   $matches[3] = "]"
      */
-    var $url_regexp  = '(["\[])?((?:https?|ftp|news)://(?:&amp;|[a-z@0-9.~%$£µ&i#\-+=_/\?])*)(["\]])?';
+    var $url_regexp  = '(["\[])?((?:https?|ftp|news)://(?:&amp;|,?[a-z@0-9.~%$£µ&i#\-+=_/\?])*)(["\]])?';
 
     
     /** Boundary for multipart messages
index 8f33484..f8af7b2 100644 (file)
@@ -369,6 +369,12 @@ function cutlink($link)
     return $link;
 }
 
+function cleanurl($url)
+{
+    $url = str_replace('@', '%40', $url);
+    return '<a href="'.$url.'" title="'.$url.'">'.cutlink($url).'</a>';
+}
+
 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("/(&lt;|&gt;|&quot;)/", " \\1 ", $res);
-        $res  = preg_replace("!$url!ie", "'\\1<a href=\"\\2\" title=\"\\2\">'.cutlink('\\2').'</a>\\3'", $res);
+        $res  = preg_replace("!$url!ie", "'\\1'.cleanurl('\\2').'\\3'", $res);
         $res  = preg_replace('/(["\[])?(?:mailto:)?([a-z0-9.\-+_]+@[a-z0-9.\-+_]+)(["\]])?/i', '\1<a href="mailto:\2">\2</a>\3', $res);
         $res  = preg_replace("/ (&lt;|&gt;|&quot;) /", "\\1", $res);