Proceed to look for the next timezone when matching a localized

Windows timezone name where the information in the registry is
incomplete, instead of aborting.

This fixes cases when the registry information is incomplete for
a timezone that is alphabetically before the one that is in use.

Per report from Alexander Forschner
This commit is contained in:
Magnus Hagander 2010-04-08 11:26:00 +00:00
parent 346dd12c9f
commit 266bf09a16

View File

@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/timezone/pgtz.c,v 1.48.2.3 2010/04/06 20:35:13 mha Exp $ * $PostgreSQL: pgsql/src/timezone/pgtz.c,v 1.48.2.4 2010/04/08 11:26:00 mha Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -1076,7 +1076,7 @@ identify_system_timezone(void)
(errmsg_internal("could not query value for 'std' to identify Windows timezone \"%s\": %i", (errmsg_internal("could not query value for 'std' to identify Windows timezone \"%s\": %i",
keyname, (int) r))); keyname, (int) r)));
RegCloseKey(key); RegCloseKey(key);
break; continue; /* Proceed to look at the next timezone */
} }
if (strcmp(tzname, zonename) == 0) if (strcmp(tzname, zonename) == 0)
{ {
@ -1093,7 +1093,7 @@ identify_system_timezone(void)
(errmsg_internal("could not query value for 'dlt' to identify Windows timezone \"%s\": %i", (errmsg_internal("could not query value for 'dlt' to identify Windows timezone \"%s\": %i",
keyname, (int) r))); keyname, (int) r)));
RegCloseKey(key); RegCloseKey(key);
break; continue; /* Proceed to look at the next timezone */
} }
if (strcmp(tzname, zonename) == 0) if (strcmp(tzname, zonename) == 0)
{ {