Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2012-01-29 16:06:23 +0400
committerCorinna Vinschen <corinna@vinschen.de>2012-01-29 16:06:23 +0400
commit54c743c8f85baa08ce08ca5ae21a049f13286dec (patch)
treed10422d3a4269d40d03722bed44c263d2fd018c3 /winsup/utils/tzset.c
parent1b79b38101145f2e0414a30838b61473c09b7792 (diff)
* tzset.c: Throughout use wide characters to be locale agnostic.
(main): Call setlocale.
Diffstat (limited to 'winsup/utils/tzset.c')
-rw-r--r--winsup/utils/tzset.c940
1 files changed, 470 insertions, 470 deletions
diff --git a/winsup/utils/tzset.c b/winsup/utils/tzset.c
index 568dc47b2..a3abe315e 100644
--- a/winsup/utils/tzset.c
+++ b/winsup/utils/tzset.c
@@ -10,7 +10,8 @@ details. */
#include <errno.h>
#include <stdio.h>
-#include <string.h>
+#include <wchar.h>
+#include <locale.h>
#include <getopt.h>
#include <cygwin/version.h>
#include <windows.h>
@@ -44,449 +45,449 @@ details. */
mapping on all supported OSes. */
struct
{
- const char *win_tzkey;
- const char *country;
- const char *posix_tzid;
+ PCWSTR win_tzkey;
+ PCWSTR country;
+ PCWSTR posix_tzid;
} tzmap[] =
{
- { "AUS Central Standard Time", "", "Australia/Darwin" },
- { "AUS Central Standard Time", "AU", "Australia/Darwin" },
- { "AUS Eastern Standard Time", "", "Australia/Sydney" },
- { "AUS Eastern Standard Time", "AU", "Australia/Sydney Australia/Melbourne" },
- { "Afghanistan Standard Time", "", "Asia/Kabul" },
- { "Afghanistan Standard Time", "AF", "Asia/Kabul" },
- { "Alaskan Standard Time", "", "America/Anchorage" },
- { "Alaskan Standard Time", "US", "America/Anchorage America/Juneau America/Nome America/Sitka America/Yakutat" },
- { "Arab Standard Time", "", "Asia/Riyadh" },
- { "Arab Standard Time", "BH", "Asia/Bahrain" },
- { "Arab Standard Time", "KW", "Asia/Kuwait" },
- { "Arab Standard Time", "QA", "Asia/Qatar" },
- { "Arab Standard Time", "SA", "Asia/Riyadh" },
- { "Arab Standard Time", "YE", "Asia/Aden" },
- { "Arabian Standard Time", "", "Asia/Dubai" },
- { "Arabian Standard Time", "AE", "Asia/Dubai" },
- { "Arabian Standard Time", "OM", "Asia/Muscat" },
- { "Arabian Standard Time", "ZZ", "Etc/GMT-4" },
- { "Arabic Standard Time", "", "Asia/Baghdad" },
- { "Arabic Standard Time", "IQ", "Asia/Baghdad" },
- { "Argentina Standard Time", "", "America/Buenos_Aires" },
- { "Argentina Standard Time", "AR", "America/Buenos_Aires America/Argentina/La_Rioja America/Argentina/Rio_Gallegos America/Argentina/Salta America/Argentina/San_Juan America/Argentina/San_Luis America/Argentina/Tucuman America/Argentina/Ushuaia America/Catamarca America/Cordoba America/Jujuy America/Mendoza" },
- { "Armenian Standard Time", "AM", "Asia/Yerevan" },
- { "Atlantic Standard Time", "", "America/Halifax" },
- { "Atlantic Standard Time", "BM", "Atlantic/Bermuda" },
- { "Atlantic Standard Time", "CA", "America/Halifax America/Glace_Bay America/Goose_Bay America/Moncton" },
- { "Atlantic Standard Time", "GL", "America/Thule" },
- { "Azerbaijan Standard Time", "", "Asia/Baku" },
- { "Azerbaijan Standard Time", "AZ", "Asia/Baku" },
- { "Azores Standard Time", "", "Atlantic/Azores" },
- { "Azores Standard Time", "GL", "America/Scoresbysund" },
- { "Azores Standard Time", "PT", "Atlantic/Azores" },
- { "Bahia Standard Time", "", "America/Bahia" },
- { "Bahia Standard Time", "BR", "America/Bahia" },
- { "Bangladesh Standard Time", "", "Asia/Dhaka" },
- { "Bangladesh Standard Time", "BD", "Asia/Dhaka" },
- { "Bangladesh Standard Time", "BT", "Asia/Thimphu" },
- { "Canada Central Standard Time", "", "America/Regina" },
- { "Canada Central Standard Time", "CA", "America/Regina America/Swift_Current" },
- { "Cape Verde Standard Time", "", "Atlantic/Cape_Verde" },
- { "Cape Verde Standard Time", "CV", "Atlantic/Cape_Verde" },
- { "Cape Verde Standard Time", "ZZ", "Etc/GMT+1" },
- { "Caucasus Standard Time", "", "Asia/Yerevan" },
- { "Caucasus Standard Time", "AM", "Asia/Yerevan" },
- { "Cen. Australia Standard Time", "", "Australia/Adelaide" },
- { "Cen. Australia Standard Time", "AU", "Australia/Adelaide Australia/Broken_Hill" },
- { "Central America Standard Time", "", "America/Guatemala" },
- { "Central America Standard Time", "BZ", "America/Belize" },
- { "Central America Standard Time", "CR", "America/Costa_Rica" },
- { "Central America Standard Time", "EC", "Pacific/Galapagos" },
- { "Central America Standard Time", "GT", "America/Guatemala" },
- { "Central America Standard Time", "HN", "America/Tegucigalpa" },
- { "Central America Standard Time", "NI", "America/Managua" },
- { "Central America Standard Time", "SV", "America/El_Salvador" },
- { "Central America Standard Time", "ZZ", "Etc/GMT+6" },
- { "Central Asia Standard Time", "", "Asia/Almaty" },
- { "Central Asia Standard Time", "AQ", "Antarctica/Vostok" },
- { "Central Asia Standard Time", "IO", "Indian/Chagos" },
- { "Central Asia Standard Time", "KG", "Asia/Bishkek" },
- { "Central Asia Standard Time", "KZ", "Asia/Almaty Asia/Qyzylorda" },
- { "Central Asia Standard Time", "ZZ", "Etc/GMT-6" },
- { "Central Brazilian Standard Time", "", "America/Cuiaba" },
- { "Central Brazilian Standard Time", "BR", "America/Cuiaba America/Campo_Grande" },
- { "Central Europe Standard Time", "", "Europe/Budapest" },
- { "Central Europe Standard Time", "AL", "Europe/Tirane" },
- { "Central Europe Standard Time", "CS", "Europe/Belgrade" },
- { "Central Europe Standard Time", "CZ", "Europe/Prague" },
- { "Central Europe Standard Time", "HU", "Europe/Budapest" },
- { "Central Europe Standard Time", "ME", "Europe/Podgorica" },
- { "Central Europe Standard Time", "RS", "Europe/Belgrade" },
- { "Central Europe Standard Time", "SI", "Europe/Ljubljana" },
- { "Central Europe Standard Time", "SK", "Europe/Bratislava" },
- { "Central Europe Standard Time", "SP", "Europe/Belgrade" },
- { "Central European Standard Time", "", "Europe/Warsaw" },
- { "Central European Standard Time", "BA", "Europe/Sarajevo" },
- { "Central European Standard Time", "HR", "Europe/Zagreb" },
- { "Central European Standard Time", "MK", "Europe/Skopje" },
- { "Central European Standard Time", "PL", "Europe/Warsaw" },
- { "Central Pacific Standard Time", "", "Pacific/Guadalcanal" },
- { "Central Pacific Standard Time", "AQ", "Antarctica/Macquarie" },
- { "Central Pacific Standard Time", "FM", "Pacific/Ponape Pacific/Kosrae" },
- { "Central Pacific Standard Time", "NC", "Pacific/Noumea" },
- { "Central Pacific Standard Time", "SB", "Pacific/Guadalcanal" },
- { "Central Pacific Standard Time", "VU", "Pacific/Efate" },
- { "Central Pacific Standard Time", "ZZ", "Etc/GMT-11" },
- { "Central Standard Time", "", "America/Chicago" },
- { "Central Standard Time", "CA", "America/Winnipeg America/Rainy_River America/Rankin_Inlet America/Resolute" },
- { "Central Standard Time", "MX", "America/Matamoros" },
- { "Central Standard Time", "US", "America/Chicago America/Indiana/Knox America/Indiana/Tell_City America/Menominee America/North_Dakota/Beulah America/North_Dakota/Center America/North_Dakota/New_Salem" },
- { "Central Standard Time", "ZZ", "CST6CDT" },
- { "Central Standard Time (Mexico)", "", "America/Mexico_City" },
- { "Central Standard Time (Mexico)", "MX", "America/Mexico_City America/Bahia_Banderas America/Cancun America/Merida America/Monterrey" },
- { "China Standard Time", "", "Asia/Shanghai" },
- { "China Standard Time", "CN", "Asia/Shanghai Asia/Chongqing Asia/Harbin Asia/Kashgar Asia/Urumqi" },
- { "China Standard Time", "HK", "Asia/Hong_Kong" },
- { "China Standard Time", "MO", "Asia/Macau" },
- { "Dateline Standard Time", "", "Etc/GMT+12" },
- { "Dateline Standard Time", "ZZ", "Etc/GMT+12" },
- { "E. Africa Standard Time", "", "Africa/Nairobi" },
- { "E. Africa Standard Time", "AQ", "Antarctica/Syowa" },
- { "E. Africa Standard Time", "DJ", "Africa/Djibouti" },
- { "E. Africa Standard Time", "ER", "Africa/Asmera" },
- { "E. Africa Standard Time", "ET", "Africa/Addis_Ababa" },
- { "E. Africa Standard Time", "KE", "Africa/Nairobi" },
- { "E. Africa Standard Time", "KM", "Indian/Comoro" },
- { "E. Africa Standard Time", "MG", "Indian/Antananarivo" },
- { "E. Africa Standard Time", "SD", "Africa/Khartoum" },
- { "E. Africa Standard Time", "SO", "Africa/Mogadishu" },
- { "E. Africa Standard Time", "SS", "Africa/Juba" },
- { "E. Africa Standard Time", "TZ", "Africa/Dar_es_Salaam" },
- { "E. Africa Standard Time", "UG", "Africa/Kampala" },
- { "E. Africa Standard Time", "YT", "Indian/Mayotte" },
- { "E. Africa Standard Time", "ZZ", "Etc/GMT-3" },
- { "E. Australia Standard Time", "", "Australia/Brisbane" },
- { "E. Australia Standard Time", "AU", "Australia/Brisbane Australia/Lindeman" },
- { "E. Europe Standard Time", "", "Asia/Nicosia" },
- { "E. Europe Standard Time", "CY", "Asia/Nicosia" },
- { "E. South America Standard Time", "", "America/Sao_Paulo" },
- { "E. South America Standard Time", "BR", "America/Sao_Paulo" },
- { "Eastern Standard Time", "", "America/New_York" },
- { "Eastern Standard Time", "BS", "America/Nassau" },
- { "Eastern Standard Time", "CA", "America/Toronto America/Iqaluit America/Montreal America/Nipigon America/Pangnirtung America/Thunder_Bay" },
- { "Eastern Standard Time", "TC", "America/Grand_Turk" },
- { "Eastern Standard Time", "US", "America/New_York America/Detroit America/Indiana/Petersburg America/Indiana/Vincennes America/Indiana/Winamac America/Kentucky/Monticello America/Louisville" },
- { "Eastern Standard Time", "ZZ", "EST5EDT" },
- { "Egypt Standard Time", "", "Africa/Cairo" },
- { "Egypt Standard Time", "EG", "Africa/Cairo" },
- { "Egypt Standard Time", "PS", "Asia/Gaza Asia/Hebron" },
- { "Ekaterinburg Standard Time", "", "Asia/Yekaterinburg" },
- { "Ekaterinburg Standard Time", "RU", "Asia/Yekaterinburg" },
- { "FLE Standard Time", "", "Europe/Kiev" },
- { "FLE Standard Time", "AX", "Europe/Mariehamn" },
- { "FLE Standard Time", "BG", "Europe/Sofia" },
- { "FLE Standard Time", "EE", "Europe/Tallinn" },
- { "FLE Standard Time", "FI", "Europe/Helsinki" },
- { "FLE Standard Time", "LT", "Europe/Vilnius" },
- { "FLE Standard Time", "LV", "Europe/Riga" },
- { "FLE Standard Time", "UA", "Europe/Kiev Europe/Simferopol Europe/Uzhgorod Europe/Zaporozhye" },
- { "Fiji Standard Time", "", "Pacific/Fiji" },
- { "Fiji Standard Time", "FJ", "Pacific/Fiji" },
- { "GMT Standard Time", "", "Europe/London" },
- { "GMT Standard Time", "ES", "Atlantic/Canary" },
- { "GMT Standard Time", "FO", "Atlantic/Faeroe" },
- { "GMT Standard Time", "GB", "Europe/London" },
- { "GMT Standard Time", "GG", "Europe/Guernsey" },
- { "GMT Standard Time", "IE", "Europe/Dublin" },
- { "GMT Standard Time", "IM", "Europe/Isle_of_Man" },
- { "GMT Standard Time", "JE", "Europe/Jersey" },
- { "GMT Standard Time", "PT", "Europe/Lisbon Atlantic/Madeira" },
- { "GTB Standard Time", "", "Europe/Bucharest" },
- { "GTB Standard Time", "GR", "Europe/Athens" },
- { "GTB Standard Time", "MD", "Europe/Chisinau" },
- { "GTB Standard Time", "RO", "Europe/Bucharest" },
- { "Georgian Standard Time", "", "Asia/Tbilisi" },
- { "Georgian Standard Time", "GE", "Asia/Tbilisi" },
- { "Greenland Standard Time", "", "America/Godthab" },
- { "Greenland Standard Time", "GL", "America/Godthab" },
- { "Greenwich Standard Time", "", "Atlantic/Reykjavik" },
- { "Greenwich Standard Time", "BF", "Africa/Ouagadougou" },
- { "Greenwich Standard Time", "CI", "Africa/Abidjan" },
- { "Greenwich Standard Time", "EH", "Africa/El_Aaiun" },
- { "Greenwich Standard Time", "GH", "Africa/Accra" },
- { "Greenwich Standard Time", "GM", "Africa/Banjul" },
- { "Greenwich Standard Time", "GN", "Africa/Conakry" },
- { "Greenwich Standard Time", "GW", "Africa/Bissau" },
- { "Greenwich Standard Time", "IS", "Atlantic/Reykjavik" },
- { "Greenwich Standard Time", "LR", "Africa/Monrovia" },
- { "Greenwich Standard Time", "ML", "Africa/Bamako" },
- { "Greenwich Standard Time", "MR", "Africa/Nouakchott" },
- { "Greenwich Standard Time", "SH", "Atlantic/St_Helena" },
- { "Greenwich Standard Time", "SL", "Africa/Freetown" },
- { "Greenwich Standard Time", "SN", "Africa/Dakar" },
- { "Greenwich Standard Time", "ST", "Africa/Sao_Tome" },
- { "Greenwich Standard Time", "TG", "Africa/Lome" },
- { "Hawaiian Standard Time", "", "Pacific/Honolulu" },
- { "Hawaiian Standard Time", "CK", "Pacific/Rarotonga" },
- { "Hawaiian Standard Time", "PF", "Pacific/Tahiti" },
- { "Hawaiian Standard Time", "TK", "Pacific/Fakaofo" },
- { "Hawaiian Standard Time", "UM", "Pacific/Johnston" },
- { "Hawaiian Standard Time", "US", "Pacific/Honolulu" },
- { "Hawaiian Standard Time", "ZZ", "Etc/GMT+10" },
- { "India Standard Time", "", "Asia/Calcutta" },
- { "India Standard Time", "IN", "Asia/Calcutta" },
- { "Iran Standard Time", "", "Asia/Tehran" },
- { "Iran Standard Time", "IR", "Asia/Tehran" },
- { "Israel Standard Time", "", "Asia/Jerusalem" },
- { "Israel Standard Time", "IL", "Asia/Jerusalem" },
- { "Jordan Standard Time", "", "Asia/Amman" },
- { "Jordan Standard Time", "JO", "Asia/Amman" },
- { "Kaliningrad Standard Time", "", "Europe/Kaliningrad" },
- { "Kaliningrad Standard Time", "BY", "Europe/Minsk" },
- { "Kaliningrad Standard Time", "RU", "Europe/Kaliningrad" },
- { "Kamchatka Standard Time", "", "Asia/Kamchatka" },
- { "Korea Standard Time", "", "Asia/Seoul" },
- { "Korea Standard Time", "KP", "Asia/Pyongyang" },
- { "Korea Standard Time", "KR", "Asia/Seoul" },
- { "Magadan Standard Time", "", "Asia/Magadan" },
- { "Magadan Standard Time", "RU", "Asia/Magadan Asia/Anadyr Asia/Kamchatka" },
- { "Mauritius Standard Time", "", "Indian/Mauritius" },
- { "Mauritius Standard Time", "MU", "Indian/Mauritius" },
- { "Mauritius Standard Time", "RE", "Indian/Reunion" },
- { "Mauritius Standard Time", "SC", "Indian/Mahe" },
- { "Mexico Standard Time", "", "America/Mexico_City" },
- { "Mexico Standard Time 2", "", "America/Mazatlan" },
- { "Mid-Atlantic Standard Time", "", "Atlantic/South_Georgia" },
- { "Middle East Standard Time", "", "Asia/Beirut" },
- { "Middle East Standard Time", "LB", "Asia/Beirut" },
- { "Montevideo Standard Time", "", "America/Montevideo" },
- { "Montevideo Standard Time", "UY", "America/Montevideo" },
- { "Morocco Standard Time", "", "Africa/Casablanca" },
- { "Morocco Standard Time", "MA", "Africa/Casablanca" },
- { "Mountain Standard Time", "", "America/Denver" },
- { "Mountain Standard Time", "CA", "America/Edmonton America/Cambridge_Bay America/Inuvik America/Yellowknife" },
- { "Mountain Standard Time", "MX", "America/Ojinaga" },
- { "Mountain Standard Time", "US", "America/Denver America/Boise America/Shiprock" },
- { "Mountain Standard Time", "ZZ", "MST7MDT" },
- { "Mountain Standard Time (Mexico)", "", "America/Chihuahua" },
- { "Mountain Standard Time (Mexico)", "MX", "America/Chihuahua America/Mazatlan" },
- { "Myanmar Standard Time", "", "Asia/Rangoon" },
- { "Myanmar Standard Time", "CC", "Indian/Cocos" },
- { "Myanmar Standard Time", "MM", "Asia/Rangoon" },
- { "N. Central Asia Standard Time", "", "Asia/Novosibirsk" },
- { "N. Central Asia Standard Time", "RU", "Asia/Novosibirsk Asia/Novokuznetsk Asia/Omsk" },
- { "Namibia Standard Time", "", "Africa/Windhoek" },
- { "Namibia Standard Time", "NA", "Africa/Windhoek" },
- { "Nepal Standard Time", "", "Asia/Kathmandu" },
- { "Nepal Standard Time", "NP", "Asia/Kathmandu" },
- { "New Zealand Standard Time", "", "Pacific/Auckland" },
- { "New Zealand Standard Time", "AQ", "Antarctica/South_Pole Antarctica/McMurdo" },
- { "New Zealand Standard Time", "NZ", "Pacific/Auckland" },
- { "Newfoundland Standard Time", "", "America/St_Johns" },
- { "Newfoundland Standard Time", "CA", "America/St_Johns" },
- { "North Asia East Standard Time", "", "Asia/Irkutsk" },
- { "North Asia East Standard Time", "RU", "Asia/Irkutsk" },
- { "North Asia Standard Time", "", "Asia/Krasnoyarsk" },
- { "North Asia Standard Time", "RU", "Asia/Krasnoyarsk" },
- { "Pacific SA Standard Time", "", "America/Santiago" },
- { "Pacific SA Standard Time", "AQ", "Antarctica/Palmer" },
- { "Pacific SA Standard Time", "CL", "America/Santiago" },
- { "Pacific Standard Time", "", "America/Los_Angeles" },
- { "Pacific Standard Time", "CA", "America/Vancouver America/Dawson America/Whitehorse" },
- { "Pacific Standard Time", "MX", "America/Tijuana" },
- { "Pacific Standard Time", "US", "America/Los_Angeles" },
- { "Pacific Standard Time", "ZZ", "PST8PDT" },
- { "Pacific Standard Time (Mexico)", "", "America/Santa_Isabel" },
- { "Pacific Standard Time (Mexico)", "MX", "America/Santa_Isabel" },
- { "Pakistan Standard Time", "", "Asia/Karachi" },
- { "Pakistan Standard Time", "PK", "Asia/Karachi" },
- { "Paraguay Standard Time", "", "America/Asuncion" },
- { "Paraguay Standard Time", "PY", "America/Asuncion" },
- { "Romance Standard Time", "", "Europe/Paris" },
- { "Romance Standard Time", "BE", "Europe/Brussels" },
- { "Romance Standard Time", "DK", "Europe/Copenhagen" },
- { "Romance Standard Time", "ES", "Europe/Madrid Africa/Ceuta" },
- { "Romance Standard Time", "FR", "Europe/Paris" },
- { "Russian Standard Time", "", "Europe/Moscow" },
- { "Russian Standard Time", "RU", "Europe/Moscow Europe/Samara Europe/Volgograd" },
- { "SA Eastern Standard Time", "", "America/Cayenne" },
- { "SA Eastern Standard Time", "AQ", "Antarctica/Rothera" },
- { "SA Eastern Standard Time", "BR", "America/Fortaleza America/Araguaina America/Belem America/Maceio America/Recife America/Santarem" },
- { "SA Eastern Standard Time", "GF", "America/Cayenne" },
- { "SA Eastern Standard Time", "SR", "America/Paramaribo" },
- { "SA Eastern Standard Time", "ZZ", "Etc/GMT+3" },
- { "SA Pacific Standard Time", "", "America/Bogota" },
- { "SA Pacific Standard Time", "CA", "America/Coral_Harbour" },
- { "SA Pacific Standard Time", "CO", "America/Bogota" },
- { "SA Pacific Standard Time", "EC", "America/Guayaquil" },
- { "SA Pacific Standard Time", "HT", "America/Port-au-Prince" },
- { "SA Pacific Standard Time", "JM", "America/Jamaica" },
- { "SA Pacific Standard Time", "KY", "America/Cayman" },
- { "SA Pacific Standard Time", "PA", "America/Panama" },
- { "SA Pacific Standard Time", "PE", "America/Lima" },
- { "SA Pacific Standard Time", "ZZ", "Etc/GMT+5" },
- { "SA Western Standard Time", "", "America/La_Paz" },
- { "SA Western Standard Time", "AG", "America/Antigua" },
- { "SA Western Standard Time", "AI", "America/Anguilla" },
- { "SA Western Standard Time", "AW", "America/Aruba" },
- { "SA Western Standard Time", "BB", "America/Barbados" },
- { "SA Western Standard Time", "BL", "America/St_Barthelemy" },
- { "SA Western Standard Time", "BO", "America/La_Paz" },
- { "SA Western Standard Time", "BR", "America/Manaus America/Boa_Vista America/Eirunepe America/Porto_Velho America/Rio_Branco" },
- { "SA Western Standard Time", "CA", "America/Blanc-Sablon" },
- { "SA Western Standard Time", "CW", "America/Curacao" },
- { "SA Western Standard Time", "DM", "America/Dominica" },
- { "SA Western Standard Time", "DO", "America/Santo_Domingo" },
- { "SA Western Standard Time", "GD", "America/Grenada" },
- { "SA Western Standard Time", "GP", "America/Guadeloupe" },
- { "SA Western Standard Time", "GY", "America/Guyana" },
- { "SA Western Standard Time", "KN", "America/St_Kitts" },
- { "SA Western Standard Time", "LC", "America/St_Lucia" },
- { "SA Western Standard Time", "MF", "America/Marigot" },
- { "SA Western Standard Time", "MQ", "America/Martinique" },
- { "SA Western Standard Time", "MS", "America/Montserrat" },
- { "SA Western Standard Time", "PR", "America/Puerto_Rico" },
- { "SA Western Standard Time", "TT", "America/Port_of_Spain" },
- { "SA Western Standard Time", "VC", "America/St_Vincent" },
- { "SA Western Standard Time", "VG", "America/Tortola" },
- { "SA Western Standard Time", "VI", "America/St_Thomas" },
- { "SA Western Standard Time", "ZZ", "Etc/GMT+4" },
- { "SE Asia Standard Time", "", "Asia/Bangkok" },
- { "SE Asia Standard Time", "AQ", "Antarctica/Davis" },
- { "SE Asia Standard Time", "CX", "Indian/Christmas" },
- { "SE Asia Standard Time", "ID", "Asia/Jakarta Asia/Pontianak" },
- { "SE Asia Standard Time", "KH", "Asia/Phnom_Penh" },
- { "SE Asia Standard Time", "LA", "Asia/Vientiane" },
- { "SE Asia Standard Time", "MN", "Asia/Hovd" },
- { "SE Asia Standard Time", "TH", "Asia/Bangkok" },
- { "SE Asia Standard Time", "VN", "Asia/Saigon" },
- { "SE Asia Standard Time", "ZZ", "Etc/GMT-7" },
- { "Samoa Standard Time", "", "Pacific/Apia" },
- { "Samoa Standard Time", "WS", "Pacific/Apia" },
- { "Singapore Standard Time", "", "Asia/Singapore" },
- { "Singapore Standard Time", "BN", "Asia/Brunei" },
- { "Singapore Standard Time", "ID", "Asia/Makassar" },
- { "Singapore Standard Time", "MY", "Asia/Kuala_Lumpur Asia/Kuching" },
- { "Singapore Standard Time", "PH", "Asia/Manila" },
- { "Singapore Standard Time", "SG", "Asia/Singapore" },
- { "Singapore Standard Time", "ZZ", "Etc/GMT-8" },
- { "South Africa Standard Time", "", "Africa/Johannesburg" },
- { "South Africa Standard Time", "BI", "Africa/Bujumbura" },
- { "South Africa Standard Time", "BW", "Africa/Gaborone" },
- { "South Africa Standard Time", "CD", "Africa/Lubumbashi" },
- { "South Africa Standard Time", "LS", "Africa/Maseru" },
- { "South Africa Standard Time", "LY", "Africa/Tripoli" },
- { "South Africa Standard Time", "MW", "Africa/Blantyre" },
- { "South Africa Standard Time", "MZ", "Africa/Maputo" },
- { "South Africa Standard Time", "RW", "Africa/Kigali" },
- { "South Africa Standard Time", "SZ", "Africa/Mbabane" },
- { "South Africa Standard Time", "ZA", "Africa/Johannesburg" },
- { "South Africa Standard Time", "ZM", "Africa/Lusaka" },
- { "South Africa Standard Time", "ZW", "Africa/Harare" },
- { "South Africa Standard Time", "ZZ", "Etc/GMT-2" },
- { "Sri Lanka Standard Time", "", "Asia/Colombo" },
- { "Sri Lanka Standard Time", "LK", "Asia/Colombo" },
- { "Syria Standard Time", "", "Asia/Damascus" },
- { "Syria Standard Time", "SY", "Asia/Damascus" },
- { "Taipei Standard Time", "", "Asia/Taipei" },
- { "Taipei Standard Time", "TW", "Asia/Taipei" },
- { "Tasmania Standard Time", "", "Australia/Hobart" },
- { "Tasmania Standard Time", "AU", "Australia/Hobart Australia/Currie" },
- { "Tokyo Standard Time", "", "Asia/Tokyo" },
- { "Tokyo Standard Time", "ID", "Asia/Jayapura" },
- { "Tokyo Standard Time", "JP", "Asia/Tokyo" },
- { "Tokyo Standard Time", "PW", "Pacific/Palau" },
- { "Tokyo Standard Time", "TL", "Asia/Dili" },
- { "Tokyo Standard Time", "ZZ", "Etc/GMT-9" },
- { "Tonga Standard Time", "", "Pacific/Tongatapu" },
- { "Tonga Standard Time", "KI", "Pacific/Enderbury" },
- { "Tonga Standard Time", "TO", "Pacific/Tongatapu" },
- { "Tonga Standard Time", "ZZ", "Etc/GMT-13" },
- { "Turkey Standard Time", "", "Europe/Istanbul" },
- { "Turkey Standard Time", "TR", "Europe/Istanbul" },
- { "US Eastern Standard Time", "", "America/Indianapolis" },
- { "US Eastern Standard Time", "US", "America/Indianapolis America/Indiana/Marengo America/Indiana/Vevay" },
- { "US Mountain Standard Time", "", "America/Phoenix" },
- { "US Mountain Standard Time", "CA", "America/Dawson_Creek" },
- { "US Mountain Standard Time", "MX", "America/Hermosillo" },
- { "US Mountain Standard Time", "US", "America/Phoenix" },
- { "US Mountain Standard Time", "ZZ", "Etc/GMT+7" },
- { "UTC", "", "Etc/GMT" },
- { "UTC", "GL", "America/Danmarkshavn" },
- { "UTC", "ZZ", "Etc/GMT" },
- { "UTC+12", "", "Etc/GMT-12" },
- { "UTC+12", "KI", "Pacific/Tarawa" },
- { "UTC+12", "MH", "Pacific/Majuro Pacific/Kwajalein" },
- { "UTC+12", "NR", "Pacific/Nauru" },
- { "UTC+12", "TV", "Pacific/Funafuti" },
- { "UTC+12", "UM", "Pacific/Wake" },
- { "UTC+12", "WF", "Pacific/Wallis" },
- { "UTC+12", "ZZ", "Etc/GMT-12" },
- { "UTC-02", "", "Etc/GMT+2" },
- { "UTC-02", "BR", "America/Noronha" },
- { "UTC-02", "GS", "Atlantic/South_Georgia" },
- { "UTC-02", "ZZ", "Etc/GMT+2" },
- { "UTC-11", "", "Etc/GMT+11" },
- { "UTC-11", "AS", "Pacific/Pago_Pago" },
- { "UTC-11", "NU", "Pacific/Niue" },
- { "UTC-11", "UM", "Pacific/Midway" },
- { "UTC-11", "ZZ", "Etc/GMT+11" },
- { "Ulaanbaatar Standard Time", "", "Asia/Ulaanbaatar" },
- { "Ulaanbaatar Standard Time", "MN", "Asia/Ulaanbaatar Asia/Choibalsan" },
- { "Venezuela Standard Time", "", "America/Caracas" },
- { "Venezuela Standard Time", "VE", "America/Caracas" },
- { "Vladivostok Standard Time", "", "Asia/Vladivostok" },
- { "Vladivostok Standard Time", "RU", "Asia/Vladivostok Asia/Sakhalin" },
- { "W. Australia Standard Time", "", "Australia/Perth" },
- { "W. Australia Standard Time", "AQ", "Antarctica/Casey" },
- { "W. Australia Standard Time", "AU", "Australia/Perth" },
- { "W. Central Africa Standard Time", "", "Africa/Lagos" },
- { "W. Central Africa Standard Time", "AO", "Africa/Luanda" },
- { "W. Central Africa Standard Time", "BJ", "Africa/Porto-Novo" },
- { "W. Central Africa Standard Time", "CD", "Africa/Kinshasa" },
- { "W. Central Africa Standard Time", "CF", "Africa/Bangui" },
- { "W. Central Africa Standard Time", "CG", "Africa/Brazzaville" },
- { "W. Central Africa Standard Time", "CM", "Africa/Douala" },
- { "W. Central Africa Standard Time", "DZ", "Africa/Algiers" },
- { "W. Central Africa Standard Time", "GA", "Africa/Libreville" },
- { "W. Central Africa Standard Time", "GQ", "Africa/Malabo" },
- { "W. Central Africa Standard Time", "NE", "Africa/Niamey" },
- { "W. Central Africa Standard Time", "NG", "Africa/Lagos" },
- { "W. Central Africa Standard Time", "TD", "Africa/Ndjamena" },
- { "W. Central Africa Standard Time", "TN", "Africa/Tunis" },
- { "W. Central Africa Standard Time", "ZZ", "Etc/GMT-1" },
- { "W. Europe Standard Time", "", "Europe/Berlin" },
- { "W. Europe Standard Time", "AD", "Europe/Andorra" },
- { "W. Europe Standard Time", "AT", "Europe/Vienna" },
- { "W. Europe Standard Time", "CH", "Europe/Zurich" },
- { "W. Europe Standard Time", "DE", "Europe/Berlin" },
- { "W. Europe Standard Time", "GI", "Europe/Gibraltar" },
- { "W. Europe Standard Time", "IT", "Europe/Rome" },
- { "W. Europe Standard Time", "LI", "Europe/Vaduz" },
- { "W. Europe Standard Time", "LU", "Europe/Luxembourg" },
- { "W. Europe Standard Time", "MC", "Europe/Monaco" },
- { "W. Europe Standard Time", "MT", "Europe/Malta" },
- { "W. Europe Standard Time", "NL", "Europe/Amsterdam" },
- { "W. Europe Standard Time", "NO", "Europe/Oslo" },
- { "W. Europe Standard Time", "SE", "Europe/Stockholm" },
- { "W. Europe Standard Time", "SJ", "Arctic/Longyearbyen" },
- { "W. Europe Standard Time", "SM", "Europe/San_Marino" },
- { "W. Europe Standard Time", "VA", "Europe/Vatican" },
- { "West Asia Standard Time", "", "Asia/Tashkent" },
- { "West Asia Standard Time", "AQ", "Antarctica/Mawson" },
- { "West Asia Standard Time", "KZ", "Asia/Oral Asia/Aqtau Asia/Aqtobe" },
- { "West Asia Standard Time", "MV", "Indian/Maldives" },
- { "West Asia Standard Time", "TF", "Indian/Kerguelen" },
- { "West Asia Standard Time", "TJ", "Asia/Dushanbe" },
- { "West Asia Standard Time", "TM", "Asia/Ashgabat" },
- { "West Asia Standard Time", "UZ", "Asia/Tashkent Asia/Samarkand" },
- { "West Asia Standard Time", "ZZ", "Etc/GMT-5" },
- { "West Pacific Standard Time", "", "Pacific/Port_Moresby" },
- { "West Pacific Standard Time", "AQ", "Antarctica/DumontDUrville" },
- { "West Pacific Standard Time", "FM", "Pacific/Truk" },
- { "West Pacific Standard Time", "GU", "Pacific/Guam" },
- { "West Pacific Standard Time", "MP", "Pacific/Saipan" },
- { "West Pacific Standard Time", "PG", "Pacific/Port_Moresby" },
- { "West Pacific Standard Time", "ZZ", "Etc/GMT-10" },
- { "Yakutsk Standard Time", "", "Asia/Yakutsk" },
- { "Yakutsk Standard Time", "RU", "Asia/Yakutsk" }
+ { L"AUS Central Standard Time", L"", L"Australia/Darwin" },
+ { L"AUS Central Standard Time", L"AU", L"Australia/Darwin" },
+ { L"AUS Eastern Standard Time", L"", L"Australia/Sydney" },
+ { L"AUS Eastern Standard Time", L"AU", L"Australia/Sydney Australia/Melbourne" },
+ { L"Afghanistan Standard Time", L"", L"Asia/Kabul" },
+ { L"Afghanistan Standard Time", L"AF", L"Asia/Kabul" },
+ { L"Alaskan Standard Time", L"", L"America/Anchorage" },
+ { L"Alaskan Standard Time", L"US", L"America/Anchorage America/Juneau America/Nome America/Sitka America/Yakutat" },
+ { L"Arab Standard Time", L"", L"Asia/Riyadh" },
+ { L"Arab Standard Time", L"BH", L"Asia/Bahrain" },
+ { L"Arab Standard Time", L"KW", L"Asia/Kuwait" },
+ { L"Arab Standard Time", L"QA", L"Asia/Qatar" },
+ { L"Arab Standard Time", L"SA", L"Asia/Riyadh" },
+ { L"Arab Standard Time", L"YE", L"Asia/Aden" },
+ { L"Arabian Standard Time", L"", L"Asia/Dubai" },
+ { L"Arabian Standard Time", L"AE", L"Asia/Dubai" },
+ { L"Arabian Standard Time", L"OM", L"Asia/Muscat" },
+ { L"Arabian Standard Time", L"ZZ", L"Etc/GMT-4" },
+ { L"Arabic Standard Time", L"", L"Asia/Baghdad" },
+ { L"Arabic Standard Time", L"IQ", L"Asia/Baghdad" },
+ { L"Argentina Standard Time", L"", L"America/Buenos_Aires" },
+ { L"Argentina Standard Time", L"AR", L"America/Buenos_Aires America/Argentina/La_Rioja America/Argentina/Rio_Gallegos America/Argentina/Salta America/Argentina/San_Juan America/Argentina/San_Luis America/Argentina/Tucuman America/Argentina/Ushuaia America/Catamarca America/Cordoba America/Jujuy America/Mendoza" },
+ { L"Armenian Standard Time", L"AM", L"Asia/Yerevan" },
+ { L"Atlantic Standard Time", L"", L"America/Halifax" },
+ { L"Atlantic Standard Time", L"BM", L"Atlantic/Bermuda" },
+ { L"Atlantic Standard Time", L"CA", L"America/Halifax America/Glace_Bay America/Goose_Bay America/Moncton" },
+ { L"Atlantic Standard Time", L"GL", L"America/Thule" },
+ { L"Azerbaijan Standard Time", L"", L"Asia/Baku" },
+ { L"Azerbaijan Standard Time", L"AZ", L"Asia/Baku" },
+ { L"Azores Standard Time", L"", L"Atlantic/Azores" },
+ { L"Azores Standard Time", L"GL", L"America/Scoresbysund" },
+ { L"Azores Standard Time", L"PT", L"Atlantic/Azores" },
+ { L"Bahia Standard Time", L"", L"America/Bahia" },
+ { L"Bahia Standard Time", L"BR", L"America/Bahia" },
+ { L"Bangladesh Standard Time", L"", L"Asia/Dhaka" },
+ { L"Bangladesh Standard Time", L"BD", L"Asia/Dhaka" },
+ { L"Bangladesh Standard Time", L"BT", L"Asia/Thimphu" },
+ { L"Canada Central Standard Time", L"", L"America/Regina" },
+ { L"Canada Central Standard Time", L"CA", L"America/Regina America/Swift_Current" },
+ { L"Cape Verde Standard Time", L"", L"Atlantic/Cape_Verde" },
+ { L"Cape Verde Standard Time", L"CV", L"Atlantic/Cape_Verde" },
+ { L"Cape Verde Standard Time", L"ZZ", L"Etc/GMT+1" },
+ { L"Caucasus Standard Time", L"", L"Asia/Yerevan" },
+ { L"Caucasus Standard Time", L"AM", L"Asia/Yerevan" },
+ { L"Cen. Australia Standard Time", L"", L"Australia/Adelaide" },
+ { L"Cen. Australia Standard Time", L"AU", L"Australia/Adelaide Australia/Broken_Hill" },
+ { L"Central America Standard Time", L"", L"America/Guatemala" },
+ { L"Central America Standard Time", L"BZ", L"America/Belize" },
+ { L"Central America Standard Time", L"CR", L"America/Costa_Rica" },
+ { L"Central America Standard Time", L"EC", L"Pacific/Galapagos" },
+ { L"Central America Standard Time", L"GT", L"America/Guatemala" },
+ { L"Central America Standard Time", L"HN", L"America/Tegucigalpa" },
+ { L"Central America Standard Time", L"NI", L"America/Managua" },
+ { L"Central America Standard Time", L"SV", L"America/El_Salvador" },
+ { L"Central America Standard Time", L"ZZ", L"Etc/GMT+6" },
+ { L"Central Asia Standard Time", L"", L"Asia/Almaty" },
+ { L"Central Asia Standard Time", L"AQ", L"Antarctica/Vostok" },
+ { L"Central Asia Standard Time", L"IO", L"Indian/Chagos" },
+ { L"Central Asia Standard Time", L"KG", L"Asia/Bishkek" },
+ { L"Central Asia Standard Time", L"KZ", L"Asia/Almaty Asia/Qyzylorda" },
+ { L"Central Asia Standard Time", L"ZZ", L"Etc/GMT-6" },
+ { L"Central Brazilian Standard Time", L"", L"America/Cuiaba" },
+ { L"Central Brazilian Standard Time", L"BR", L"America/Cuiaba America/Campo_Grande" },
+ { L"Central Europe Standard Time", L"", L"Europe/Budapest" },
+ { L"Central Europe Standard Time", L"AL", L"Europe/Tirane" },
+ { L"Central Europe Standard Time", L"CS", L"Europe/Belgrade" },
+ { L"Central Europe Standard Time", L"CZ", L"Europe/Prague" },
+ { L"Central Europe Standard Time", L"HU", L"Europe/Budapest" },
+ { L"Central Europe Standard Time", L"ME", L"Europe/Podgorica" },
+ { L"Central Europe Standard Time", L"RS", L"Europe/Belgrade" },
+ { L"Central Europe Standard Time", L"SI", L"Europe/Ljubljana" },
+ { L"Central Europe Standard Time", L"SK", L"Europe/Bratislava" },
+ { L"Central Europe Standard Time", L"SP", L"Europe/Belgrade" },
+ { L"Central European Standard Time", L"", L"Europe/Warsaw" },
+ { L"Central European Standard Time", L"BA", L"Europe/Sarajevo" },
+ { L"Central European Standard Time", L"HR", L"Europe/Zagreb" },
+ { L"Central European Standard Time", L"MK", L"Europe/Skopje" },
+ { L"Central European Standard Time", L"PL", L"Europe/Warsaw" },
+ { L"Central Pacific Standard Time", L"", L"Pacific/Guadalcanal" },
+ { L"Central Pacific Standard Time", L"AQ", L"Antarctica/Macquarie" },
+ { L"Central Pacific Standard Time", L"FM", L"Pacific/Ponape Pacific/Kosrae" },
+ { L"Central Pacific Standard Time", L"NC", L"Pacific/Noumea" },
+ { L"Central Pacific Standard Time", L"SB", L"Pacific/Guadalcanal" },
+ { L"Central Pacific Standard Time", L"VU", L"Pacific/Efate" },
+ { L"Central Pacific Standard Time", L"ZZ", L"Etc/GMT-11" },
+ { L"Central Standard Time", L"", L"America/Chicago" },
+ { L"Central Standard Time", L"CA", L"America/Winnipeg America/Rainy_River America/Rankin_Inlet America/Resolute" },
+ { L"Central Standard Time", L"MX", L"America/Matamoros" },
+ { L"Central Standard Time", L"US", L"America/Chicago America/Indiana/Knox America/Indiana/Tell_City America/Menominee America/North_Dakota/Beulah America/North_Dakota/Center America/North_Dakota/New_Salem" },
+ { L"Central Standard Time", L"ZZ", L"CST6CDT" },
+ { L"Central Standard Time (Mexico)", L"", L"America/Mexico_City" },
+ { L"Central Standard Time (Mexico)", L"MX", L"America/Mexico_City America/Bahia_Banderas America/Cancun America/Merida America/Monterrey" },
+ { L"China Standard Time", L"", L"Asia/Shanghai" },
+ { L"China Standard Time", L"CN", L"Asia/Shanghai Asia/Chongqing Asia/Harbin Asia/Kashgar Asia/Urumqi" },
+ { L"China Standard Time", L"HK", L"Asia/Hong_Kong" },
+ { L"China Standard Time", L"MO", L"Asia/Macau" },
+ { L"Dateline Standard Time", L"", L"Etc/GMT+12" },
+ { L"Dateline Standard Time", L"ZZ", L"Etc/GMT+12" },
+ { L"E. Africa Standard Time", L"", L"Africa/Nairobi" },
+ { L"E. Africa Standard Time", L"AQ", L"Antarctica/Syowa" },
+ { L"E. Africa Standard Time", L"DJ", L"Africa/Djibouti" },
+ { L"E. Africa Standard Time", L"ER", L"Africa/Asmera" },
+ { L"E. Africa Standard Time", L"ET", L"Africa/Addis_Ababa" },
+ { L"E. Africa Standard Time", L"KE", L"Africa/Nairobi" },
+ { L"E. Africa Standard Time", L"KM", L"Indian/Comoro" },
+ { L"E. Africa Standard Time", L"MG", L"Indian/Antananarivo" },
+ { L"E. Africa Standard Time", L"SD", L"Africa/Khartoum" },
+ { L"E. Africa Standard Time", L"SO", L"Africa/Mogadishu" },
+ { L"E. Africa Standard Time", L"SS", L"Africa/Juba" },
+ { L"E. Africa Standard Time", L"TZ", L"Africa/Dar_es_Salaam" },
+ { L"E. Africa Standard Time", L"UG", L"Africa/Kampala" },
+ { L"E. Africa Standard Time", L"YT", L"Indian/Mayotte" },
+ { L"E. Africa Standard Time", L"ZZ", L"Etc/GMT-3" },
+ { L"E. Australia Standard Time", L"", L"Australia/Brisbane" },
+ { L"E. Australia Standard Time", L"AU", L"Australia/Brisbane Australia/Lindeman" },
+ { L"E. Europe Standard Time", L"", L"Asia/Nicosia" },
+ { L"E. Europe Standard Time", L"CY", L"Asia/Nicosia" },
+ { L"E. South America Standard Time", L"", L"America/Sao_Paulo" },
+ { L"E. South America Standard Time", L"BR", L"America/Sao_Paulo" },
+ { L"Eastern Standard Time", L"", L"America/New_York" },
+ { L"Eastern Standard Time", L"BS", L"America/Nassau" },
+ { L"Eastern Standard Time", L"CA", L"America/Toronto America/Iqaluit America/Montreal America/Nipigon America/Pangnirtung America/Thunder_Bay" },
+ { L"Eastern Standard Time", L"TC", L"America/Grand_Turk" },
+ { L"Eastern Standard Time", L"US", L"America/New_York America/Detroit America/Indiana/Petersburg America/Indiana/Vincennes America/Indiana/Winamac America/Kentucky/Monticello America/Louisville" },
+ { L"Eastern Standard Time", L"ZZ", L"EST5EDT" },
+ { L"Egypt Standard Time", L"", L"Africa/Cairo" },
+ { L"Egypt Standard Time", L"EG", L"Africa/Cairo" },
+ { L"Egypt Standard Time", L"PS", L"Asia/Gaza Asia/Hebron" },
+ { L"Ekaterinburg Standard Time", L"", L"Asia/Yekaterinburg" },
+ { L"Ekaterinburg Standard Time", L"RU", L"Asia/Yekaterinburg" },
+ { L"FLE Standard Time", L"", L"Europe/Kiev" },
+ { L"FLE Standard Time", L"AX", L"Europe/Mariehamn" },
+ { L"FLE Standard Time", L"BG", L"Europe/Sofia" },
+ { L"FLE Standard Time", L"EE", L"Europe/Tallinn" },
+ { L"FLE Standard Time", L"FI", L"Europe/Helsinki" },
+ { L"FLE Standard Time", L"LT", L"Europe/Vilnius" },
+ { L"FLE Standard Time", L"LV", L"Europe/Riga" },
+ { L"FLE Standard Time", L"UA", L"Europe/Kiev Europe/Simferopol Europe/Uzhgorod Europe/Zaporozhye" },
+ { L"Fiji Standard Time", L"", L"Pacific/Fiji" },
+ { L"Fiji Standard Time", L"FJ", L"Pacific/Fiji" },
+ { L"GMT Standard Time", L"", L"Europe/London" },
+ { L"GMT Standard Time", L"ES", L"Atlantic/Canary" },
+ { L"GMT Standard Time", L"FO", L"Atlantic/Faeroe" },
+ { L"GMT Standard Time", L"GB", L"Europe/London" },
+ { L"GMT Standard Time", L"GG", L"Europe/Guernsey" },
+ { L"GMT Standard Time", L"IE", L"Europe/Dublin" },
+ { L"GMT Standard Time", L"IM", L"Europe/Isle_of_Man" },
+ { L"GMT Standard Time", L"JE", L"Europe/Jersey" },
+ { L"GMT Standard Time", L"PT", L"Europe/Lisbon Atlantic/Madeira" },
+ { L"GTB Standard Time", L"", L"Europe/Bucharest" },
+ { L"GTB Standard Time", L"GR", L"Europe/Athens" },
+ { L"GTB Standard Time", L"MD", L"Europe/Chisinau" },
+ { L"GTB Standard Time", L"RO", L"Europe/Bucharest" },
+ { L"Georgian Standard Time", L"", L"Asia/Tbilisi" },
+ { L"Georgian Standard Time", L"GE", L"Asia/Tbilisi" },
+ { L"Greenland Standard Time", L"", L"America/Godthab" },
+ { L"Greenland Standard Time", L"GL", L"America/Godthab" },
+ { L"Greenwich Standard Time", L"", L"Atlantic/Reykjavik" },
+ { L"Greenwich Standard Time", L"BF", L"Africa/Ouagadougou" },
+ { L"Greenwich Standard Time", L"CI", L"Africa/Abidjan" },
+ { L"Greenwich Standard Time", L"EH", L"Africa/El_Aaiun" },
+ { L"Greenwich Standard Time", L"GH", L"Africa/Accra" },
+ { L"Greenwich Standard Time", L"GM", L"Africa/Banjul" },
+ { L"Greenwich Standard Time", L"GN", L"Africa/Conakry" },
+ { L"Greenwich Standard Time", L"GW", L"Africa/Bissau" },
+ { L"Greenwich Standard Time", L"IS", L"Atlantic/Reykjavik" },
+ { L"Greenwich Standard Time", L"LR", L"Africa/Monrovia" },
+ { L"Greenwich Standard Time", L"ML", L"Africa/Bamako" },
+ { L"Greenwich Standard Time", L"MR", L"Africa/Nouakchott" },
+ { L"Greenwich Standard Time", L"SH", L"Atlantic/St_Helena" },
+ { L"Greenwich Standard Time", L"SL", L"Africa/Freetown" },
+ { L"Greenwich Standard Time", L"SN", L"Africa/Dakar" },
+ { L"Greenwich Standard Time", L"ST", L"Africa/Sao_Tome" },
+ { L"Greenwich Standard Time", L"TG", L"Africa/Lome" },
+ { L"Hawaiian Standard Time", L"", L"Pacific/Honolulu" },
+ { L"Hawaiian Standard Time", L"CK", L"Pacific/Rarotonga" },
+ { L"Hawaiian Standard Time", L"PF", L"Pacific/Tahiti" },
+ { L"Hawaiian Standard Time", L"TK", L"Pacific/Fakaofo" },
+ { L"Hawaiian Standard Time", L"UM", L"Pacific/Johnston" },
+ { L"Hawaiian Standard Time", L"US", L"Pacific/Honolulu" },
+ { L"Hawaiian Standard Time", L"ZZ", L"Etc/GMT+10" },
+ { L"India Standard Time", L"", L"Asia/Calcutta" },
+ { L"India Standard Time", L"IN", L"Asia/Calcutta" },
+ { L"Iran Standard Time", L"", L"Asia/Tehran" },
+ { L"Iran Standard Time", L"IR", L"Asia/Tehran" },
+ { L"Israel Standard Time", L"", L"Asia/Jerusalem" },
+ { L"Israel Standard Time", L"IL", L"Asia/Jerusalem" },
+ { L"Jordan Standard Time", L"", L"Asia/Amman" },
+ { L"Jordan Standard Time", L"JO", L"Asia/Amman" },
+ { L"Kaliningrad Standard Time", L"", L"Europe/Kaliningrad" },
+ { L"Kaliningrad Standard Time", L"BY", L"Europe/Minsk" },
+ { L"Kaliningrad Standard Time", L"RU", L"Europe/Kaliningrad" },
+ { L"Kamchatka Standard Time", L"", L"Asia/Kamchatka" },
+ { L"Korea Standard Time", L"", L"Asia/Seoul" },
+ { L"Korea Standard Time", L"KP", L"Asia/Pyongyang" },
+ { L"Korea Standard Time", L"KR", L"Asia/Seoul" },
+ { L"Magadan Standard Time", L"", L"Asia/Magadan" },
+ { L"Magadan Standard Time", L"RU", L"Asia/Magadan Asia/Anadyr Asia/Kamchatka" },
+ { L"Mauritius Standard Time", L"", L"Indian/Mauritius" },
+ { L"Mauritius Standard Time", L"MU", L"Indian/Mauritius" },
+ { L"Mauritius Standard Time", L"RE", L"Indian/Reunion" },
+ { L"Mauritius Standard Time", L"SC", L"Indian/Mahe" },
+ { L"Mexico Standard Time", L"", L"America/Mexico_City" },
+ { L"Mexico Standard Time 2", L"", L"America/Mazatlan" },
+ { L"Mid-Atlantic Standard Time", L"", L"Atlantic/South_Georgia" },
+ { L"Middle East Standard Time", L"", L"Asia/Beirut" },
+ { L"Middle East Standard Time", L"LB", L"Asia/Beirut" },
+ { L"Montevideo Standard Time", L"", L"America/Montevideo" },
+ { L"Montevideo Standard Time", L"UY", L"America/Montevideo" },
+ { L"Morocco Standard Time", L"", L"Africa/Casablanca" },
+ { L"Morocco Standard Time", L"MA", L"Africa/Casablanca" },
+ { L"Mountain Standard Time", L"", L"America/Denver" },
+ { L"Mountain Standard Time", L"CA", L"America/Edmonton America/Cambridge_Bay America/Inuvik America/Yellowknife" },
+ { L"Mountain Standard Time", L"MX", L"America/Ojinaga" },
+ { L"Mountain Standard Time", L"US", L"America/Denver America/Boise America/Shiprock" },
+ { L"Mountain Standard Time", L"ZZ", L"MST7MDT" },
+ { L"Mountain Standard Time (Mexico)", L"", L"America/Chihuahua" },
+ { L"Mountain Standard Time (Mexico)", L"MX", L"America/Chihuahua America/Mazatlan" },
+ { L"Myanmar Standard Time", L"", L"Asia/Rangoon" },
+ { L"Myanmar Standard Time", L"CC", L"Indian/Cocos" },
+ { L"Myanmar Standard Time", L"MM", L"Asia/Rangoon" },
+ { L"N. Central Asia Standard Time", L"", L"Asia/Novosibirsk" },
+ { L"N. Central Asia Standard Time", L"RU", L"Asia/Novosibirsk Asia/Novokuznetsk Asia/Omsk" },
+ { L"Namibia Standard Time", L"", L"Africa/Windhoek" },
+ { L"Namibia Standard Time", L"NA", L"Africa/Windhoek" },
+ { L"Nepal Standard Time", L"", L"Asia/Kathmandu" },
+ { L"Nepal Standard Time", L"NP", L"Asia/Kathmandu" },
+ { L"New Zealand Standard Time", L"", L"Pacific/Auckland" },
+ { L"New Zealand Standard Time", L"AQ", L"Antarctica/South_Pole Antarctica/McMurdo" },
+ { L"New Zealand Standard Time", L"NZ", L"Pacific/Auckland" },
+ { L"Newfoundland Standard Time", L"", L"America/St_Johns" },
+ { L"Newfoundland Standard Time", L"CA", L"America/St_Johns" },
+ { L"North Asia East Standard Time", L"", L"Asia/Irkutsk" },
+ { L"North Asia East Standard Time", L"RU", L"Asia/Irkutsk" },
+ { L"North Asia Standard Time", L"", L"Asia/Krasnoyarsk" },
+ { L"North Asia Standard Time", L"RU", L"Asia/Krasnoyarsk" },
+ { L"Pacific SA Standard Time", L"", L"America/Santiago" },
+ { L"Pacific SA Standard Time", L"AQ", L"Antarctica/Palmer" },
+ { L"Pacific SA Standard Time", L"CL", L"America/Santiago" },
+ { L"Pacific Standard Time", L"", L"America/Los_Angeles" },
+ { L"Pacific Standard Time", L"CA", L"America/Vancouver America/Dawson America/Whitehorse" },
+ { L"Pacific Standard Time", L"MX", L"America/Tijuana" },
+ { L"Pacific Standard Time", L"US", L"America/Los_Angeles" },
+ { L"Pacific Standard Time", L"ZZ", L"PST8PDT" },
+ { L"Pacific Standard Time (Mexico)", L"", L"America/Santa_Isabel" },
+ { L"Pacific Standard Time (Mexico)", L"MX", L"America/Santa_Isabel" },
+ { L"Pakistan Standard Time", L"", L"Asia/Karachi" },
+ { L"Pakistan Standard Time", L"PK", L"Asia/Karachi" },
+ { L"Paraguay Standard Time", L"", L"America/Asuncion" },
+ { L"Paraguay Standard Time", L"PY", L"America/Asuncion" },
+ { L"Romance Standard Time", L"", L"Europe/Paris" },
+ { L"Romance Standard Time", L"BE", L"Europe/Brussels" },
+ { L"Romance Standard Time", L"DK", L"Europe/Copenhagen" },
+ { L"Romance Standard Time", L"ES", L"Europe/Madrid Africa/Ceuta" },
+ { L"Romance Standard Time", L"FR", L"Europe/Paris" },
+ { L"Russian Standard Time", L"", L"Europe/Moscow" },
+ { L"Russian Standard Time", L"RU", L"Europe/Moscow Europe/Samara Europe/Volgograd" },
+ { L"SA Eastern Standard Time", L"", L"America/Cayenne" },
+ { L"SA Eastern Standard Time", L"AQ", L"Antarctica/Rothera" },
+ { L"SA Eastern Standard Time", L"BR", L"America/Fortaleza America/Araguaina America/Belem America/Maceio America/Recife America/Santarem" },
+ { L"SA Eastern Standard Time", L"GF", L"America/Cayenne" },
+ { L"SA Eastern Standard Time", L"SR", L"America/Paramaribo" },
+ { L"SA Eastern Standard Time", L"ZZ", L"Etc/GMT+3" },
+ { L"SA Pacific Standard Time", L"", L"America/Bogota" },
+ { L"SA Pacific Standard Time", L"CA", L"America/Coral_Harbour" },
+ { L"SA Pacific Standard Time", L"CO", L"America/Bogota" },
+ { L"SA Pacific Standard Time", L"EC", L"America/Guayaquil" },
+ { L"SA Pacific Standard Time", L"HT", L"America/Port-au-Prince" },
+ { L"SA Pacific Standard Time", L"JM", L"America/Jamaica" },
+ { L"SA Pacific Standard Time", L"KY", L"America/Cayman" },
+ { L"SA Pacific Standard Time", L"PA", L"America/Panama" },
+ { L"SA Pacific Standard Time", L"PE", L"America/Lima" },
+ { L"SA Pacific Standard Time", L"ZZ", L"Etc/GMT+5" },
+ { L"SA Western Standard Time", L"", L"America/La_Paz" },
+ { L"SA Western Standard Time", L"AG", L"America/Antigua" },
+ { L"SA Western Standard Time", L"AI", L"America/Anguilla" },
+ { L"SA Western Standard Time", L"AW", L"America/Aruba" },
+ { L"SA Western Standard Time", L"BB", L"America/Barbados" },
+ { L"SA Western Standard Time", L"BL", L"America/St_Barthelemy" },
+ { L"SA Western Standard Time", L"BO", L"America/La_Paz" },
+ { L"SA Western Standard Time", L"BR", L"America/Manaus America/Boa_Vista America/Eirunepe America/Porto_Velho America/Rio_Branco" },
+ { L"SA Western Standard Time", L"CA", L"America/Blanc-Sablon" },
+ { L"SA Western Standard Time", L"CW", L"America/Curacao" },
+ { L"SA Western Standard Time", L"DM", L"America/Dominica" },
+ { L"SA Western Standard Time", L"DO", L"America/Santo_Domingo" },
+ { L"SA Western Standard Time", L"GD", L"America/Grenada" },
+ { L"SA Western Standard Time", L"GP", L"America/Guadeloupe" },
+ { L"SA Western Standard Time", L"GY", L"America/Guyana" },
+ { L"SA Western Standard Time", L"KN", L"America/St_Kitts" },
+ { L"SA Western Standard Time", L"LC", L"America/St_Lucia" },
+ { L"SA Western Standard Time", L"MF", L"America/Marigot" },
+ { L"SA Western Standard Time", L"MQ", L"America/Martinique" },
+ { L"SA Western Standard Time", L"MS", L"America/Montserrat" },
+ { L"SA Western Standard Time", L"PR", L"America/Puerto_Rico" },
+ { L"SA Western Standard Time", L"TT", L"America/Port_of_Spain" },
+ { L"SA Western Standard Time", L"VC", L"America/St_Vincent" },
+ { L"SA Western Standard Time", L"VG", L"America/Tortola" },
+ { L"SA Western Standard Time", L"VI", L"America/St_Thomas" },
+ { L"SA Western Standard Time", L"ZZ", L"Etc/GMT+4" },
+ { L"SE Asia Standard Time", L"", L"Asia/Bangkok" },
+ { L"SE Asia Standard Time", L"AQ", L"Antarctica/Davis" },
+ { L"SE Asia Standard Time", L"CX", L"Indian/Christmas" },
+ { L"SE Asia Standard Time", L"ID", L"Asia/Jakarta Asia/Pontianak" },
+ { L"SE Asia Standard Time", L"KH", L"Asia/Phnom_Penh" },
+ { L"SE Asia Standard Time", L"LA", L"Asia/Vientiane" },
+ { L"SE Asia Standard Time", L"MN", L"Asia/Hovd" },
+ { L"SE Asia Standard Time", L"TH", L"Asia/Bangkok" },
+ { L"SE Asia Standard Time", L"VN", L"Asia/Saigon" },
+ { L"SE Asia Standard Time", L"ZZ", L"Etc/GMT-7" },
+ { L"Samoa Standard Time", L"", L"Pacific/Apia" },
+ { L"Samoa Standard Time", L"WS", L"Pacific/Apia" },
+ { L"Singapore Standard Time", L"", L"Asia/Singapore" },
+ { L"Singapore Standard Time", L"BN", L"Asia/Brunei" },
+ { L"Singapore Standard Time", L"ID", L"Asia/Makassar" },
+ { L"Singapore Standard Time", L"MY", L"Asia/Kuala_Lumpur Asia/Kuching" },
+ { L"Singapore Standard Time", L"PH", L"Asia/Manila" },
+ { L"Singapore Standard Time", L"SG", L"Asia/Singapore" },
+ { L"Singapore Standard Time", L"ZZ", L"Etc/GMT-8" },
+ { L"South Africa Standard Time", L"", L"Africa/Johannesburg" },
+ { L"South Africa Standard Time", L"BI", L"Africa/Bujumbura" },
+ { L"South Africa Standard Time", L"BW", L"Africa/Gaborone" },
+ { L"South Africa Standard Time", L"CD", L"Africa/Lubumbashi" },
+ { L"South Africa Standard Time", L"LS", L"Africa/Maseru" },
+ { L"South Africa Standard Time", L"LY", L"Africa/Tripoli" },
+ { L"South Africa Standard Time", L"MW", L"Africa/Blantyre" },
+ { L"South Africa Standard Time", L"MZ", L"Africa/Maputo" },
+ { L"South Africa Standard Time", L"RW", L"Africa/Kigali" },
+ { L"South Africa Standard Time", L"SZ", L"Africa/Mbabane" },
+ { L"South Africa Standard Time", L"ZA", L"Africa/Johannesburg" },
+ { L"South Africa Standard Time", L"ZM", L"Africa/Lusaka" },
+ { L"South Africa Standard Time", L"ZW", L"Africa/Harare" },
+ { L"South Africa Standard Time", L"ZZ", L"Etc/GMT-2" },
+ { L"Sri Lanka Standard Time", L"", L"Asia/Colombo" },
+ { L"Sri Lanka Standard Time", L"LK", L"Asia/Colombo" },
+ { L"Syria Standard Time", L"", L"Asia/Damascus" },
+ { L"Syria Standard Time", L"SY", L"Asia/Damascus" },
+ { L"Taipei Standard Time", L"", L"Asia/Taipei" },
+ { L"Taipei Standard Time", L"TW", L"Asia/Taipei" },
+ { L"Tasmania Standard Time", L"", L"Australia/Hobart" },
+ { L"Tasmania Standard Time", L"AU", L"Australia/Hobart Australia/Currie" },
+ { L"Tokyo Standard Time", L"", L"Asia/Tokyo" },
+ { L"Tokyo Standard Time", L"ID", L"Asia/Jayapura" },
+ { L"Tokyo Standard Time", L"JP", L"Asia/Tokyo" },
+ { L"Tokyo Standard Time", L"PW", L"Pacific/Palau" },
+ { L"Tokyo Standard Time", L"TL", L"Asia/Dili" },
+ { L"Tokyo Standard Time", L"ZZ", L"Etc/GMT-9" },
+ { L"Tonga Standard Time", L"", L"Pacific/Tongatapu" },
+ { L"Tonga Standard Time", L"KI", L"Pacific/Enderbury" },
+ { L"Tonga Standard Time", L"TO", L"Pacific/Tongatapu" },
+ { L"Tonga Standard Time", L"ZZ", L"Etc/GMT-13" },
+ { L"Turkey Standard Time", L"", L"Europe/Istanbul" },
+ { L"Turkey Standard Time", L"TR", L"Europe/Istanbul" },
+ { L"US Eastern Standard Time", L"", L"America/Indianapolis" },
+ { L"US Eastern Standard Time", L"US", L"America/Indianapolis America/Indiana/Marengo America/Indiana/Vevay" },
+ { L"US Mountain Standard Time", L"", L"America/Phoenix" },
+ { L"US Mountain Standard Time", L"CA", L"America/Dawson_Creek" },
+ { L"US Mountain Standard Time", L"MX", L"America/Hermosillo" },
+ { L"US Mountain Standard Time", L"US", L"America/Phoenix" },
+ { L"US Mountain Standard Time", L"ZZ", L"Etc/GMT+7" },
+ { L"UTC", L"", L"Etc/GMT" },
+ { L"UTC", L"GL", L"America/Danmarkshavn" },
+ { L"UTC", L"ZZ", L"Etc/GMT" },
+ { L"UTC+12", L"", L"Etc/GMT-12" },
+ { L"UTC+12", L"KI", L"Pacific/Tarawa" },
+ { L"UTC+12", L"MH", L"Pacific/Majuro Pacific/Kwajalein" },
+ { L"UTC+12", L"NR", L"Pacific/Nauru" },
+ { L"UTC+12", L"TV", L"Pacific/Funafuti" },
+ { L"UTC+12", L"UM", L"Pacific/Wake" },
+ { L"UTC+12", L"WF", L"Pacific/Wallis" },
+ { L"UTC+12", L"ZZ", L"Etc/GMT-12" },
+ { L"UTC-02", L"", L"Etc/GMT+2" },
+ { L"UTC-02", L"BR", L"America/Noronha" },
+ { L"UTC-02", L"GS", L"Atlantic/South_Georgia" },
+ { L"UTC-02", L"ZZ", L"Etc/GMT+2" },
+ { L"UTC-11", L"", L"Etc/GMT+11" },
+ { L"UTC-11", L"AS", L"Pacific/Pago_Pago" },
+ { L"UTC-11", L"NU", L"Pacific/Niue" },
+ { L"UTC-11", L"UM", L"Pacific/Midway" },
+ { L"UTC-11", L"ZZ", L"Etc/GMT+11" },
+ { L"Ulaanbaatar Standard Time", L"", L"Asia/Ulaanbaatar" },
+ { L"Ulaanbaatar Standard Time", L"MN", L"Asia/Ulaanbaatar Asia/Choibalsan" },
+ { L"Venezuela Standard Time", L"", L"America/Caracas" },
+ { L"Venezuela Standard Time", L"VE", L"America/Caracas" },
+ { L"Vladivostok Standard Time", L"", L"Asia/Vladivostok" },
+ { L"Vladivostok Standard Time", L"RU", L"Asia/Vladivostok Asia/Sakhalin" },
+ { L"W. Australia Standard Time", L"", L"Australia/Perth" },
+ { L"W. Australia Standard Time", L"AQ", L"Antarctica/Casey" },
+ { L"W. Australia Standard Time", L"AU", L"Australia/Perth" },
+ { L"W. Central Africa Standard Time", L"", L"Africa/Lagos" },
+ { L"W. Central Africa Standard Time", L"AO", L"Africa/Luanda" },
+ { L"W. Central Africa Standard Time", L"BJ", L"Africa/Porto-Novo" },
+ { L"W. Central Africa Standard Time", L"CD", L"Africa/Kinshasa" },
+ { L"W. Central Africa Standard Time", L"CF", L"Africa/Bangui" },
+ { L"W. Central Africa Standard Time", L"CG", L"Africa/Brazzaville" },
+ { L"W. Central Africa Standard Time", L"CM", L"Africa/Douala" },
+ { L"W. Central Africa Standard Time", L"DZ", L"Africa/Algiers" },
+ { L"W. Central Africa Standard Time", L"GA", L"Africa/Libreville" },
+ { L"W. Central Africa Standard Time", L"GQ", L"Africa/Malabo" },
+ { L"W. Central Africa Standard Time", L"NE", L"Africa/Niamey" },
+ { L"W. Central Africa Standard Time", L"NG", L"Africa/Lagos" },
+ { L"W. Central Africa Standard Time", L"TD", L"Africa/Ndjamena" },
+ { L"W. Central Africa Standard Time", L"TN", L"Africa/Tunis" },
+ { L"W. Central Africa Standard Time", L"ZZ", L"Etc/GMT-1" },
+ { L"W. Europe Standard Time", L"", L"Europe/Berlin" },
+ { L"W. Europe Standard Time", L"AD", L"Europe/Andorra" },
+ { L"W. Europe Standard Time", L"AT", L"Europe/Vienna" },
+ { L"W. Europe Standard Time", L"CH", L"Europe/Zurich" },
+ { L"W. Europe Standard Time", L"DE", L"Europe/Berlin" },
+ { L"W. Europe Standard Time", L"GI", L"Europe/Gibraltar" },
+ { L"W. Europe Standard Time", L"IT", L"Europe/Rome" },
+ { L"W. Europe Standard Time", L"LI", L"Europe/Vaduz" },
+ { L"W. Europe Standard Time", L"LU", L"Europe/Luxembourg" },
+ { L"W. Europe Standard Time", L"MC", L"Europe/Monaco" },
+ { L"W. Europe Standard Time", L"MT", L"Europe/Malta" },
+ { L"W. Europe Standard Time", L"NL", L"Europe/Amsterdam" },
+ { L"W. Europe Standard Time", L"NO", L"Europe/Oslo" },
+ { L"W. Europe Standard Time", L"SE", L"Europe/Stockholm" },
+ { L"W. Europe Standard Time", L"SJ", L"Arctic/Longyearbyen" },
+ { L"W. Europe Standard Time", L"SM", L"Europe/San_Marino" },
+ { L"W. Europe Standard Time", L"VA", L"Europe/Vatican" },
+ { L"West Asia Standard Time", L"", L"Asia/Tashkent" },
+ { L"West Asia Standard Time", L"AQ", L"Antarctica/Mawson" },
+ { L"West Asia Standard Time", L"KZ", L"Asia/Oral Asia/Aqtau Asia/Aqtobe" },
+ { L"West Asia Standard Time", L"MV", L"Indian/Maldives" },
+ { L"West Asia Standard Time", L"TF", L"Indian/Kerguelen" },
+ { L"West Asia Standard Time", L"TJ", L"Asia/Dushanbe" },
+ { L"West Asia Standard Time", L"TM", L"Asia/Ashgabat" },
+ { L"West Asia Standard Time", L"UZ", L"Asia/Tashkent Asia/Samarkand" },
+ { L"West Asia Standard Time", L"ZZ", L"Etc/GMT-5" },
+ { L"West Pacific Standard Time", L"", L"Pacific/Port_Moresby" },
+ { L"West Pacific Standard Time", L"AQ", L"Antarctica/DumontDUrville" },
+ { L"West Pacific Standard Time", L"FM", L"Pacific/Truk" },
+ { L"West Pacific Standard Time", L"GU", L"Pacific/Guam" },
+ { L"West Pacific Standard Time", L"MP", L"Pacific/Saipan" },
+ { L"West Pacific Standard Time", L"PG", L"Pacific/Port_Moresby" },
+ { L"West Pacific Standard Time", L"ZZ", L"Etc/GMT-10" },
+ { L"Yakutsk Standard Time", L"", L"Asia/Yakutsk" },
+ { L"Yakutsk Standard Time", L"RU", L"Asia/Yakutsk" }
};
#define TZMAP_SIZE (sizeof tzmap / sizeof tzmap[0])
@@ -500,20 +501,20 @@ static struct option longopts[] =
static char opts[] = "hV";
-#define REG_TZINFO "SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation"
-#define REG_TZDB "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones"
+#define REG_TZINFO L"SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation"
+#define REG_TZDB L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones"
/* Not available on pre-XP */
GEOID WINAPI (*getusergeoid)(GEOCLASS);
-int WINAPI (*getgeoinfo)(GEOID, GEOTYPE, LPTSTR, int, LANGID);
+int WINAPI (*getgeoinfo)(GEOID, GEOTYPE, LPWSTR, int, LANGID);
static inline HKEY
-reg_open (HKEY pkey, const char *path, const char *msg)
+reg_open (HKEY pkey, PCWSTR path, const char *msg)
{
LONG ret;
HKEY hkey;
- ret = RegOpenKeyEx (pkey, path, 0, KEY_READ, &hkey);
+ ret = RegOpenKeyExW (pkey, path, 0, KEY_READ, &hkey);
if (ret == ERROR_SUCCESS)
return hkey;
if (msg)
@@ -526,12 +527,12 @@ reg_open (HKEY pkey, const char *path, const char *msg)
#define reg_close(hkey) RegCloseKey(hkey)
static inline BOOL
-reg_query (HKEY hkey, const char *value, char *buf, DWORD size, const char *msg)
+reg_query (HKEY hkey, PCWSTR value, PWCHAR buf, DWORD size, const char *msg)
{
LONG ret;
DWORD type;
- ret = RegQueryValueEx (hkey, value, 0, &type, (LPBYTE) buf, &size);
+ ret = RegQueryValueExW (hkey, value, 0, &type, (LPBYTE) buf, &size);
if (ret == ERROR_SUCCESS)
return TRUE;
if (msg)
@@ -541,9 +542,9 @@ reg_query (HKEY hkey, const char *value, char *buf, DWORD size, const char *msg)
}
static inline BOOL
-reg_enum (HKEY hkey, int idx, char *name, DWORD size)
+reg_enum (HKEY hkey, int idx, PWCHAR name, DWORD size)
{
- return RegEnumKeyEx (hkey, idx, name, &size, NULL, NULL, NULL, NULL)
+ return RegEnumKeyExW (hkey, idx, name, &size, NULL, NULL, NULL, NULL)
== ERROR_SUCCESS;
}
@@ -589,10 +590,11 @@ main (int argc, char **argv)
{
BOOL ret;
HKEY hkey, skey;
- char keyname[256], stdname[256], std2name[256], country[10], *spc;
+ WCHAR keyname[256], stdname[256], std2name[256], country[10], *spc;
GEOID geo;
int opt, idx, gotit = -1;
+ setlocale (LC_ALL, "");
while ((opt = getopt_long (argc, argv, opts, longopts, NULL)) != EOF)
switch (opt)
{
@@ -619,11 +621,11 @@ main (int argc, char **argv)
return 1;
/* Vista introduced the TimeZoneKeyName value, which simplifies the
job a lot. */
- if (!reg_query (hkey, "TimeZoneKeyName", keyname, sizeof keyname, NULL))
+ if (!reg_query (hkey, L"TimeZoneKeyName", keyname, sizeof keyname, NULL))
{
/* Pre-Vista we have a lot more to do. First fetch the name of the
Standard (non-DST) timezone. If we can't get that, give up. */
- if (!reg_query (hkey, "StandardName", stdname, sizeof stdname,
+ if (!reg_query (hkey, L"StandardName", stdname, sizeof stdname,
"timezone information"))
{
reg_close (hkey);
@@ -648,10 +650,10 @@ main (int argc, char **argv)
Fortunately it's easy to recognize this situation: If
StandardName starts with @, it's a resource pointer, otherwise
it's the cleartext value. */
- ret = reg_query (skey, stdname[0] == '@' ? "MUI_Std" : "Std",
+ ret = reg_query (skey, stdname[0] == L'@' ? L"MUI_Std" : L"Std",
std2name, sizeof std2name, NULL);
reg_close (skey);
- if (ret && !strcmp (stdname, std2name))
+ if (ret && !wcscmp (stdname, std2name))
break;
}
}
@@ -661,12 +663,10 @@ main (int argc, char **argv)
/* Fetch addresses of Geo functions. As long as we support Windows 2000
this is required, unfortunately. */
getusergeoid = (GEOID (WINAPI *)())
- GetProcAddress (GetModuleHandle ("kernel32.dll"),
- "GetUserGeoID");
- getgeoinfo = (int (WINAPI *)(GEOID, GEOTYPE, LPTSTR, int, LANGID))
- GetProcAddress (GetModuleHandle ("kernel32.dll"),
- "GetGeoInfoA");
- *country = '\0';
+ GetProcAddress (GetModuleHandle ("kernel32.dll"), "GetUserGeoID");
+ getgeoinfo = (int (WINAPI *)(GEOID, GEOTYPE, LPWSTR, int, LANGID))
+ GetProcAddress (GetModuleHandle ("kernel32.dll"), "GetGeoInfoW");
+ *country = L'\0';
/* Post-W2K we fetch the current Geo-location of the user and convert it
to a ISO 3166-1 compatible nation code. */
if (getusergeoid && getgeoinfo)
@@ -678,17 +678,17 @@ main (int argc, char **argv)
/* On W2K, or if the Geo-location isn't available, we use the locale
setting instead. */
if (!*country)
- GetLocaleInfo (LOCALE_USER_DEFAULT, LOCALE_SISO3166CTRYNAME,
- country, sizeof country);
+ GetLocaleInfoW (LOCALE_USER_DEFAULT, LOCALE_SISO3166CTRYNAME,
+ country, sizeof country);
/* Now iterate over the mapping table and find the right entry. */
for (idx = 0; idx < TZMAP_SIZE; ++idx)
{
- if (!strcmp (keyname, tzmap[idx].win_tzkey))
+ if (!wcscmp (keyname, tzmap[idx].win_tzkey))
{
if (gotit < 0)
gotit = idx;
- if (!strcmp (country, tzmap[idx].country))
+ if (!wcscmp (country, tzmap[idx].country))
break;
}
else if (gotit >= 0)
@@ -703,16 +703,16 @@ main (int argc, char **argv)
{
fprintf (stderr,
"%s: can't find matching POSIX timezone for "
- "Windows timezone \"%s\"\n",
+ "Windows timezone \"%ls\"\n",
program_invocation_short_name, keyname);
return 1;
}
idx = gotit;
}
/* Got one. Print it. */
- spc = strchr (tzmap[idx].posix_tzid, ' ');
+ spc = wcschr (tzmap[idx].posix_tzid, ' ');
if (spc)
- *spc = '\0';
- printf ("%s\n", tzmap[idx].posix_tzid);
+ *spc = L'\0';
+ printf ("%ls\n", tzmap[idx].posix_tzid);
return 0;
}