On 07/15/2014 05:33 PM, Assaf Gordon wrote: > Hello Eric, Pádraig, > > On 07/15/2014 12:33 AM, Eric Blake wrote: >> Here's some real errors: >> > <...> >> >> Ouch. isdigit() is fairly safe (because POSIX limits it to returning >> true for exactly 10 bytes that can't become negative when promoted to >> int), but isblank((int)char) is an absolute bug - there are locales >> where isblank(255) != isblank((int)(char)255), because char is signed >> and the value promotes to -1 which is indistinguishable from EOF. Are >> you sure this code shouldn't be using gnulib's c_isdgit and c_isblank >> instead? And if you DO want locale comparisons, then use isblank >> (to_uchar (**endptr)). >> > > Attached is a patch to replace isdigit/isblank with c_isdigit/c_isblank in > numfmt. > > Since numfmt currently does not handle multibyte characters, it is simpler > (and quicker for this release) to force the C locale calls, as you suggested. > I hope in the future to add true multibyte support. > > Regards, > -gordon
Thanks Assaf and Eric. That looks good to include in the release. No need to respin a snapshot for this though I think. thanks, Pádraig.