From a7123ed229c5e750ff2b7936290448f6e6dfb220 Mon Sep 17 00:00:00 2001 From: Fredrik Roubert Date: Wed, 26 Apr 2017 20:12:01 +0000 Subject: [PATCH] ICU-13094 Handle empty language subtag in parseTagString(). X-SVN-Rev: 40076 --- icu4c/source/common/loclikely.cpp | 2 +- icu4c/source/test/cintltst/cloctst.c | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/icu4c/source/common/loclikely.cpp b/icu4c/source/common/loclikely.cpp index 60192a3fd31..7dd07afca5a 100644 --- a/icu4c/source/common/loclikely.cpp +++ b/icu4c/source/common/loclikely.cpp @@ -511,7 +511,7 @@ parseTagString( unknownLanguage); *langLength = (int32_t)uprv_strlen(lang); } - else if (_isIDSeparator(*position)) { + if (_isIDSeparator(*position)) { ++position; } diff --git a/icu4c/source/test/cintltst/cloctst.c b/icu4c/source/test/cintltst/cloctst.c index 2e7de580ad6..564378d3bc8 100644 --- a/icu4c/source/test/cintltst/cloctst.c +++ b/icu4c/source/test/cintltst/cloctst.c @@ -3474,6 +3474,21 @@ const char* const basic_maximize_data[][2] = { }, { "de_Latn_DE_u_co_phonebk", "de_Latn_DE_U_CO_PHONEBK" + }, { + "_Arab@em=emoji", + "ar_Arab_EG@em=emoji" + }, { + "_Latn@em=emoji", + "en_Latn_US@em=emoji" + }, { + "_Latn_DE@em=emoji", + "de_Latn_DE@em=emoji" + }, { + "_Zzzz_DE@em=emoji", + "de_Latn_DE@em=emoji" + }, { + "_DE@em=emoji", + "de_Latn_DE@em=emoji" } }; @@ -6022,6 +6037,11 @@ static const struct { {"en-u-baz-ca-islamic-civil", "en@attribute=baz;calendar=islamic-civil", FULL_LENGTH}, {"en-a-bar-u-ca-islamic-civil-x-u-foo", "en@a=bar;calendar=islamic-civil;x=u-foo", FULL_LENGTH}, {"en-a-bar-u-baz-ca-islamic-civil-x-u-foo", "en@a=bar;attribute=baz;calendar=islamic-civil;x=u-foo", FULL_LENGTH}, + {"und-Arab-u-em-emoji", "_Arab@em=emoji", FULL_LENGTH}, + {"und-Latn-u-em-emoji", "_Latn@em=emoji", FULL_LENGTH}, + {"und-Latn-DE-u-em-emoji", "_Latn_DE@em=emoji", FULL_LENGTH}, + {"und-Zzzz-DE-u-em-emoji", "_Zzzz_DE@em=emoji", FULL_LENGTH}, + {"und-DE-u-em-emoji", "_DE@em=emoji", FULL_LENGTH}, {NULL, NULL, 0} }; -- 2.40.0