From d67207bfc6984359708810539527638db1d04f09 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Wed, 16 Jan 2008 07:05:17 +0000
Subject: [PATCH] =?UTF-8?q?D=C3=A9noncer=20l'argument=20manquant=20dans=20?=
 =?UTF-8?q?la=20balise=20CHEMIN=20au=20moment=20de=20la=20compilation,=20s?=
 =?UTF-8?q?inon=20=C3=A7a=20provoque=20une=20erreur=20incompr=C3=A9hensibl?=
 =?UTF-8?q?e;=20voir=20http://forum.spip.org/fr=5F199549.html=20Tant=20qu'?=
 =?UTF-8?q?=C3=A0=20faire,=20m=C3=AAme=20contr=C3=B4le=20pour=20la=20balis?=
 =?UTF-8?q?e=20INCLURE=20bien=20que=20l'oubli=20semble=20tr=C3=A8s=20peu?=
 =?UTF-8?q?=20probable.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/public/balises.php | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index aebf986f55..c124a7dcfe 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -765,8 +765,14 @@ function balise_SELF_dist($p) {
 //
 // http://doc.spip.org/@balise_CHEMIN_dist
 function balise_CHEMIN_dist($p) {
-	$p->code = interprete_argument_balise(1,$p);
-	$p->code = 'find_in_path(' . $p->code .')';
+	$arg = interprete_argument_balise(1,$p);
+	if (!$arg) {
+		erreur_squelette(_L('Argument manquant dans la balise @balise@', 
+					array('balise' => ' CHEMIN')),
+			$p->bid_boucle);
+		$p->code = "''";
+	} else 
+	  $p->code = 'find_in_path(' . $arg .')';
 
 	#$p->interdire_scripts = true;
 	return $p;
@@ -1022,7 +1028,14 @@ function balise_INCLURE_dist($p) {
 		$p->code = "recuperer_fond('',".$l.", false, " . sql_quote($connect) .")";
 	} else {
 		$n = interprete_argument_balise(1,$p);
-		$p->code = '(($c = find_in_path(' . $n . ')) ? spip_file_get_contents($c) : "")';
+		if (!$n) {
+			erreur_squelette(_L('Argument manquant dans la balise @balise@', 
+					array('balise' => ' CHEMIN')),
+			$p->bid_boucle);
+			$p->code = "''";
+		} else 
+		
+			$p->code = '(($c = find_in_path(' . $n . ')) ? spip_file_get_contents($c) : "")';
 	}
 
 	$p->interdire_scripts = false; // la securite est assuree par recuperer_fond
-- 
GitLab