[spip-dev] un souci de compilo (esj si tu m'entends)

Quand je veux créer un critère {xxxx a,b,c}, le phraseur_html me crée la structure suivante :

op => xxxx
param => (
Texte ( “a” ),

Texte ( “b” ),

Texte ( “c” ),

)

Si je remplace a par 1, à cause de la détection un peu élémentaire des critères {1,2} et {n-1,1} (cf. http://core.spip.org/trac/spip/changeset/4605 ), il me produisait :

op => “xxxx 1”
param => (
Texte ( “b” ),

Texte ( “c” ),

)

j’ai tenté de corriger ça en affinant la détection du cas http://core.spip.org/trac/spip/changeset/16827 ; ça semble fonctionner.

Maintenant je suis confronté au problème suivant :

{xxxx a,“b”}

me donne bien

op => “xxxx”
param => (
Texte ( “a” ),

Texte ( “b” ),

)

mais

{xxxx “a”,“b”}

me donne

op => “xxxx”
param => (
Texte ( ““a”” ),

Texte ( “b” ),

)

les guillemets autour du “a” ne sont donc pas analysés, contrairement à ceux qui sont autour du “b”. C’est incohérent.

et là j’avoue que j’atteins mes limites en phraseur. Il faut certainement appeler une fonction phraser_xxx(), mais laquelle et comment ?

J’ai fait un truc à l’arrache avec un code très sale, je suis certain que c’est pas la bonne méthode (cf. ligne 466 du phraseur_html) :

// une maniere un peu sale de supprimer les "’ autour de {critere “xxx”,“yyy”}
if (preg_match(’,^"’\1$,’, $m[3])) {
$c = null;
eval (’$c = '.$m[3]);
if (isset($c))
$m[3] = $c;
}
$texte->texte = $m[3];
$v[1][0]= $texte;

– Fil

Tes limites ou les siennes ?
Je ne sais pas répondre à cette question au débotté, et ne souhaite pas perdre de temps à tenter d'y répondre:
l'acharnement thérapeutique sur ce code n'est pas souhaitable, je le redis encore.

Committo,Ergo:Sum