| Index: source/test/intltest/colldata.cpp
|
| diff --git a/source/test/intltest/colldata.cpp b/source/test/intltest/colldata.cpp
|
| index 2f561c67086730eaad2cae27ec5d898b960d4828..abbfac2c9fd8086674bdd79832c9a466b4000895 100644
|
| --- a/source/test/intltest/colldata.cpp
|
| +++ b/source/test/intltest/colldata.cpp
|
| @@ -1,7 +1,7 @@
|
| /*
|
| ******************************************************************************
|
| - * Copyright (C) 1996-2012, International Business Machines *
|
| - * Corporation and others. All Rights Reserved. *
|
| + * Copyright (C) 1996-2014, International Business Machines
|
| + * Corporation and others. All Rights Reserved.
|
| ******************************************************************************
|
| */
|
|
|
| @@ -22,10 +22,12 @@
|
|
|
| #include "unicode/uniset.h"
|
| #include "unicode/uset.h"
|
| +#include "unicode/usetiter.h"
|
| #include "unicode/ustring.h"
|
| #include "hash.h"
|
| +#include "normalizer2impl.h"
|
| #include "uhash.h"
|
| -#include "ucol_imp.h"
|
| +#include "usrchimp.h"
|
| #include "uassert.h"
|
|
|
| #include "colldata.h"
|
| @@ -50,7 +52,7 @@ CEList::CEList(UCollator *coll, const UnicodeString &string, UErrorCode &status)
|
| }
|
|
|
| // **** only set flag if string has Han(gul) ****
|
| - ucol_forceHanImplicit(elems, &status);
|
| + // ucol_forceHanImplicit(elems, &status); -- removed for ticket #10476
|
|
|
| switch (strength)
|
| {
|
| @@ -410,10 +412,22 @@ bail:
|
| return;
|
| }
|
|
|
| - UChar32 hanRanges[] = {UCOL_FIRST_HAN, UCOL_LAST_HAN, UCOL_FIRST_HAN_COMPAT, UCOL_LAST_HAN_COMPAT, UCOL_FIRST_HAN_A, UCOL_LAST_HAN_A,
|
| - UCOL_FIRST_HAN_B, UCOL_LAST_HAN_B};
|
| - UChar jamoRanges[] = {UCOL_FIRST_L_JAMO, UCOL_FIRST_V_JAMO, UCOL_FIRST_T_JAMO, UCOL_LAST_T_JAMO};
|
| - UnicodeString hanString = UnicodeString::fromUTF32(hanRanges, ARRAY_SIZE(hanRanges));
|
| + UnicodeSet hanRanges(UNICODE_STRING_SIMPLE("[:Unified_Ideograph:]"), status);
|
| + if (U_FAILURE(status)) {
|
| + return;
|
| + }
|
| + UnicodeSetIterator hanIter(hanRanges);
|
| + UnicodeString hanString;
|
| + while(hanIter.nextRange()) {
|
| + hanString.append(hanIter.getCodepoint());
|
| + hanString.append(hanIter.getCodepointEnd());
|
| + }
|
| + // TODO: Why U+11FF? The old code had an outdated UCOL_LAST_T_JAMO=0x11F9,
|
| + // but as of Unicode 6.3 the 11xx block is filled,
|
| + // and there are also more Jamo T at U+D7CB..U+D7FB.
|
| + // Maybe use [:HST=T:] and look for the end of the last range?
|
| + // Maybe use script boundary mappings instead of this code??
|
| + UChar jamoRanges[] = {Hangul::JAMO_L_BASE, Hangul::JAMO_V_BASE, Hangul::JAMO_T_BASE + 1, 0x11FF};
|
| UnicodeString jamoString(FALSE, jamoRanges, ARRAY_SIZE(jamoRanges));
|
| CEList hanList(coll, hanString, status);
|
| CEList jamoList(coll, jamoString, status);
|
|
|