TZ: Replace unreliable isupper calls on wchars
In case the TZ variable is empty, Cygwin fetches timezone info from Windows. Extracting the timezone short name uses isupper on wide chars. Replace with explicit check for A <= character <= Z to be independent of undefined behaviour. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
@ -1543,7 +1543,8 @@ tzsetwall (void)
|
||||
GetTimeZoneInformation(&tz);
|
||||
dst = cp = buf;
|
||||
for (src = tz.StandardName; *src; src++)
|
||||
if (isupper(*src)) *dst++ = *src;
|
||||
if (*src >= L'A' && *src <= L'Z')
|
||||
*dst++ = *src;
|
||||
if ((dst - cp) < 3)
|
||||
{
|
||||
/* In non-english Windows, converted tz.StandardName
|
||||
@ -1561,7 +1562,8 @@ tzsetwall (void)
|
||||
cp = strchr(cp, 0);
|
||||
dst = cp;
|
||||
for (src = tz.DaylightName; *src; src++)
|
||||
if (isupper(*src)) *dst++ = *src;
|
||||
if (*src >= L'A' && *src <= L'Z')
|
||||
*dst++ = *src;
|
||||
if ((dst - cp) < 3)
|
||||
{
|
||||
/* In non-english Windows, converted tz.DaylightName
|
||||
|
Reference in New Issue
Block a user