From 475d0c59c66fb7752d230f76130b17145aad0c12 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 14 Feb 2012 16:07:10 +0000 Subject: use icu's breakiterator for Thai, not our customized generic rules --- i18npool/qa/cppunit/test_breakiterator.cxx | 5 +++-- i18npool/source/breakiterator/breakiterator_unicode.cxx | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx index ba000afa6199..820e57b4549c 100644 --- a/i18npool/qa/cppunit/test_breakiterator.cxx +++ b/i18npool/qa/cppunit/test_breakiterator.cxx @@ -70,7 +70,7 @@ public: CPPUNIT_TEST(testGraphemeIteration); CPPUNIT_TEST(testWeak); CPPUNIT_TEST(testAsian); -// CPPUNIT_TEST(testThai); + CPPUNIT_TEST(testThai); CPPUNIT_TEST_SUITE_END(); private: @@ -264,13 +264,13 @@ void TestBreakIterator::testThai() { const sal_Unicode THAI1[] = { 0x0E01, 0x0E38, 0x0E2B, 0x0E25, 0x0E32, 0x0E1A }; ::rtl::OUString aTest(THAI1, SAL_N_ELEMENTS(THAI1)); - aBounds = m_xBreak->getWordBoundary(aTest, 0, aLocale, i18n::WordType::DICTIONARY_WORD, true); CPPUNIT_ASSERT_MESSAGE("Should skip full word", aBounds.startPos == 0 && aBounds.endPos == aTest.getLength()); } +#ifdef TODO { const sal_Unicode NORTHERN_THAI1[] = { 0x0E01, 0x0E38, 0x0E4A, 0x0E2B, 0x0E25, 0x0E32, 0x0E1A }; ::rtl::OUString aTest(NORTHERN_THAI1, SAL_N_ELEMENTS(NORTHERN_THAI1)); @@ -279,6 +279,7 @@ void TestBreakIterator::testThai() CPPUNIT_ASSERT_MESSAGE("Should skip full word", aBounds.startPos == 0 && aBounds.endPos == aTest.getLength()); } +#endif } TestBreakIterator::TestBreakIterator() diff --git a/i18npool/source/breakiterator/breakiterator_unicode.cxx b/i18npool/source/breakiterator/breakiterator_unicode.cxx index 5f35795916e1..aa5e1d8adf12 100644 --- a/i18npool/source/breakiterator/breakiterator_unicode.cxx +++ b/i18npool/source/breakiterator/breakiterator_unicode.cxx @@ -129,10 +129,13 @@ void SAL_CALL BreakIterator_Unicode::loadICUBreakIterator(const com::sun::star:: OOoRuleBasedBreakIterator *rbi = NULL; - if (breakRules.getLength() > breakType && !breakRules[breakType].isEmpty()) { + if (breakRules.getLength() > breakType && !breakRules[breakType].isEmpty()) + { rbi = new OOoRuleBasedBreakIterator(udata_open("OpenOffice", "brk", OUStringToOString(breakRules[breakType], RTL_TEXTENCODING_ASCII_US).getStr(), &status), status); - } else { + } + else if (!rLocale.Language.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("th"))) //use icu's breakiterator for Thai + { status = U_ZERO_ERROR; OStringBuffer aUDName(64); aUDName.append(rule); -- cgit v1.2.3