I'm using $ulist to replace specific bans with more general bans that I want for a certain channel.

When someone puts, for example, *!*@219.92.200.20 ban, I do a $ulist( $banmask , 8 (my level of bans) , 1(-as many as there are) ) to get the appropriate ban mask to replace the specific one.

But, as soon as I use in the user list a very particular type of mask, it messes up the list.

For example:

Say I added a mask to my list , *@219.9?.* , with a level.

[01:08:33] * Roy sets mode: +b *!*@219.92.200.20
Setting *!*@219.9?.* instead of *!*@219.92.200.20
[01:08:35] * Roy sets mode: -b+b *!*@219.92.200.20 *!*@219.9?.*

This works, but I added to the list *!*@*218*58*81*
(Or any mask type that has *!*@*something*)
Result was:

[18:58:19] * Roy sets mode: +b *!*@219.92.200.20
Setting *!*@219.9?.* instead of *!*@219.92.200.20
[18:58:21] * Roy sets mode: -b+b *!*@219.92.200.20 *!*@219.9?.*
Setting *!*@*218*58*81* instead of *!*@219.9?.*
[18:58:23] * Roy sets mode: -b *!*@219.9?.*

Last set of events shows that this mask came out instead of the other mask.

I think the way to reproduce it would be to add 2 masks to the user list, the first one having *!*@*something*something* (just to see the bug), the other one being some generic mask..
You can use the masks from my example
Take the second mask and do a $ulist search on it, you'll be surprised to get the first mask instead of the second.

Thanks, Roy