Kaydet (Commit) 475d0c59 authored tarafından Caolán McNamara's avatar Caolán McNamara

use icu's breakiterator for Thai, not our customized generic rules

üst fad63878
...@@ -70,7 +70,7 @@ public: ...@@ -70,7 +70,7 @@ public:
CPPUNIT_TEST(testGraphemeIteration); CPPUNIT_TEST(testGraphemeIteration);
CPPUNIT_TEST(testWeak); CPPUNIT_TEST(testWeak);
CPPUNIT_TEST(testAsian); CPPUNIT_TEST(testAsian);
// CPPUNIT_TEST(testThai); CPPUNIT_TEST(testThai);
CPPUNIT_TEST_SUITE_END(); CPPUNIT_TEST_SUITE_END();
private: private:
...@@ -264,13 +264,13 @@ void TestBreakIterator::testThai() ...@@ -264,13 +264,13 @@ void TestBreakIterator::testThai()
{ {
const sal_Unicode THAI1[] = { 0x0E01, 0x0E38, 0x0E2B, 0x0E25, 0x0E32, 0x0E1A }; const sal_Unicode THAI1[] = { 0x0E01, 0x0E38, 0x0E2B, 0x0E25, 0x0E32, 0x0E1A };
::rtl::OUString aTest(THAI1, SAL_N_ELEMENTS(THAI1)); ::rtl::OUString aTest(THAI1, SAL_N_ELEMENTS(THAI1));
aBounds = m_xBreak->getWordBoundary(aTest, 0, aLocale, aBounds = m_xBreak->getWordBoundary(aTest, 0, aLocale,
i18n::WordType::DICTIONARY_WORD, true); i18n::WordType::DICTIONARY_WORD, true);
CPPUNIT_ASSERT_MESSAGE("Should skip full word", CPPUNIT_ASSERT_MESSAGE("Should skip full word",
aBounds.startPos == 0 && aBounds.endPos == aTest.getLength()); aBounds.startPos == 0 && aBounds.endPos == aTest.getLength());
} }
#ifdef TODO
{ {
const sal_Unicode NORTHERN_THAI1[] = { 0x0E01, 0x0E38, 0x0E4A, 0x0E2B, 0x0E25, 0x0E32, 0x0E1A }; const sal_Unicode NORTHERN_THAI1[] = { 0x0E01, 0x0E38, 0x0E4A, 0x0E2B, 0x0E25, 0x0E32, 0x0E1A };
::rtl::OUString aTest(NORTHERN_THAI1, SAL_N_ELEMENTS(NORTHERN_THAI1)); ::rtl::OUString aTest(NORTHERN_THAI1, SAL_N_ELEMENTS(NORTHERN_THAI1));
...@@ -279,6 +279,7 @@ void TestBreakIterator::testThai() ...@@ -279,6 +279,7 @@ void TestBreakIterator::testThai()
CPPUNIT_ASSERT_MESSAGE("Should skip full word", CPPUNIT_ASSERT_MESSAGE("Should skip full word",
aBounds.startPos == 0 && aBounds.endPos == aTest.getLength()); aBounds.startPos == 0 && aBounds.endPos == aTest.getLength());
} }
#endif
} }
TestBreakIterator::TestBreakIterator() TestBreakIterator::TestBreakIterator()
......
...@@ -129,10 +129,13 @@ void SAL_CALL BreakIterator_Unicode::loadICUBreakIterator(const com::sun::star:: ...@@ -129,10 +129,13 @@ void SAL_CALL BreakIterator_Unicode::loadICUBreakIterator(const com::sun::star::
OOoRuleBasedBreakIterator *rbi = NULL; OOoRuleBasedBreakIterator *rbi = NULL;
if (breakRules.getLength() > breakType && !breakRules[breakType].isEmpty()) { if (breakRules.getLength() > breakType && !breakRules[breakType].isEmpty())
{
rbi = new OOoRuleBasedBreakIterator(udata_open("OpenOffice", "brk", rbi = new OOoRuleBasedBreakIterator(udata_open("OpenOffice", "brk",
OUStringToOString(breakRules[breakType], RTL_TEXTENCODING_ASCII_US).getStr(), &status), status); 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; status = U_ZERO_ERROR;
OStringBuffer aUDName(64); OStringBuffer aUDName(64);
aUDName.append(rule); aUDName.append(rule);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment