From: x2003bruneau Date: Sat, 4 Mar 2006 10:16:28 +0000 (+0000) Subject: Rend les citations valides html/xhtml X-Git-Tag: 1.8~269 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=b7a8ff3313ad792bce35dcd5f9976dae445c1ea0;p=banana.git Rend les citations valides html/xhtml git-svn-id: svn+ssh://murphy/home/svn/banana/trunk@26 9869982d-c50d-0410-be91-f2a2ec7c7c7b --- diff --git a/banana/misc.inc.php b/banana/misc.inc.php index a559e92..c5b6b32 100644 --- a/banana/misc.inc.php +++ b/banana/misc.inc.php @@ -315,7 +315,7 @@ function formatbody($_text, $format='plain') $res = "\n\n" . to_entities(wrap($_text, ""))."\n\n"; } $res = preg_replace("/(<|>|")/", " \\1 ", $res); - $res = preg_replace('/(["\[])?((https?|ftp|news):\/\/[a-z@0-9.~%$£µ&i#\-+=_\/\?]*)(["\]])?/i', "\\1\\2\\4", $res); + $res = preg_replace('/(["\[])?((https?|ftp|news):\/\/[a-z@0-9.~%$£µ&i#\-+=_\/\?]*)(["\]])?/i', '\1\2\4', $res); $res = preg_replace("/ (<|>|") /", "\\1", $res); if ($format == 'html') { @@ -323,12 +323,15 @@ function formatbody($_text, $format='plain') $res = preg_replace("@]*>\n?-- \n?(]*>)@", "
--
\\2", $res); $parts = preg_split("@(:?]*>\n?-- \n?

|]*>\n?-- \n?]*>)@", $res); } else { - while (preg_match("@(^|]*>|\n)>@i", $res)) { - $res = preg_replace("@(^|]*>|\n)((>[^\n]*\n)+)@ie", - "'\\1
'.preg_replace('@(^|]*>|\n)>[ \\t\\r]*@i', '\\1', '\\2').'
'", - $res); + $i=0; + while (preg_match("@(^|
|\n)>@i", $res)) {
+            $res  = preg_replace("@(^|
|\n)((>[^\n]*\n)+)@ie",
+            	"'\\1
'"
+		    .".stripslashes(preg_replace('@(^|
|\n)>[ \\t\\r]*@i', '\\1', '\\2'))"
+		    .".'
'",
+	        $res);
         }
-        $res = preg_replace("@(]*>)\n@", '\1', $res);
+	$res = preg_replace("@
-- ?\n@", "
\n-- \n", $res);
         $parts = preg_split("/\n-- ?\n/", $res);
     }