Subtilité de matchattr
#1
Hello Smile

J'ai découvert il y a peu de temps une petite subtilité de matchattr qui pourrait s'avérer gênante si on y prend pas garde.
On m'avait demandé un script qui doit agir si la personne n'a pas d'accès halfop (ou plus) sur un canal (ou de manière globale).
Il y avait donc dans la procédure:
tcl
if {[matchattr $handle -l&-l $chan]} {


Donc en toute logique, on s'attend à obtenir 1 si la personne n'a ni d'accès halfop sur l'eggdrop ni sur le canal visé.

Sauf que... Si l'utilisateur est inconnu ($handle *), la procédure matchattr retourne 0, donc pour le script cette personne a un accès.

Il faut donc toujours vérifier que l'utilisateur existe lorsqu'on travaille avec des absences de flags:
tcl
if {$handle ne "*" && [matchattr $handle -l&-l $chan]} {



J'ai ouvert une issue et proposé une PR pour que matchattr retourne -1 plutôt que 0 si l'utilisateur est inconnu.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté