locale i isalnum() problem
Andrzej Krzysztofowicz
ankry w green.mif.pg.gda.pl
Nie, 17 Mar 2002, 20:50:21 CET
>
> On Sat, Mar 16, 2002 at 21:21:17 +0100, Andrzej Krzysztofowicz wrote:
>
> > > czyli wywołanie isalnum(2147483646) jest nielegalne.
> >
> > Ano.
> > Czyli caly joe jest pod tym katem do przejrzenia...
> >
> > Ciekawe tylko, co sie zmienilo w joe, ze zachowanie tej funkcji
> > z wersji na wersje (2.9.6 -> 2.9.7) uleglo tak drastycznej zmianie...
>
> 2147483647 to górny zakres signed long int. Wygląda jakby się coś
> przekręciło.
Nic sie nie przekrecilo. Autorzy joe uzywaja 2147483646 (nie wiem czemu
nazywajac ja MAXINT) w celu zwrocenia braku wartosci w funkcjach, ktore
zazwyczaj zwracaja wartosc (np. poprzedni znak w tekscie w stosunku do
pierwszego, albo nastepny w stosunku do ostatniego).
Wyglada na dzialanie swiadome, choc moze nie do konca przemyslane.
Ciekaw jestem, czemu w starszych wersjach joe isalnum(2147483646)
zwracalo 0 niezaleznie od ustawien LANG, a w nowszych dla LANG=pl_PL zwraca
8 (dla LANG="" zwraca nadal 0).
Nie widac zadnych istotnych modyfikacji w wywolywaniu funkcji bibliotecznych
w tej okolicy (zreszta w ogole malo jest tu modyfikacji poza formatowaniem
kodu), a zmiana jest wyrazna.
Stad moje pytanie.
--
=======================================================================
Andrzej M. Krzysztofowicz ankry w mif.pg.gda.pl
phone (48)(58) 347 14 61
Faculty of Applied Phys. & Math., Technical University of Gdansk
Więcej informacji o liście dyskusyjnej pld-devel-pl