qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] QEMU produces invalid JSON due to locale-dependent code


From: Markus Armbruster
Subject: Re: [Qemu-devel] QEMU produces invalid JSON due to locale-dependent code
Date: Mon, 24 Aug 2015 19:07:38 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Alberto Garcia <address@hidden> writes:

> On Mon 24 Aug 2015 12:05:02 PM CEST, Markus Armbruster wrote:
>
>>> This seems to happen because of GTK+ calling setlocale(). The easiest
>>> solution is probably to call setlocale(LC_NUMERIC, "C") before
>>> snprintf() (or at start-up ui/gtk.c), but opinions are welcome.
>>
>> A library calling setlocale() is a big no-no in my book.
>>
>> Overriding LC_NUMERIC as you propose should fix this particular bug.
>>However, exposing unprepared code to locale is not a good idea for
>>other categories as well.  LC_COLLATE and LC_CTYPE are even sneakier
>>sources of bugs in my experience.  I'd really, really prefer to stay in
>>the "C" locale *completely*.
>
> You can prevent GTK+ from calling setlocale() by using
> gtk_disable_setlocale() before gtk_init(), but note that setlocale() is
> needed for gettext.

We can

(A) Internationalize our complete code base

(B) Run in the C locale

    Breaks GTK's internationalization.

(C) Run in a mixed locale

    Whenever something breaks, we switch another LC_ to the C locale.

    Can partially break GTK's internationalization.

I happily concede that (A) would be best.  Until the manpower to pull it
off appears, I recommend (B), because it's safer than (C), and avoids
inconsistent localization, such as German messages combined with
non-German number formatting.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]