On 5 April 2010 12:19, Mike Gran <[email protected]> wrote:

> >From: Linas Vepstas <[email protected]>
> >
> >I've found the following bug/feature with guile-1.8.7 and would like to
> solicit for comments.
> >Is this a guile bug? What's the proper work-around?
> >
> >I've got a C program that does a setlocale (LC_ALL, "");   printf ("%f",
> 0.2000);
> >
> >In the de_DE.utf8 locale, the result of the print is 0,2000  using a
> comma, since
> >the comma is the "decimal separator" in most European locales. This
> numeric
> >string is then passed to scm_eval_string() which pukes on it, because it
> does not
> >recognize 0,2  as a valid number.    This can be confirmed at the guile
> command
> >line interpreter, which pukes on guile> (+ 0,2 0,2)  but works fine on (+
> 0.2 0.2)
> >even in the de_DE locale.
> >
> >Is this really the expected behaviour? Is there a suggested work-around?
>
> I know that for the pre-2.0 Guile, I tried to punt that problem upstream to
> libunistring, but, it is not likely to be implemented in libunistring.
>
> http://savannah.gnu.org/support/?106998
>
> But, I never got around to working on it, myself.
>
>
Yeah, maybe I should say "never mind" at this point, since I now realize
that
my suggestion would make scheme source code  depend on locale, which
would break source code as it moves across national boundaries... Silly me.
Moral of the story: mixing printf with guile is a bad idea.

--linas

Reply via email to