From e4c2a5c29f78def39801d8f2ea12b954594f7e7d Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Wed, 14 Nov 2012 18:09:02 +0200 Subject: [PATCH] Assign correct codes to QLocale::AnyCountry and AnyScript as their meaning, in fact, is unknown (or default) country/script. Change-Id: Id75a70d4b33c2092de414f3ac357f6bcb627ba47 Reviewed-by: Lars Knoll --- src/corelib/tools/qlocale_data_p.h | 4 ++-- util/local_database/cldr2qlocalexml.py | 14 +++++--------- util/local_database/enumdata.py | 10 ++++++++-- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/corelib/tools/qlocale_data_p.h b/src/corelib/tools/qlocale_data_p.h index f0d92b7..4d4cb96 100644 --- a/src/corelib/tools/qlocale_data_p.h +++ b/src/corelib/tools/qlocale_data_p.h @@ -5091,7 +5091,7 @@ static const unsigned char language_code_list[] = ; static const unsigned char script_code_list[] = -"\0\0\0\0" // AnyScript +"Zzzz" // AnyScript "Arab" // Arabic "Cyrl" // Cyrillic "Dsrt" // Deseret @@ -5128,7 +5128,7 @@ static const unsigned char script_code_list[] = "Yiii" // Yi ; static const unsigned char country_code_list[] = -" \0" // AnyCountry +"ZZ\0" // AnyCountry "AF\0" // Afghanistan "AL\0" // Albania "DZ\0" // Algeria diff --git a/util/local_database/cldr2qlocalexml.py b/util/local_database/cldr2qlocalexml.py index e5accec..2ad41cb 100755 --- a/util/local_database/cldr2qlocalexml.py +++ b/util/local_database/cldr2qlocalexml.py @@ -135,26 +135,22 @@ def generateLocaleInfo(path): return {} language_id = enumdata.languageCodeToId(language_code) - if language_id == -1: + if language_id <= 0: sys.stderr.write("unknown language code \"" + language_code + "\"\n") return {} language = enumdata.language_list[language_id][0] script_id = enumdata.scriptCodeToId(script_code) - if script_code == -1: + if script_id == -1: sys.stderr.write("unknown script code \"" + script_code + "\"\n") return {} - script = "AnyScript" - if script_id != -1: - script = enumdata.script_list[script_id][0] + script = enumdata.script_list[script_id][0] country_id = enumdata.countryCodeToId(country_code) - country = "" - if country_id != -1: - country = enumdata.country_list[country_id][0] - if country == "": + if country_id <= 0: sys.stderr.write("unknown country code \"" + country_code + "\"\n") return {} + country = enumdata.country_list[country_id][0] # So we say we accept only those values that have "contributed" or # "approved" resolution. see http://www.unicode.org/cldr/process.html diff --git a/util/local_database/enumdata.py b/util/local_database/enumdata.py index 326eaab..1c92aec 100644 --- a/util/local_database/enumdata.py +++ b/util/local_database/enumdata.py @@ -264,7 +264,7 @@ language_list = { } country_list = { - 0 : [ "AnyCountry", " " ], + 0 : [ "AnyCountry", "ZZ" ], 1 : [ "Afghanistan", "AF" ], 2 : [ "Albania", "AL" ], 3 : [ "Algeria", "DZ" ], @@ -514,7 +514,7 @@ country_list = { } script_list = { - 0 : [ "AnyScript", "" ], + 0 : [ "AnyScript", "Zzzz" ], 1 : [ "Arabic", "Arab" ], 2 : [ "Cyrillic", "Cyrl" ], 3 : [ "Deseret", "Dsrt" ], @@ -552,18 +552,24 @@ script_list = { } def countryCodeToId(code): + if not code: + return 0 for country_id in country_list: if country_list[country_id][1] == code: return country_id return -1 def languageCodeToId(code): + if not code: + return 0 for language_id in language_list: if language_list[language_id][1] == code: return language_id return -1 def scriptCodeToId(code): + if not code: + return 0 for script_id in script_list: if script_list[script_id][1] == code: return script_id -- 2.7.4