[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-trivial] [Qemu-devel] [PATCH] Fix conversion from lower to upp
Re: [Qemu-trivial] [Qemu-devel] [PATCH] Fix conversion from lower to upper case with Turkish locale
Tue, 27 Mar 2012 19:28:32 +0200
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:22.214.171.124) Gecko/20120313 Thunderbird/3.1.20
Am 27.03.2012 19:09, schrieb Eric Blake:
On 03/27/2012 10:57 AM, Stefan Weil wrote:
Some locale settings let make fail or create wrong results
because tr '[:lower:]' '[:upper:]' which is used to convert
from lower to upper case depends on the locale.
With locale tr_TR.UTF-8, lower case 'i' is not converted to 'I'.
This results in wrong entries in config-host.h like these ones:
#define CONFIG_QEMU_PREFiX "/usr/local"
#define CONFIG_QEMU_BiNDiR "/usr/local/bin"
for card in $audio_card_list; do
- def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
+ def=CONFIG_`echo $card | tr '[a-z]' '[A-Z]'`
NACK. POSIX says that 'tr a-z' is unspecified outside of the POSIX
locale, but without setting LC_ALL=C, you aren't guaranteeing the POSIX
locale. If you want to be portable without use of [:lower:], you have
to spell it out, with abcdefghijklmnopqrstuvwxyz.
Thanks for your review. I don't think that QEMU will run on
systems with EBCDIC or other strange character sets where
[a-z] would not work, but of course settings LC_ALL=C is
better. So I have sent a new patch which adds this to every
invocation of tr.