diff --git a/icu4c/source/test/intltest/bidiconf.cpp b/icu4c/source/test/intltest/bidiconf.cpp index c42c02d73df..c1ee4286c94 100644 --- a/icu4c/source/test/intltest/bidiconf.cpp +++ b/icu4c/source/test/intltest/bidiconf.cpp @@ -43,7 +43,7 @@ private: UBool parseLevels(const char *&start); UBool parseOrdering(const char *start); - UBool parseInputStringFromBiDiClasses(const char *&start, UBool parseChars); + UBool parseInputStringFromBiDiClasses(const char *&start); UBool checkLevels(const UBiDiLevel actualLevels[], int32_t actualCount); UBool checkOrdering(UBiDi *ubidi); @@ -155,7 +155,7 @@ UBool BiDiConformanceTest::parseOrdering(const char *start) { return TRUE; } -static const UChar pseudoCharFromBiDiClass[U_CHAR_DIRECTION_COUNT]={ +static const UChar charFromBiDiClass[U_CHAR_DIRECTION_COUNT]={ 0x6c, // 'l' for L 0x52, // 'R' for R 0x33, // '3' for EN @@ -182,38 +182,12 @@ static const UChar pseudoCharFromBiDiClass[U_CHAR_DIRECTION_COUNT]={ 0x2e // '.' for PDI }; -static const UChar realCharFromBiDiClass[U_CHAR_DIRECTION_COUNT]={ - 0x006c, // 'l' for L - 0x05d0, // Hebrew Letter Alef for R - 0x0033, // '3' for EN - 0x002d, // '-' for ES - 0x0025, // '%' for ET - 0x0669, // Arabic-Indic '9' for AN - 0x002c, // ',' for CS - 0x000d, // CR for B - 0x0009, // Tab for S - 0x0020, // ' ' for WS - 0x003d, // '=' for ON - 0x202a, // LRE - 0x202d, // LRO - 0x0630, // Arabic Letter Thal for AL - 0x202b, // RLE - 0x202e, // RLO - 0x202c, // PDF - 0x05b9, // Hebrew Point Holam for NSM - 0x00ad, // Soft Hyphen for BN - 0x2068, // FSI - 0x2066, // LRI - 0x2067, // RLI - 0x2069 // PDI -}; - U_CDECL_BEGIN static UCharDirection U_CALLCONV biDiConfUBiDiClassCallback(const void * /*context*/, UChar32 c) { for(int i=0; i='0' && c<='9') - return c - '0'; - if(c>='A' && c<='F') - return c - ('A'-10); - if(c>='a' && c<='f') - return c - ('a'-10); - return -1; -} - static const int8_t biDiClassNameLengths[U_CHAR_DIRECTION_COUNT+1]={ 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 3, 3, 2, 3, 3, 3, 3, 2, 3, 3, 3, 3, 0 }; -UBool BiDiConformanceTest::parseInputStringFromBiDiClasses(const char *&start, UBool parseChars) { +UBool BiDiConformanceTest::parseInputStringFromBiDiClasses(const char *&start) { inputString.remove(); /* * Lengthy but fast BiDi class parser. @@ -247,24 +211,6 @@ UBool BiDiConformanceTest::parseInputStringFromBiDiClasses(const char *&start, U * but that makes this test take significantly more time. */ while(*start!=0 && *(start=u_skipWhitespace(start))!=0 && *start!=';') { - int32_t d1, d2, hexnum; - // First look for an hexa value of at least 2 digits - if(parseChars && (d1=hexdigit(start[0]))>=0 && (d2=hexdigit(start[1]))>=0) { - const char *saveStart=start; - hexnum=(d1<<4) + d2; - start+=2; - while((d1=hexdigit(start[0]))>=0) { - hexnum=(hexnum<<4) + d1; - start++; - } - if(hexnum<=0 || hexnum>0xffff || - (!U_IS_INV_WHITESPACE(start[0]) && start[0]!=';' && start[0]!=0)) { - errln("\nError on line %d: Invalid hexa number at %s", (int)lineNumber, saveStart); - return FALSE; - } - inputString.append(hexnum); - continue; - } UCharDirection biDiClass=U_CHAR_DIRECTION_COUNT; // Compare each character once until we have a match on // a complete, short BiDi class name. @@ -336,28 +282,10 @@ UBool BiDiConformanceTest::parseInputStringFromBiDiClasses(const char *&start, U int8_t biDiClassNameLength=biDiClassNameLengths[biDiClass]; char c=start[biDiClassNameLength]; if(biDiClass