On Thu, May 20, 2010 at 10:12:50PM +0200, Bram Moolenaar wrote: > > If the locale is changed in gvim via ":lang" to a locale which uses > > comma for the decimal separator, then floating point numbers are no > > longer usable. This only happens with the ":lang $locale" variant, > > since that sets $LANG before calling gtk_set_locale(). > > > > env LANG=C gvim > > :lang es_ES.UTF-8 > > :lang messages C " so errors are in English > > :echo ceil(1.2) > > E806: using Float as a String > > E116: Invalid arguments for function ceil(1.2) > > E15: Invalid expression: ceil(1.2) > > :echo str2float('1.2') > > 1,0 > > :echo str2float('1,2') > > 1,2 > > > > Attached patch fixes the issue by ensuring $LC_NUMERIC is set to C if > > the LC_ALL version of :lang is called. > > Thanks. In other places we do this: > > setlocale(LC_NUMERIC, "C"); > > Thus I think we should do the same in this place.
That won't work here. The issue is specifically to do with the environment variables present when gtk_set_locale is called. In fact, there's already an instance of “setlocal(LC_NUMERIC, "C");” a few lines above the code my patch adds. -- James GPG Key: 1024D/61326D40 2003-09-02 James Vega <james...@debian.org>
signature.asc
Description: Digital signature