Resolves: tdf#139974 Do not munge character after forced line break
A classical +-1 error..
Change-Id: I8b6bc0843fa585d8a710c74f757098ab9c6f823d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128637
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index b19d1b4..0fd1c00 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -2730,8 +2730,10 @@ EditPaM ImpEditEngine::ImpInsertText(const EditSelection& aCurSel, const OUStrin
if (nChars > MAXCHARSINPARA)
{
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...
// Remaining characters end up in the next paragraph. Note that
// new nStart will be nEnd+1 below so decrement by one more.
nEnd -= (aLine.getLength() - nMaxNewChars + 1);
aLine = aLine.copy( 0, nMaxNewChars ); // Delete the Rest...
}
if ( IsUndoEnabled() && !IsInUndo() )
InsertUndo(std::make_unique<EditUndoInsertChars>(pEditEngine, CreateEPaM(aPaM), aLine));