Index: README.chromium diff --git a/README.chromium b/README.chromium index 76acd4b06530827413286a72fed86771147c88d8..7e85c4949f1b52bbbda26e2d90b49852aaff7563 100644 --- a/README.chromium +++ b/README.chromium @@ -255,5 +255,5 @@ This directory contains the source code of ICU 4.6 for C/C++ - patches/csetdet.patch - upstream bug: http://bugs.icu-project.org/trac/ticket/10318 - - +26. Add BreakIterator::getRuleStatus + - Copy and paste BreakIterator::getRuleStatus API from icu 52 Index: patches/breakiterator.patch diff --git a/patches/breakiterator.patch b/patches/breakiterator.patch new file mode 100644 index 0000000000000000000000000000000000000000..f1b36a34d0b408940a9c528fa0c796e2db6cb457 --- /dev/null +++ b/patches/breakiterator.patch @@ -0,0 +1,74 @@ +From c795f7766bd4f650a2396c834bc2a07768781ae8 Mon Sep 17 00:00:00 2001 +From: Igor Oliveira <igor.o@sisa.samsung.com> +Date: Tue, 17 Sep 2013 14:43:07 -0700 +Subject: [PATCH] The CL https://codereview.chromium.org/23618052/ depends of + an API that will be added by libicu 5.2, + BreakIterator::getRuleStatus. This patch is just a copy and + paste of the libicu 5.2 API into chromium libicu. + +--- + README.chromium | 3 +++ + source/common/brkiter.cpp | 7 +++++++ + source/common/unicode/brkiter.h | 15 +++++++++++++++ + 3 files changed, 25 insertions(+) + +diff --git a/README.chromium b/README.chromium +index 76acd4b..eaf2e81 100644 +--- a/README.chromium ++++ b/README.chromium +@@ -255,5 +255,8 @@ This directory contains the source code of ICU 4.6 for C/C++ + - patches/csetdet.patch + - upstream bug: http://bugs.icu-project.org/trac/ticket/10318 + ++26. Add BreakIterator::getRuleStatus ++ - Copy and paste BreakIterator::getRuleStatus API from icu 5.2 ++ + + +diff --git a/source/common/brkiter.cpp b/source/common/brkiter.cpp +index 26f7b6a..41da826 100644 +--- a/source/common/brkiter.cpp ++++ b/source/common/brkiter.cpp +@@ -436,6 +436,13 @@ BreakIterator::getLocaleID(ULocDataLocaleType type, UErrorCode& status) const { + return locBased.getLocaleID(type, status); + } + ++// This implementation of getRuleStatus is a do-nothing stub, here to ++// provide a default implementation for any derived BreakIterator classes that ++// do not implement it themselves. ++int32_t BreakIterator::getRuleStatus() const { ++ return 0; ++} ++ + U_NAMESPACE_END + + #endif /* #if !UCONFIG_NO_BREAK_ITERATION */ +diff --git a/source/common/unicode/brkiter.h b/source/common/unicode/brkiter.h +index bdd3cc7..1800336 100644 +--- a/source/common/unicode/brkiter.h ++++ b/source/common/unicode/brkiter.h +@@ -284,6 +284,21 @@ public: + virtual int32_t next(int32_t n) = 0; + + /** ++ * For RuleBasedBreakIterators, return the status tag from the ++ * break rule that determined the most recently ++ * returned break position. ++ * <p> ++ * For break iterator types that do not support a rule status, ++ * a default value of 0 is returned. ++ * <p> ++ * @return the status from the break rule that determined the most recently ++ * returned break position. ++ * @see RuleBaseBreakIterator::getRuleStatus() ++ * @see UWordBreak ++ */ ++ virtual int32_t getRuleStatus() const; ++ ++ /** + * Create BreakIterator for word-breaks using the given locale. + * Returns an instance of a BreakIterator implementing word breaks. + * WordBreak is useful for word selection (ex. double click) +-- +1.7.12.4 (Apple Git-37) + Index: source/common/brkiter.cpp diff --git a/source/common/brkiter.cpp b/source/common/brkiter.cpp index 26f7b6a82e8b8981dce42a08d8fca6a2a42e81cc..41da826748370ad5caff57191e8c0f2f0da12c3e 100644 --- a/source/common/brkiter.cpp +++ b/source/common/brkiter.cpp @@ -436,6 +436,13 @@ BreakIterator::getLocaleID(ULocDataLocaleType type, UErrorCode& status) const { return locBased.getLocaleID(type, status); } +// This implementation of getRuleStatus is a do-nothing stub, here to +// provide a default implementation for any derived BreakIterator classes that +// do not implement it themselves. +int32_t BreakIterator::getRuleStatus() const { + return 0; +} + U_NAMESPACE_END #endif /* #if !UCONFIG_NO_BREAK_ITERATION */ Index: source/common/unicode/brkiter.h diff --git a/source/common/unicode/brkiter.h b/source/common/unicode/brkiter.h index bdd3cc700f46e62e56f1fa84bfe0a6dcf18406da..180033661b12fa135782f23a6fa72ff8efb07878 100644 --- a/source/common/unicode/brkiter.h +++ b/source/common/unicode/brkiter.h @@ -284,6 +284,21 @@ public: virtual int32_t next(int32_t n) = 0; /** + * For RuleBasedBreakIterators, return the status tag from the + * break rule that determined the most recently + * returned break position. + * <p> + * For break iterator types that do not support a rule status, + * a default value of 0 is returned. + * <p> + * @return the status from the break rule that determined the most recently + * returned break position. + * @see RuleBaseBreakIterator::getRuleStatus() + * @see UWordBreak + */ + virtual int32_t getRuleStatus() const; + + /** * Create BreakIterator for word-breaks using the given locale. * Returns an instance of a BreakIterator implementing word breaks. * WordBreak is useful for word selection (ex. double click)