[Libreoffice-commits] core.git: Branch 'libreoffice-6-0' - editeng/source
Caolán McNamara
caolanm at redhat.com
Fri Jan 19 13:21:12 UTC 2018
editeng/source/editeng/impedit2.cxx | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
New commits:
commit aba61f7b4a89db67c475f59101258d6054196545
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Jan 18 21:09:53 2018 +0000
ofz#5477 if the para is already oversize, nums would go negative
Change-Id: I183e1377747f662da1204e90a24fb4f8f2268699
Reviewed-on: https://gerrit.libreoffice.org/48157
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Michael Stahl <mstahl at redhat.com>
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index 0ba0a04e53af..41fec1bf80b3 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -2722,12 +2722,13 @@ EditPaM ImpEditEngine::ImpInsertText(const EditSelection& aCurSel, const OUStrin
if ( nEnd > nStart )
{
OUString aLine = aText.copy( nStart, nEnd-nStart );
- sal_Int32 nChars = aPaM.GetNode()->Len() + aLine.getLength();
- if ( nChars > MAXCHARSINPARA )
+ sal_Int32 nExistingChars = aPaM.GetNode()->Len();
+ sal_Int32 nChars = nExistingChars + aLine.getLength();
+ if (nChars > MAXCHARSINPARA)
{
- sal_Int32 nMaxNewChars = MAXCHARSINPARA-aPaM.GetNode()->Len();
+ sal_Int32 nMaxNewChars = std::max<sal_Int32>(0, MAXCHARSINPARA - nExistingChars);
nEnd -= ( aLine.getLength() - nMaxNewChars ); // Then the characters end up in the next paragraph.
- aLine = aLine.copy( 0, nMaxNewChars ); // Delete the Rest...
+ aLine = aLine.copy( 0, nMaxNewChars ); // Delete the Rest...
}
if ( IsUndoEnabled() && !IsInUndo() )
InsertUndo(new EditUndoInsertChars(pEditEngine, CreateEPaM(aPaM), aLine));
More information about the Libreoffice-commits
mailing list