diff options
author | Eike Rathke <erack@redhat.com> | 2022-01-19 21:32:21 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2022-01-19 22:54:29 +0100 |
commit | 2cfa04cbf03fe5c2ce32a7384082cdc5de5a4785 (patch) | |
tree | 14802638af552f68b3d0f076c3b3b1f903fac760 /editeng | |
parent | e8e53b29777b60b136520b5dbb3f776ce9f04d63 (diff) |
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
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/editeng/impedit2.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index b19d1b4a673a..0fd1c004263b 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)); |