FIX: Bug [0002002] Viewer search next/previous fault #2

This commit is contained in:
Alexander Koblov 2018-02-01 19:12:47 +00:00
commit efac3f6923
2 changed files with 6 additions and 2 deletions

View file

@ -201,6 +201,9 @@ const
veUtf8, veUtf8bom, veUcs2le, veUcs2be,
veUtf16le, veUtf16be, veUtf32le, veUtf32be];
ViewerEncodingDoubleByte: TViewerEncodings = [
veUcs2le, veUcs2be, veUtf16le, veUtf16be ];
type

View file

@ -2066,11 +2066,11 @@ begin
begin
T:= GetTickCount64;
sSearchTextA:= ViewerControl.ConvertFromUTF8(sSearchTextU);
iSearchParameter:= Length(sSearchTextA);
// Choose search start position.
if not bSearchBackwards then
begin
iSearchParameter:= Length(sSearchTextA);
if FLastSearchPos = -1 then
FLastSearchPos := 0
else if FLastSearchPos < ViewerControl.FileSize - iSearchParameter then
@ -2078,9 +2078,10 @@ begin
end
else
begin
iSearchParameter:= IfThen(ViewerControl.Encoding in ViewerEncodingDoubleByte, 2, 1);
if FLastSearchPos = -1 then
FLastSearchPos := ViewerControl.FileSize - 1
else if FLastSearchPos > iSearchParameter then
else if FLastSearchPos >= iSearchParameter then
FLastSearchPos := FLastSearchPos - iSearchParameter;
end;