From 98253a3d30297243f5f6b7c2c4062ec8091ed27f Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Sat, 9 Aug 2014 23:33:10 +0200 Subject: [PATCH] search from beg/end only the first hit --- src/ce_search.pas | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/ce_search.pas b/src/ce_search.pas index 98721e34..01548557 100644 --- a/src/ce_search.pas +++ b/src/ce_search.pas @@ -37,6 +37,7 @@ type fSearchMru, fReplaceMru: TMruList; fCancelAll: boolean; fHasSearched: boolean; + fHasRestarted: boolean; procedure optset_SearchMru(aReader: TReader); procedure optget_SearchMru(aWriter: TWriter); procedure optset_ReplaceMru(aReader: TReader); @@ -189,7 +190,11 @@ begin if chkBack.Checked then fEditor.CaretXY := Point(high(Integer), high(Integer)) else - fEditor.CaretXY := Point(0,0); + begin + if not fHasRestarted then + fEditor.CaretXY := Point(0,0); + fHasRestarted := true; + end; end else if fHasSearched then begin @@ -200,7 +205,12 @@ begin end; if fEditor.SearchReplace(fToFind, '', getOptions) = 0 then dlgOkInfo('the expression cannot be found') - else fHasSearched := true; + else + begin + fHasSearched := true; + fHasRestarted := false; + chkFromCur.Checked := true; + end; UpdateByEvent; end;