From ef0065a312c4e1488fa6f55b3ce0d56386b99793 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Sat, 13 Aug 2005 21:52:18 +0000
Subject: [PATCH] =?UTF-8?q?attention,=20il=20faut=20accepter=20{#ENV{a}/#E?=
 =?UTF-8?q?NV{b}}=20m=C3=AAme=20si=20c'est=20gal=C3=A8re=20pour=20W*nd*ws?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inc-html-squel.php3 | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/inc-html-squel.php3 b/inc-html-squel.php3
index d5d94af46f..65608e8324 100644
--- a/inc-html-squel.php3
+++ b/inc-html-squel.php3
@@ -188,12 +188,14 @@ function phraser_args($texte, $fin, $sep, $result, &$pointeur_champ) {
       if ($fonc[0] == "|") $fonc = ltrim(substr($fonc,1));
       $res = array($fonc);
       $args = $suite ;
-      if (($suite[0] != '{') /* || !eregi("^[?A-Z0-9_]*$", $fonc) */)
-	{ if (!$match[1])
+      // cas du filtre sans argument ou du critere /
+      if (($suite[0] != '{')  || ($fonc  && $fonc[0] == '/'))
+	{ 
+	  // si pas d'argument, alors il faut une fonction ou un double |
+	  if (!$match[1])
 	    erreur_squelette(_T('zbug_info_erreur_squelette'), $texte);
-	  // suite zarbi, c'est un critere infixe comme "/"
-	  /* ca serait pas mal d'expliquer, la c'est abscons */
-	  if (!preg_match(',^[)|],', $suite)) break;
+	  // pas d'arg et pas d'autres filtres ==> critere infixe comme "/"
+          if ((!$suite) || strpos(")|", $suite[0]) === false) break;
 	} else {
 	$args = ltrim(substr($suite,1)); 
 	$collecte = array();
-- 
GitLab