[GRASS5] [bug #3591] (grass) d.vect.thematic (and other scripts): LC_NUMERIC setting not used in my Debian
Markus Neteler
neteler at itc.it
Wed Aug 31 16:22:40 EDT 2005
On Wed, Aug 31, 2005 at 09:00:17PM +0100, Glynn Clements wrote:
>
> Moritz Lennert wrote:
>
> > >>this bug's URL: http://intevation.de/rt/webrt?serial_num=3591
> > >>-------------------------------------------------------------------------
> > >>
> > >>Subject: d.vect.thematic (and other scripts): LC_NUMERIC setting not
> > >>used in my Debian
> > >
> > >
> > > GRASS doesn't use any of the locale categories except for LC_MESSAGES
> > > (if it was built using --with-nls).
>
> Actually, I've just noticed that it also uses LC_CTYPE (again, only if
> built using --with-nls):
>
> revision 1.8
> date: 2004/08/27 11:16:51; author: markus; state: Exp; lines: +1 -0
> added LC_TYPE for japanese
To what file do you refer?
Aha:
2004-08-27 13:16 markus
* lib/gis/locale.c: added LC_TYPE for japanese
The change was actually
~/grass61/lib/gis > cvs diff -r 1.7 -r 1.8 locale.c
Index: locale.c
===================================================================
RCS /home/grass/grassrepository/grass6/lib/gis/locale.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- locale.c 13 May 2002 07:02:19 -0000 1.7
+++ locale.c 27 Aug 2004 11:16:51 -0000 1.8
@@ -35,6 +35,7 @@
if (!initialized)
{
+ setlocale(LC_CTYPE, "");
setlocale(LC_MESSAGES, "");
initialized = 1;
}
> This looks pretty dubious, as it changes the behaviour of many of the
> <ctype.h> functions (isalpha(), tolower() etc) as well as
> strcasecmp(), but GRASS' built-in string handling always assumes ASCII
> (e.g. G_strcasecmp() only considers A-Z/a-z regardless of the locale).
So, should we remove LC_CTYPE?
> > mlennert at moritz:~/CVS/GRASS/grass6/scripts$ grep -R LC_NUMERIC *
> > d.correlate/d.correlate:export LC_NUMERIC=C
> > d.out.png/d.out.png:export LC_NUMERIC=C
> > d.resize/d.resize:export LC_NUMERIC=C
> > d.vect.thematic/d.vect.thematic:export LC_NUMERIC=C
> > i.fusion.brovey/i.fusion.brovey:export LC_NUMERIC=C
>
> [snip]
>
> > So it is used quite a lot in scripts.
>
> In all cases, it's forced to "C", which is the same as it not being
> used. Scripts do this to prevent other programs (e.g. awk) from using
> the user's LC_NUMERIC settings, so that they don't end up passing
> floating-point values which use a comma to programs which expect a
> dot.
>
I have added it everywhere upon your suggestion:
http://grass.itc.it/pipermail/grass5/2005-March/017637.html
Maybe a misunderstanding. What do do now?
Markus
More information about the grass-dev
mailing list