locale i isalnum() problem

Andrzej Krzysztofowicz ankry w green.mif.pg.gda.pl
Pon, 18 Mar 2002, 11:29:00 CET


> 
> On Sun, Mar 17, 2002 at 08:50:21PM +0100, Andrzej Krzysztofowicz wrote:
> > > 
> > > 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) 
> 
> Bo to jest MAXINT.

No coz, myslalem, ze MAXINT=2147483647 ...

> > 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).
> 
> Bo isalnum() odowołuje się do tablicy. Jeżeli wyjeżdżasz 2giga za
> tablice różne rzeczy mogą się dziać.

W takim razie bardziej sensownym zachowaniem by mi sie wydawalo:
- SIGSEGV (tu rzeczywiscie moglo by sie czasem sypac, a czasem nie)
  ale mimo usilnych staran nie udalo mi sie tego uzyskac ani razu
- ignorowanie starszych bitow (nie wyjasnia roznic w zachowaniu
  tego samego kodu w roznych wersjach joe).

No nic, widac, ze trzeba przejrzec nieco kod joe i skrobnac latke z
komentarzem do autorow. W tym tygodniu tego nie zrobie, ale pewnie na mnie
padlo...

-- 
=======================================================================
  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