[Libreoffice-commits] core.git: i18npool/qa i18npool/source

Robert M Campbell robert.rcampbell at gmail.com
Wed Nov 13 08:26:20 PST 2013


 i18npool/qa/cppunit/test_breakiterator.cxx              |   25 ++++++++++++++++
 i18npool/source/breakiterator/breakiterator_unicode.cxx |    2 -
 2 files changed, 26 insertions(+), 1 deletion(-)

New commits:
commit f24fa8efad247bdc296e4724b914f73f01ef2d0b
Author: Robert M Campbell <robert.rcampbell at gmail.com>
Date:   Wed Nov 13 23:15:13 2013 +0700

    Add Lao breakiterator support for selecting and counting Lao words.
    
    Change-Id: I6da721dc25394dfee12e3028aefbf0546d1be984
    Reviewed-on: https://gerrit.libreoffice.org/6669
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx
index 8d70250..a81475b 100644
--- a/i18npool/qa/cppunit/test_breakiterator.cxx
+++ b/i18npool/qa/cppunit/test_breakiterator.cxx
@@ -39,6 +39,7 @@ public:
     void testWeak();
     void testAsian();
     void testThai();
+    void testLao();
 #ifdef TODO
     void testNorthernThai();
 #endif
@@ -59,6 +60,9 @@ public:
 #if (U_ICU_VERSION_MAJOR_NUM > 4)
     CPPUNIT_TEST(testKhmer);
 #endif
+#if (U_ICU_VERSION_MAJOR_NUM > 51)
+    CPPUNIT_TEST(testLao);
+#endif
     CPPUNIT_TEST(testJapanese);
     CPPUNIT_TEST_SUITE_END();
 private:
@@ -784,6 +788,27 @@ void TestBreakIterator::testAsian()
     }
 }
 
+//A test to ensure that our Lao word boundary detection is useful
+void TestBreakIterator::testLao()
+{
+    lang::Locale aLocale;
+    aLocale.Language = OUString("lo");
+    aLocale.Country = OUString("LA");
+    //ຍິນດີຕ້ອນຮັບ
+    const sal_Unicode LAO[] = { 0x0e8d, 0x0eb4, 0x0e99, 0x0e94, 0x0eb5, 0x0e95, 0x0ec9, 0x0ead, 0x0e99, 0x0eae, 0x0eb1, 0x0e9a };
+    OUString aTest(LAO, SAL_N_ELEMENTS(LAO));
+    i18n::Boundary aBounds = m_xBreak->getWordBoundary(aTest, 0, aLocale,
+        i18n::WordType::DICTIONARY_WORD, true);
+
+    CPPUNIT_ASSERT(aBounds.startPos == 0 && aBounds.endPos == 5);
+
+    aBounds = m_xBreak->getWordBoundary(aTest, aBounds.endPos, aLocale,
+        i18n::WordType::DICTIONARY_WORD, true);
+
+    CPPUNIT_ASSERT(aBounds.startPos == 5 && aBounds.endPos == 9);
+
+}
+
 //A test to ensure that our thai word boundary detection is useful
 void TestBreakIterator::testThai()
 {
diff --git a/i18npool/source/breakiterator/breakiterator_unicode.cxx b/i18npool/source/breakiterator/breakiterator_unicode.cxx
index f85c109..3bb2e3e 100644
--- a/i18npool/source/breakiterator/breakiterator_unicode.cxx
+++ b/i18npool/source/breakiterator/breakiterator_unicode.cxx
@@ -121,7 +121,7 @@ void SAL_CALL BreakIterator_Unicode::loadICUBreakIterator(const com::sun::star::
                     OUStringToOString(breakRules[breakType], RTL_TEXTENCODING_ASCII_US).getStr(), &status), status);
             }
             //use icu's breakiterator for Thai, Khmer, Tibetan and Dzongkha
-            else if (rLocale.Language != "th" && rLocale.Language != "km" && rLocale.Language != "bo" && rLocale.Language != "dz")
+            else if (rLocale.Language != "th" && rLocale.Language != "lo" && rLocale.Language != "km" && rLocale.Language != "bo" && rLocale.Language != "dz")
             {
                 status = U_ZERO_ERROR;
                 OStringBuffer aUDName(64);


More information about the Libreoffice-commits mailing list