mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-08 06:53:45 +00:00
ICU-21429 Allow timezones with max 2 digits at the end to
This commit is contained in:
parent
d5d0b2d811
commit
43276e8c34
1 changed files with 9 additions and 0 deletions
|
@ -727,8 +727,10 @@ static char *gTimeZoneBufferPtr = NULL;
|
|||
|
||||
#if !U_PLATFORM_USES_ONLY_WIN32_API
|
||||
#define isNonDigit(ch) (ch < '0' || '9' < ch)
|
||||
#define isDigit(ch) ('0' <= ch && ch <= '9')
|
||||
static UBool isValidOlsonID(const char *id) {
|
||||
int32_t idx = 0;
|
||||
int32_t idxMax = 0;
|
||||
|
||||
/* Determine if this is something like Iceland (Olson ID)
|
||||
or AST4ADT (non-Olson ID) */
|
||||
|
@ -736,6 +738,13 @@ static UBool isValidOlsonID(const char *id) {
|
|||
idx++;
|
||||
}
|
||||
|
||||
/* Allow at maximum 2 numbers at the end of the id to support zone id's
|
||||
like GMT+11. */
|
||||
idxMax = idx + 2;
|
||||
while (id[idx] && isDigit(id[idx]) && idx < idxMax) {
|
||||
idx++;
|
||||
}
|
||||
|
||||
/* If we went through the whole string, then it might be okay.
|
||||
The timezone is sometimes set to "CST-7CDT", "CST6CDT5,J129,J131/19:30",
|
||||
"GRNLNDST3GRNLNDDT" or similar, so we cannot use it.
|
||||
|
|
Loading…
Add table
Reference in a new issue