| 1 |
--- i18npool/source/breakiterator/breakiterator_unicode.cxx.orig 2008-04-17 10:25:10.000000000 -0400 |
|---|
| 2 |
+++ i18npool/source/breakiterator/breakiterator_unicode.cxx 2008-04-17 10:33:36.000000000 -0400 |
|---|
| 3 |
@@ -85,6 +85,21 @@ |
|---|
| 4 |
if (line.aBreakIterator) delete line.aBreakIterator; |
|---|
| 5 |
} |
|---|
| 6 |
|
|---|
| 7 |
+/* |
|---|
| 8 |
+ Wrapper class to provide public access to the RuleBasedBreakIterator's |
|---|
| 9 |
+ setbreakType method. |
|---|
| 10 |
+*/ |
|---|
| 11 |
+class OOoRuleBasedBreakIterator : public RuleBasedBreakIterator { |
|---|
| 12 |
+ public: |
|---|
| 13 |
+ inline void publicSetBreakType(int32_t type) { |
|---|
| 14 |
+ setBreakType(type); |
|---|
| 15 |
+ }; |
|---|
| 16 |
+ OOoRuleBasedBreakIterator(UDataMemory* image, |
|---|
| 17 |
+ UErrorCode &status) : |
|---|
| 18 |
+ RuleBasedBreakIterator(image, status) { }; |
|---|
| 19 |
+ |
|---|
| 20 |
+}; |
|---|
| 21 |
+ |
|---|
| 22 |
// loading ICU breakiterator on demand. |
|---|
| 23 |
void SAL_CALL BreakIterator_Unicode::loadICUBreakIterator(const com::sun::star::lang::Locale& rLocale, |
|---|
| 24 |
sal_Int16 rBreakType, sal_Int16 rWordType, const sal_Char *rule, const OUString& rText) throw(uno::RuntimeException) |
|---|
| 25 |
@@ -118,10 +133,10 @@ |
|---|
| 26 |
udata_setAppData("OpenOffice", OpenOffice_dat, &status); |
|---|
| 27 |
if ( !U_SUCCESS(status) ) throw ERROR; |
|---|
| 28 |
|
|---|
| 29 |
- RuleBasedBreakIterator *rbi = NULL; |
|---|
| 30 |
+ OOoRuleBasedBreakIterator *rbi = NULL; |
|---|
| 31 |
|
|---|
| 32 |
if (breakRules.getLength() > 0 && breakRules[breakType].getLength() > 0) { |
|---|
| 33 |
- rbi = new RuleBasedBreakIterator(udata_open("OpenOffice", "brk", |
|---|
| 34 |
+ rbi = new OOoRuleBasedBreakIterator(udata_open("OpenOffice", "brk", |
|---|
| 35 |
OUStringToOString(breakRules[breakType], RTL_TEXTENCODING_ASCII_US).getStr(), &status), status); |
|---|
| 36 |
} else { |
|---|
| 37 |
status = U_ZERO_ERROR; |
|---|
| 38 |
@@ -131,21 +146,21 @@ |
|---|
| 39 |
aUDName.append( OUStringToOString(rLocale.Language, RTL_TEXTENCODING_ASCII_US)); |
|---|
| 40 |
UDataMemory* pUData = udata_open("OpenOffice", "brk", aUDName.getStr(), &status); |
|---|
| 41 |
if( U_SUCCESS(status) ) |
|---|
| 42 |
- rbi = new RuleBasedBreakIterator( pUData, status); |
|---|
| 43 |
+ rbi = new OOoRuleBasedBreakIterator( pUData, status); |
|---|
| 44 |
if (!U_SUCCESS(status) ) { |
|---|
| 45 |
status = U_ZERO_ERROR; |
|---|
| 46 |
pUData = udata_open("OpenOffice", "brk", rule, &status); |
|---|
| 47 |
if( U_SUCCESS(status) ) |
|---|
| 48 |
- rbi = new RuleBasedBreakIterator( pUData, status); |
|---|
| 49 |
+ rbi = new OOoRuleBasedBreakIterator( pUData, status); |
|---|
| 50 |
if (!U_SUCCESS(status) ) icuBI->aBreakIterator=NULL; |
|---|
| 51 |
} |
|---|
| 52 |
} |
|---|
| 53 |
if (rbi) { |
|---|
| 54 |
switch (rBreakType) { |
|---|
| 55 |
- case LOAD_CHARACTER_BREAKITERATOR: rbi->setBreakType(UBRK_CHARACTER); break; |
|---|
| 56 |
- case LOAD_WORD_BREAKITERATOR: rbi->setBreakType(UBRK_WORD); break; |
|---|
| 57 |
- case LOAD_SENTENCE_BREAKITERATOR: rbi->setBreakType(UBRK_SENTENCE); break; |
|---|
| 58 |
- case LOAD_LINE_BREAKITERATOR: rbi->setBreakType(UBRK_LINE); break; |
|---|
| 59 |
+ case LOAD_CHARACTER_BREAKITERATOR: rbi->publicSetBreakType(UBRK_CHARACTER); break; |
|---|
| 60 |
+ case LOAD_WORD_BREAKITERATOR: rbi->publicSetBreakType(UBRK_WORD); break; |
|---|
| 61 |
+ case LOAD_SENTENCE_BREAKITERATOR: rbi->publicSetBreakType(UBRK_SENTENCE); break; |
|---|
| 62 |
+ case LOAD_LINE_BREAKITERATOR: rbi->publicSetBreakType(UBRK_LINE); break; |
|---|
| 63 |
} |
|---|
| 64 |
icuBI->aBreakIterator = rbi; |
|---|
| 65 |
} |
|---|