MOO-cows Mailing List Archive
[Prev][Next][Index][Thread]
Re: Case (in)sensitivity
Message-ID: red-45-msg951205191957MTP[01.51.00]000000b9-21848
> If you are using the 1.7.9p2 server version, replace lines like:
> if( "Sinjin" in (player_name_list))
>
> with:
> if( is_member( "Sinjin", player_name_list ))
>
> If you are not using 1.7.9p2 or better, upgrade. ;) The 1.7.8p4 version
> of the above line is:
> if( (i = "Sinjin" in (player_name_list)) && !strcmp( "Sinjin",
> player_name_list[i] ))
and if player_name_list happens to be {"fribble","sinJin","Sinjin"},
you lose.
Try
@program foo_utils:member
elt = args[1];
lst = args[2];
j = 0;
while ( (i=elt in lst) && strcmp(elt, lst[i]) != 0)
j = j + i;
lst[1..i]={};
endwhile
return i ? j + i | 0;
On second thought, just upgrade. :-)
- - - - - - - - -
Random style peeve #227:
!strcmp(x,y)
is something that will get you shot in certain parts of the world
(Hint: are we comparing for x == y or x != y? Hard to tell, no?)
strcmp(x,y) == 0
uses exactly the same number of ticks and has the advantage of
looking a lot more like an equality test (which it is)
Home |
Subject Index |
Thread Index