|
From: | John Saalwaechter |
Subject: | ls problem due to bad IRIX locale information |
Date: | Thu, 13 May 2004 19:56:14 -0500 |
By setting LC_NUMERIC or LANG to en_US, and setting LS_BLOCK_SIZE to "'1", I get the expected filesize output (i.e. 123456789 prints out as "123,456,789") on Solaris and Linux.
IRIX refused to work properly (at least IRIX 6.5.9m). I tracked it down to the fact that IRIX has incorrect data for the "grouping" member of the "lconv" struct that's returned by localeconv(). All the locales in IRIX return a null grouping. This looks like a known problem in IRIX from back to 1996! (http://groups.google.com/groups?selm=4hlv4l%244vm%40fido.asd.sgi.com). The grouping for en_US should be {3,0}. But *all* locales in IRIX return {0}.
This bad data in IRIX locales causes the logic in the group_number() function in lib/human.c to fail. I'm not sure what the philosophy is about coding around OS deficiencies, but I at least wanted to get this documented on the mailing list for others trying to track down this problem.
_________________________________________________________________Express yourself with the new version of MSN Messenger! Download today - it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
[Prev in Thread] | Current Thread | [Next in Thread] |