BUG lors de la suppression d'un argument de balise (`class Pile`)
Bonjour,
J'utilise cette super class Pile
pour manipuler facilement les arguments d'une balise.
Je rencontre un bug, quand j'utilise la méthode recuperer_et_supprimer_argument_balise
qui à comme paramètre &$p
.
Le problème vient de la méthode supprimer_argument_balise
https://git.spip.net/spip-contrib-extensions/saisies/src/commit/083867b77cc24b81c4ebba2887d14ac0c80fda6c/balise/saisie.php#L59 qui peut renvoyer null
si l'argument n’existe pas. (alors qu'il faudrait renvoyer $p
dans tous les cas à cause de &$p
).
Dans mon cas, j'ai modifié par le code suivant pour que ça fonctionne :
/*
Code d'origine qui BUG
if (!isset($p->param[0])) {
return null;
}
if (!isset($p->param[0][$pos])) {
return null;
}
if ($pos == 0) {
array_shift($p->param[0]);
} else {
$debut = array_slice($p->param[0], 0, $pos);
$fin = array_slice($p->param[0], $pos + 1);
$p->param[0] = array_merge($debut, $fin);
}
return $p;
*/
if ( isset($p->param[0]) && isset($p->param[0][$pos]) ) {
if ($pos == 0) {
array_shift($p->param[0]);
} else {
$debut = array_slice($p->param[0], 0, $pos);
$fin = array_slice($p->param[0], $pos + 1);
$p->param[0] = array_merge($debut, $fin);
}
}
return $p;
Qu'en pensez vous ?