| Index: source/common/ucase.cpp
|
| diff --git a/source/common/ucase.cpp b/source/common/ucase.cpp
|
| index b04c2d40cf0c45a1d669eda6c7ca8c1cd3f5fde1..97ded9ee2d15f6750664517cc96ca73d2c18dc55 100644
|
| --- a/source/common/ucase.cpp
|
| +++ b/source/common/ucase.cpp
|
| @@ -1,3 +1,5 @@
|
| +// Copyright (C) 2016 and later: Unicode, Inc. and others.
|
| +// License & terms of use: http://www.unicode.org/copyright.html
|
| /*
|
| *******************************************************************************
|
| *
|
| @@ -619,6 +621,18 @@ ucase_getCaseLocale(const char *locale, int32_t *locCache) {
|
| result=UCASE_LOC_LITHUANIAN;
|
| }
|
| }
|
| + } else if(is_e(c)) {
|
| + /* el or ell? */
|
| + c=*locale++;
|
| + if(is_l(c)) {
|
| + c=*locale++;
|
| + if(is_l(c)) {
|
| + c=*locale;
|
| + }
|
| + if(is_sep(c)) {
|
| + result=UCASE_LOC_GREEK;
|
| + }
|
| + }
|
| } else if(is_n(c)) {
|
| /* nl or nld? */
|
| c=*locale++;
|
| @@ -801,8 +815,9 @@ U_CAPI int32_t U_EXPORT2
|
| ucase_toFullLower(const UCaseProps *csp, UChar32 c,
|
| UCaseContextIterator *iter, void *context,
|
| const UChar **pString,
|
| - const char *locale, int32_t *locCache)
|
| -{
|
| + const char *locale, int32_t *locCache) {
|
| + // The sign of the result has meaning, input must be non-negative so that it can be returned as is.
|
| + U_ASSERT(c >= 0);
|
| UChar32 result=c;
|
| uint16_t props=UTRIE2_GET16(&csp->trie, c);
|
| if(!PROPS_HAS_EXCEPTION(props)) {
|
| @@ -947,6 +962,8 @@ toUpperOrTitle(const UCaseProps *csp, UChar32 c,
|
| const UChar **pString,
|
| const char *locale, int32_t *locCache,
|
| UBool upperNotTitle) {
|
| + // The sign of the result has meaning, input must be non-negative so that it can be returned as is.
|
| + U_ASSERT(c >= 0);
|
| UChar32 result=c;
|
| uint16_t props=UTRIE2_GET16(&csp->trie, c);
|
| if(!PROPS_HAS_EXCEPTION(props)) {
|
| @@ -1155,8 +1172,9 @@ ucase_fold(const UCaseProps *csp, UChar32 c, uint32_t options) {
|
| U_CAPI int32_t U_EXPORT2
|
| ucase_toFullFolding(const UCaseProps *csp, UChar32 c,
|
| const UChar **pString,
|
| - uint32_t options)
|
| -{
|
| + uint32_t options) {
|
| + // The sign of the result has meaning, input must be non-negative so that it can be returned as is.
|
| + U_ASSERT(c >= 0);
|
| UChar32 result=c;
|
| uint16_t props=UTRIE2_GET16(&csp->trie, c);
|
| if(!PROPS_HAS_EXCEPTION(props)) {
|
|
|