From 94ecd4adc37374d9c5f3cddaf2c6e6691ec7a15d Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Sat, 7 Jan 2006 19:09:10 +0000
Subject: [PATCH] inserer_documents() devient un vrai filtre, au prix de
 quelques pico-secondes de traitements en plus (on passe deux fois preg_match)

---
 ecrire/inc_documents.php3 | 6 ++++--
 ecrire/inc_texte.php3     | 4 ++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/ecrire/inc_documents.php3 b/ecrire/inc_documents.php3
index f67bb578fd..a25af7a302 100644
--- a/ecrire/inc_documents.php3
+++ b/ecrire/inc_documents.php3
@@ -386,14 +386,16 @@ function integre_image($id_document, $align, $type_aff) {
 //
 // Traitement des images et documents <IMGxx|right> pour inc_texte
 //
-function inserer_documents($letexte, $matches) {
+function inserer_documents($letexte) {
 	# HACK: empecher les boucles infernales lorsqu'un document est mentionne
 	# dans son propre descriptif (on peut citer un document dans un autre,
 	# mais il faut pas trop pousser...)
 	static $pile = 0;
 	if (++$pile > 5) return '';
 
-	foreach ($matches as $match) {
+	foreach (
+	preg_match_all(__preg_img, $letexte, $matches, PREG_SET_ORDER)
+	as $match) {
 		$type = strtoupper($match[1]);
 		if ($type == 'EMB')
 			$rempl = embed_document($match[2], $match[4]);
diff --git a/ecrire/inc_texte.php3 b/ecrire/inc_texte.php3
index 8fc3b1a9fe..cc438f1bdd 100644
--- a/ecrire/inc_texte.php3
+++ b/ecrire/inc_texte.php3
@@ -476,9 +476,9 @@ function typo($letexte, $echapper=true) {
 	//
 	// NOTE : dans propre() ceci s'execute avant les tableaux a cause du "|",
 	// et apres les liens a cause du traitement de [<imgXX|right>->URL]
-	if (preg_match_all(__preg_img, $letexte, $matches, PREG_SET_ORDER)) {
+	if (preg_match(__preg_img, $letexte)) {
 		include_ecrire('inc_documents');
-		$letexte = inserer_documents($letexte, $matches);
+		$letexte = inserer_documents($letexte);
 	}
 
 	// Appeler les fonctions de post-traitement
-- 
GitLab