Invalid tm_zone from localtime() when TZ is not set
Hans-Bernhard Bröker
HBBroeker@t-online.de
Thu May 26 17:21:00 GMT 2016
Am 26.05.2016 um 08:54 schrieb KOBAYASHI Shinji:
> On Wed, 25 May 2016 22:02:50 +0200, Hans-Bernhard Bröker wrote:
>> On May 25 11:28, KOBAYASHI Shinji wrote:
> - isupper is a macro which classifies ASCII integer values by table
> lookup.
> - It is defined only when isascii(c) is true or c is EOF.
That restriction is artificial, at best. I might go so far as to say
it's a direct standard violation since, according to the C Standard, the
<ctype.h> macros/functions are defined for the entire range of unsigned
char, not just ASCII's 0 ... 127.
It's also untrue. Once you set the locale and the console character set
accordingly, Cygwin's isupper() does work for characters outside the
7-bit ASCII range, too:
$ ./tisupper.exe a A b B ö à Ã
a: isupper=0
A: isupper=1
b: isupper=0
B: isupper=1
ö: isupper=0
Ã: isupper=1
Ã: isupper=0
This is with a ISO-Latin-15 mintty, and LANG set to de_DE (note: no
UTF-8), running this program:
#include <stdio.h>
#include <ctype.h>
#include <locale.h>
int main(int argc, char **argv)
{
int i = 0;
setlocale(LC_ALL, "");
for (i = 1; i < argc; i++) {
printf("%c: isupper=%d\n",
argv[i][0],
isupper((unsigned char)argv[i][0])
);
}
return 0;
}
> On Wed, 25 May 2016 10:44:30 +0200, Corinna Vinschen wrote:
>> However, testing this with GLibc it turns out that GLibc's towlower does not
>> transform the character but returns 0xff21. Can anybody explain to me why?
>
> It seems that it depends on locale. The man page (on Linux) says:
>
> The behavior of towlower() depends on the LC_CTYPE category of the
> current locale.
So does the implementation in Cygwin. The result of my little test is
influenced by locale. E.g. in Russian locale, Ã is no longer classified
an upper-case letter.
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list