locale i isalnum() problem

Andrzej Krzysztofowicz ankry at green.mif.pg.gda.pl
Sun Mar 17 20:50:21 CET 2002


> 
> 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 at mif.pg.gda.pl
  phone (48)(58) 347 14 61
Faculty of Applied Phys. & Math.,   Technical University of Gdansk



More information about the pld-devel-pl mailing list