From 3985057ea0f76f3079a677b4f15532c30c95fe70 Mon Sep 17 00:00:00 2001 From: martin Date: Sat, 1 Aug 2009 16:02:05 +0000 Subject: [PATCH] SynEdit: fixed an issue with undo if eoScrollPastEOL and NO-TrimmSpace is set. Padding spaces for text inserted past eol was not undone git-svn-id: trunk@21058 - --- components/synedit/synedittextbuffer.pp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/components/synedit/synedittextbuffer.pp b/components/synedit/synedittextbuffer.pp index 55e476ecf1..dc5fe883ab 100644 --- a/components/synedit/synedittextbuffer.pp +++ b/components/synedit/synedittextbuffer.pp @@ -908,8 +908,10 @@ var s: string; begin s := Strings[LogY - 1]; - if LogX - 1 > Length(s) then + if LogX - 1 > Length(s) then begin AText := StringOfChar(' ', LogX - 1 - Length(s)) + AText; + LogX := Length(s) + 1; + end; Strings[LogY - 1] := copy(s,1, LogX - 1) + AText + copy(s, LogX, length(s)); UndoList.AddChange(TSynEditUndoTxtInsert.Create(LogX, LogY, Length(AText))); MarkModified(LogY, LogY); @@ -921,6 +923,8 @@ var s: string; begin s := Strings[LogY - 1]; + if LogX - 1 > Length(s) then + exit; Result := copy(s, LogX, ByteLen); Strings[LogY - 1] := copy(s,1, LogX - 1) + copy(s, LogX + ByteLen, length(s)); UndoList.AddChange(TSynEditUndoTxtDelete.Create(LogX, LogY, Result));