[Libreoffice-commits] core.git: Branch 'libreoffice-4-2' - i18npool/source

László Németh nemeth at numbertext.org
Thu May 29 03:07:30 PDT 2014


 i18npool/source/breakiterator/breakiterator_unicode.cxx |   22 ++--------------
 1 file changed, 3 insertions(+), 19 deletions(-)

New commits:
commit ba076a9eeddf7e1b61faa6094fdd91e8a9b9bc1f
Author: László Németh <nemeth at numbertext.org>
Date:   Thu May 29 08:35:07 2014 +0200

    fdo#79372 fix hyphenation (remove fdo#56392 fix, except hard hyphen part)
    
    Change-Id: Ia2f482fb7737e61cfc42966dbc7af6e1cdb3b41d
    Reviewed-on: https://gerrit.libreoffice.org/9544
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/i18npool/source/breakiterator/breakiterator_unicode.cxx b/i18npool/source/breakiterator/breakiterator_unicode.cxx
index 3bb2e3e..b2d99d2 100644
--- a/i18npool/source/breakiterator/breakiterator_unicode.cxx
+++ b/i18npool/source/breakiterator/breakiterator_unicode.cxx
@@ -372,29 +372,13 @@ LineBreakResults SAL_CALL BreakIterator_Unicode::getLineBreak(
         if (line.aBreakIterator->preceding(nStartPos + 1) == nStartPos) { //Line boundary break
             lbr.breakIndex = nStartPos;
             lbr.breakType = BreakType::WORDBOUNDARY;
-        } else if (hOptions.rHyphenator.is()) { //Hyphenation break
-            sal_Int32 boundary_with_punctuation = (line.aBreakIterator->next() != BreakIterator::DONE) ? line.aBreakIterator->current() : 0;
-            line.aBreakIterator->preceding(nStartPos + 1); // reset to check correct hyphenation of "word-word"
-
-            sal_Int32 nStartPosWordEnd = nStartPos;
-            while (line.aBreakIterator->current() < nStartPosWordEnd && u_ispunct((sal_uInt32)Text[nStartPosWordEnd])) // starting punctuation
-                nStartPosWordEnd --;
-
-            Boundary wBoundary = getWordBoundary( Text, nStartPosWordEnd, rLocale,
+        } else if (hOptions.rHyphenator.is()) { //Hyphenation break, FIXME: fdo#56392
+            Boundary wBoundary = getWordBoundary( Text, nStartPos, rLocale,
                 WordType::DICTIONARY_WORD, false);
-
-            nStartPosWordEnd = wBoundary.endPos;
-            while (nStartPosWordEnd < Text.getLength() && (u_ispunct((sal_uInt32)Text[nStartPosWordEnd]))) // ending punctuation
-                nStartPosWordEnd ++;
-            nStartPosWordEnd = nStartPosWordEnd - wBoundary.endPos;
-            if (hOptions.hyphenIndex - wBoundary.startPos < nStartPosWordEnd) nStartPosWordEnd = hOptions.hyphenIndex - wBoundary.startPos;
-#define SPACE 0x0020
-            while (boundary_with_punctuation > wBoundary.endPos && Text[--boundary_with_punctuation] == SPACE);
-            if (boundary_with_punctuation != 0) boundary_with_punctuation += 1 - wBoundary.endPos;
             uno::Reference< linguistic2::XHyphenatedWord > aHyphenatedWord;
             aHyphenatedWord = hOptions.rHyphenator->hyphenate(Text.copy(wBoundary.startPos,
                         wBoundary.endPos - wBoundary.startPos), rLocale,
-                    (sal_Int16) (hOptions.hyphenIndex - wBoundary.startPos - nStartPosWordEnd), hOptions.aHyphenationOptions);
+                    (sal_Int16) (hOptions.hyphenIndex - wBoundary.startPos), hOptions.aHyphenationOptions);
             if (aHyphenatedWord.is()) {
                 lbr.rHyphenatedWord = aHyphenatedWord;
                 if(wBoundary.startPos + aHyphenatedWord->getHyphenationPos() + 1 < nMinBreakPos )


More information about the Libreoffice-commits mailing list