diff --git a/inc-html-squel.php3 b/inc-html-squel.php3 index d5d94af46fe2b3fd883c652651086c261c632632..65608e83245e792505a2bcc60fc91c682767b315 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();