Repository :
https://github.com/FarGroup/FarManager
On branch : master
Link :
https://github.com/FarGroup/FarManager/commit/52db55ead8c67ae618b8ad023cc0592d9cda10c6
>---------------------------------------------------------------
commit 52db55ead8c67ae618b8ad023cc0592d9cda10c6
Author: Alex Alabuzhev <
alab...@gmail.com>
Date: Fri Dec 26 10:41:22 2025 +0000
Fix empty string replace in Editor
Expetimental. Also M2467.
>---------------------------------------------------------------
52db55ead8c67ae618b8ad023cc0592d9cda10c6
far/editor.cpp | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/far/editor.cpp b/far/editor.cpp
index 6c77bf33f..6be7cd01e 100644
--- a/far/editor.cpp
+++ b/far/editor.cpp
@@ -3679,7 +3679,7 @@ void Editor::DoSearchReplace(const SearchReplaceDisposition Disposition)
Pasting--;
}
- bool Skip=false, ZeroLength=false;
+ bool Skip=false;
// Отступим на четверть и проверим на перекрытие диалогом замены
int FromTop=(ScrY-2)/4;
@@ -3710,9 +3710,6 @@ void Editor::DoSearchReplace(const SearchReplaceDisposition Disposition)
}
else
{
- if (!SearchLength && strReplaceStrCurrent.empty())
- ZeroLength = true;
-
auto MsgCode = message_result::first_button;
if (!IsReplaceAll)
@@ -3867,13 +3864,15 @@ void Editor::DoSearchReplace(const SearchReplaceDisposition Disposition)
}
CurPos = m_it_CurLine->GetCurPos();
- if ((Skip || ZeroLength) && !Backward)
+ if (!Backward)
{
- CurPos++;
+ if (Skip || !SearchLength)
+ CurPos++;
}
- if (!(Skip || ZeroLength) && Backward)
+ else
{
- (m_it_CurLine = CurPtr = m_FoundLine)->SetCurPos(CurPos = m_FoundPos);
+ if (!Skip || !SearchLength)
+ (m_it_CurLine = CurPtr = m_FoundLine)->SetCurPos(CurPos = m_FoundPos);
}
}
}