[spip-dev] Bug: balise ayant en argument: balise + #ENV

Je viens de remarquer un comportement bizarre du compilateur, qui
s'applique dans des conditions très précises :

- une balise quelconque,
- suivie (directement ou pas) de #ENV{quelquechose},
- le tout en argument d'une première balise (#MODELE ou #SET par
   exemple)

Cela provoque la non-interprétation de la première balise.

Par exemple: #SET{toto, #TITRE-#ENV{truc}}
Quand on fait #GET{toto}, le résultat produit est: #TITRE-blah
c'est-à-dire que la chaîne "#TITRE" est produite telle quelle.

Ce qui est bizarre, c'est que :
- Hors d'un argument de balise (donc dans le squelette directement),
   pas de bug.
- Avec d'abord le #ENV puis la balise, pas de bug
- Avec deux balises non-#ENV, pas de bug
- Avec deux balises #ENV, pas de bug

Insolite !

Je viens de remarquer un comportement bizarre du compilateur, qui
s'applique dans des conditions très précises :

- une balise quelconque,
- suivie (directement ou pas) de #ENV{quelquechose},
- le tout en argument d'une première balise (#MODELE ou #SET par
  exemple)

Cela provoque la non-interprétation de la première balise.

Par exemple: #SET{toto, #TITRE-#ENV{truc}}
Quand on fait #GET{toto}, le résultat produit est: #TITRE-blah
c'est-à-dire que la chaîne "#TITRE" est produite telle quelle.

et avec [(#TITRE)] et d'autres variantes de crochets et parenthèses ?

CLaude

23/01/11, dlatr:

et avec [(#TITRE)] et d'autres variantes de crochets et parenthèses ?

Ça bug pareil si je me souviens bien, ce qui semble compter est l'ordre
d'évaluation des deux. Mais n'hésite pas à faire d'autres tests.

23/01/11, dlatr:

et avec [(#TITRE)] et d'autres variantes de crochets et parenthèses ?

je n'ai rien sous la main mais en imbriquant ?

#SET{titi, #TITRE}
#SET{toto, #GET{titi}-#ENV{truc}}

jamais essayé ce machin barbare :slight_smile:

23/01/11, dlatr:

#SET{titi, #TITRE}
#SET{toto, #GET{titi}-#ENV{truc}}

jamais essayé ce machin barbare :slight_smile:

Je l'utilise sur plaztika.com de cette manière :
#MODELE{minichat,ressource=#NOM/#ENV{onglet}}

Pour l'anecdote, ça permet que les visiteurs arrivent sur le chat avec
comme ressource: "Karina García Domínguez/bio" par exemple, mais ça
produit #NOM/bio à la place.

(En attendant j'utilise « #ENV{onglet}: #NOM » du coup.)

oui.
utiliser :
   [(#SET{toto, #TITRE[-(#ENV{truc})]})]