summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorpgoyette <pgoyette>2016-12-05 04:15:23 +0000
committerpgoyette <pgoyette>2016-12-05 04:15:23 +0000
commit47cae1268c96982d89574763459c0ffa65c39f7e (patch)
treeaa8af932b29a29de1b0bcba24e6c8f57b5d577a9 /misc
parent106b70511e8ad1221172c822c6860d1b30c6dc83 (diff)
downloadpkgsrc-47cae1268c96982d89574763459c0ffa65c39f7e.tar.gz
Import fix from upstream to deal with ICU 58. From FreeBSD.
Diffstat (limited to 'misc')
-rw-r--r--misc/libreoffice/patches/patch-i18npool_source_breakiterator_breakiterator__unicode.cxx43
1 files changed, 43 insertions, 0 deletions
diff --git a/misc/libreoffice/patches/patch-i18npool_source_breakiterator_breakiterator__unicode.cxx b/misc/libreoffice/patches/patch-i18npool_source_breakiterator_breakiterator__unicode.cxx
new file mode 100644
index 00000000000..a771b6c8156
--- /dev/null
+++ b/misc/libreoffice/patches/patch-i18npool_source_breakiterator_breakiterator__unicode.cxx
@@ -0,0 +1,43 @@
+$NetBSD: patch-i18npool_source_breakiterator_breakiterator__unicode.cxx,v 1.1 2016/12/05 04:15:23 pgoyette Exp $
+
+Unbreak build break caused by icu 58 (from FreeBSD)
+
+--- i18npool/source/breakiterator/breakiterator_unicode.cxx.orig 2016-05-04 21:28:24 UTC
++++ i18npool/source/breakiterator/breakiterator_unicode.cxx
+@@ -64,10 +64,13 @@ BreakIterator_Unicode::~BreakIterator_Un
+ class OOoRuleBasedBreakIterator : public RuleBasedBreakIterator
+ {
+ public:
++#if (U_ICU_VERSION_MAJOR_NUM < 58)
++ // RuleBasedBreakIterator::setBreakType() is private as of ICU 58.
+ inline void publicSetBreakType(int32_t type)
+ {
+ setBreakType(type);
+ };
++#endif
+ OOoRuleBasedBreakIterator(UDataMemory* image,
+ UErrorCode &status)
+ : RuleBasedBreakIterator(image, status)
+@@ -143,12 +146,21 @@ void SAL_CALL BreakIterator_Unicode::loa
+ }
+ }
+ if (rbi) {
++#if (U_ICU_VERSION_MAJOR_NUM < 58)
++ // ICU 58 made RuleBasedBreakIterator::setBreakType() private
++ // instead of protected, so the old workaround of
++ // https://ssl.icu-project.org/trac/ticket/5498
++ // doesn't work anymore. However, they also claim to have fixed
++ // the cause that an initial fBreakType==-1 would lead to an
++ // endless loop under some circumstances.
++ // Let's see ...
+ switch (rBreakType) {
+ case LOAD_CHARACTER_BREAKITERATOR: rbi->publicSetBreakType(UBRK_CHARACTER); break;
+ case LOAD_WORD_BREAKITERATOR: rbi->publicSetBreakType(UBRK_WORD); break;
+ case LOAD_SENTENCE_BREAKITERATOR: rbi->publicSetBreakType(UBRK_SENTENCE); break;
+ case LOAD_LINE_BREAKITERATOR: rbi->publicSetBreakType(UBRK_LINE); break;
+ }
++#endif
+ icuBI->aBreakIterator = rbi;
+ }
+ }
+