[FarGroup/FarManager] master: Reduce the number of pointless messages when deleting in "Skip all" mode (99a5b497d)

0 views
Skip to first unread message

farg...@farmanager.com

unread,
Dec 4, 2025, 5:15:51 PM (2 days ago) Dec 4
to farco...@googlegroups.com
Repository : https://github.com/FarGroup/FarManager
On branch : master
Link : https://github.com/FarGroup/FarManager/commit/99a5b497d0446805221df14d7e38b38e1c86f543

>---------------------------------------------------------------

commit 99a5b497d0446805221df14d7e38b38e1c86f543
Author: Alex Alabuzhev <alab...@gmail.com>
Date: Thu Dec 4 22:00:32 2025 +0000

Reduce the number of pointless messages when deleting in "Skip all" mode


>---------------------------------------------------------------

99a5b497d0446805221df14d7e38b38e1c86f543
far/changelog | 5 +++++
far/delete.cpp | 19 +++++++++----------
far/vbuild.m4 | 2 +-
3 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/far/changelog b/far/changelog
index 4d0db93b8..f5d784abc 100644
--- a/far/changelog
+++ b/far/changelog
@@ -1,3 +1,8 @@
+--------------------------------------------------------------------------------
+drkns 2025-12-04 21:58:24+00:00 - build 6611
+
+1. Reduce the number of pointless messages when deleting in "Skip all" mode.
+
--------------------------------------------------------------------------------
drkns 2025-12-03 22:18:07+00:00 - build 6610

diff --git a/far/delete.cpp b/far/delete.cpp
index 3dcd45e0e..69fab5f4c 100644
--- a/far/delete.cpp
+++ b/far/delete.cpp
@@ -195,8 +195,7 @@ private:
std::optional<bool>
m_DeleteReadOnly,
m_SkipWipe;
- bool m_SkipFileErrors{};
- bool m_SkipFolderErrors{};
+ bool m_SkipErrors{};
bool m_DeleteFolders{};
unsigned ProcessedItems{};
bool m_UpdateDiz{};
@@ -883,21 +882,21 @@ bool ShellDelete::ShellRemoveFile(string_view const Name, progress Files, delete
switch (m_DeleteType)
{
case delete_type::erase:
- return erase_file_with_retry(strFullName, m_SkipWipe, Files, Progress, m_SkipFileErrors);
+ return erase_file_with_retry(strFullName, m_SkipWipe, Files, Progress, m_SkipErrors);

case delete_type::remove:
- return delete_file_with_retry(strFullName, m_SkipFileErrors);
+ return delete_file_with_retry(strFullName, m_SkipErrors);

case delete_type::recycle:
{
auto RetryRecycleAsRemove = false, Skip = false;

- const auto Result = retryable_ui_operation([&]{ return RemoveToRecycleBin(strFullName, false, RetryRecycleAsRemove, Skip) || RetryRecycleAsRemove || Skip; }, strFullName, lng::MCannotRecycleFile, m_SkipFileErrors);
+ const auto Result = retryable_ui_operation([&]{ return RemoveToRecycleBin(strFullName, false, RetryRecycleAsRemove, Skip) || RetryRecycleAsRemove || Skip; }, strFullName, lng::MCannotRecycleFile, m_SkipErrors);
if (Result && !RetryRecycleAsRemove && !Skip)
return true;

if (RetryRecycleAsRemove)
- return delete_file_with_retry(strFullName, m_SkipFileErrors);
+ return delete_file_with_retry(strFullName, m_SkipErrors);

return false;
}
@@ -915,13 +914,13 @@ bool ShellDelete::ERemoveDirectory(string_view const Name, delete_type const Typ
{
case delete_type::remove:
case delete_type::erase:
- return retryable_ui_operation([&]{ return (Type == delete_type::erase? EraseDirectory : os::fs::remove_directory)(Name); }, Name, lng::MCannotDeleteFolder, m_SkipFolderErrors);
+ return retryable_ui_operation([&]{ return (Type == delete_type::erase? EraseDirectory : os::fs::remove_directory)(Name); }, Name, lng::MCannotDeleteFolder, m_SkipErrors);

case delete_type::recycle:
{
auto Skip = false;
return
- retryable_ui_operation([&]{ return RemoveToRecycleBin(Name, true, RetryRecycleAsRemove, Skip) || RetryRecycleAsRemove || Skip; }, Name, lng::MCannotRecycleFolder, m_SkipFolderErrors) &&
+ retryable_ui_operation([&]{ return RemoveToRecycleBin(Name, true, RetryRecycleAsRemove, Skip) || RetryRecycleAsRemove || Skip; }, Name, lng::MCannotRecycleFolder, m_SkipErrors) &&
!Skip &&
!RetryRecycleAsRemove;
}
@@ -982,7 +981,7 @@ bool ShellDelete::RemoveToRecycleBin(string_view const Name, bool dir, bool& Ret
if (os::fs::move_to_recycle_bin(strFullName))
return true;

- if (dir? m_SkipFolderErrors : m_SkipFileErrors)
+ if (m_SkipErrors)
return false;

const auto ErrorState = os::last_error();
@@ -1002,7 +1001,7 @@ bool ShellDelete::RemoveToRecycleBin(string_view const Name, bool dir, bool& Ret
return false;

case message_result::third_button: // [Skip All]
- (dir? m_SkipFolderErrors : m_SkipFileErrors) = true;
+ m_SkipErrors = true;
[[fallthrough]];
case message_result::second_button: // [Skip]
Skip = true;
diff --git a/far/vbuild.m4 b/far/vbuild.m4
index aaf5e677e..8755c7be2 100644
--- a/far/vbuild.m4
+++ b/far/vbuild.m4
@@ -1 +1 @@
-6610
+6611


Reply all
Reply to author
Forward
0 new messages