From ae645ff0cf8d36feb4feb59c8a3e2aff44ad0c87 Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Sun, 10 Jun 2007 09:25:31 +0000
Subject: [PATCH] =?UTF-8?q?am=C3=A9liorer=20la=20conformit=C3=A9=20xhtml?=
 =?UTF-8?q?=20des=20diff=20(essayer=20au=20moins=20de=20fermer=20tout=20ce?=
 =?UTF-8?q?=20qui=20est=20ouvert=20meme=20si=20les=20balises=20sont=20alle?=
 =?UTF-8?q?grement=20melang=C3=A9es)=20pour=20eviter=20que=20les=20couleur?=
 =?UTF-8?q?s=20debordent=20sur=20le=20reste=20de=20la=20page?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/inc/revisions.php | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/ecrire/inc/revisions.php b/ecrire/inc/revisions.php
index 5ac2f3a45a..23323f5c34 100644
--- a/ecrire/inc/revisions.php
+++ b/ecrire/inc/revisions.php
@@ -490,8 +490,9 @@ function propre_diff($texte) {
 
 	// [ ...<span diff> -> lien ]
 	// < tag <span diff> >
-	$texte = preg_replace(',<([^>]*@@@SPIP_DIFF[0-9]+@@@),',
+	$texte = preg_replace(',<([^>]*?@@@SPIP_DIFF[0-9]+@@@),',
 		'&lt;\1', $texte);
+		var_dump($texte);
 	# attention ici astuce seulement deux @@ finals car on doit eviter
 	# deux patterns a suivre, afin de pouvoir prendre [ mais eviter [[
 	$texte = preg_replace(',(^|[^[])[[]([^[\]]*@@@SPIP_DIFF[0-9]+@@),',
@@ -528,6 +529,9 @@ function propre_diff($texte) {
 		$texte = str_replace('@@@SPIP_DIFF'.$c.'@@@', $bal, $texte);
 		$GLOBALS['les_notes'] = str_replace('@@@SPIP_DIFF'.$c.'@@@', $$bal, $GLOBALS['les_notes']);
 	}
+	// quand le dernier tag est ouvrant le refermer ...
+	$reg = end($regs);
+	if (!$reg[1]) $texte.="</$reg[2]>";
 
 	return $texte;
 }
-- 
GitLab