From cc0dcc2714205d9a39ede764e9f723f2dc5c5ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= <41945903+qarmin@users.noreply.github.com> Date: Sat, 8 May 2021 21:54:01 +0200 Subject: [PATCH] Fix excluded items on Windows (#324) --- czkawka_core/src/common.rs | 6 ++++++ czkawka_core/src/common_items.rs | 5 ++++- czkawka_gui/src/connect_popovers.rs | 10 ++++++++++ czkawka_gui/src/saving_loading.rs | 2 +- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/czkawka_core/src/common.rs b/czkawka_core/src/common.rs index f8da88e..0002c94 100644 --- a/czkawka_core/src/common.rs +++ b/czkawka_core/src/common.rs @@ -157,6 +157,12 @@ mod test { assert!(!Common::regex_check("*home/*koc", "/koc/home/")); assert!(!Common::regex_check("*home/", "/home")); assert!(!Common::regex_check("*TTT", "/GGG")); + + #[cfg(target_family = "windows")] + { + assert!(Common::regex_check("*\\home", "C:\\home")); + assert!(Common::regex_check("*/home", "C:\\home")); + } } #[test] fn test_windows_path() { diff --git a/czkawka_core/src/common_items.rs b/czkawka_core/src/common_items.rs index 7d37f70..b2c2530 100644 --- a/czkawka_core/src/common_items.rs +++ b/czkawka_core/src/common_items.rs @@ -27,6 +27,9 @@ impl ExcludedItems { for expression in expressions { let expression: String = expression.trim().to_string(); + #[cfg(target_family = "windows")] + let expression = expression.replace("/", "\\"); + if expression.is_empty() { continue; } @@ -35,7 +38,7 @@ impl ExcludedItems { checked_expressions.push("*/.git/*,*/node_modules/*,*/lost+found/*,*/Trash/*,*/.Trash-*/*,*/snap/*,/home/*/.cache/*".to_string()); } if cfg!(target_family = "windows") { - checked_expressions.push("*/.git/*,*/node_modules/*,*/lost+found/*,*:/windows/*".to_string()); + checked_expressions.push("*\\.git\\*,*\\node_modules\\*,*\\lost+found\\*,*:\\windows\\*".to_string()); } continue; } diff --git a/czkawka_gui/src/connect_popovers.rs b/czkawka_gui/src/connect_popovers.rs index c634da5..156e36a 100644 --- a/czkawka_gui/src/connect_popovers.rs +++ b/czkawka_gui/src/connect_popovers.rs @@ -360,6 +360,11 @@ fn popover_select_custom(popover: >k::Popover, gui_data: &GuiData, tree_view: if !wildcard.is_empty() { let wildcard = wildcard.trim(); + #[cfg(target_family = "windows")] + let wildcard = wildcard.replace("/", "\\"); + #[cfg(target_family = "windows")] + let wildcard = wildcard.as_str(); + let selection = tree_view.get_selection(); let tree_model = tree_view.get_model().unwrap(); @@ -474,6 +479,11 @@ fn popover_unselect_custom(popover: >k::Popover, gui_data: &GuiData, tree_view if !wildcard.is_empty() { let wildcard = wildcard.trim(); + #[cfg(target_family = "windows")] + let wildcard = wildcard.replace("/", "\\"); + #[cfg(target_family = "windows")] + let wildcard = wildcard.as_str(); + let selection = tree_view.get_selection(); let tree_model = tree_view.get_model().unwrap(); diff --git a/czkawka_gui/src/saving_loading.rs b/czkawka_gui/src/saving_loading.rs index 135b1b2..f33a9aa 100644 --- a/czkawka_gui/src/saving_loading.rs +++ b/czkawka_gui/src/saving_loading.rs @@ -540,7 +540,7 @@ pub fn reset_configuration(gui_data: &GuiData, manual_clearing: bool) { entry_excluded_items.set_text("*/.git/*,*/node_modules/*,*/lost+found/*,*/Trash/*,*/.Trash-*/*,*/snap/*,/home/*/.cache/*"); } if cfg!(target_family = "windows") { - entry_excluded_items.set_text("*/.git/*,*/node_modules/*,*/lost+found/*,*:/windows/*"); + entry_excluded_items.set_text("*\\.git\\*,*\\node_modules\\*,*\\lost+found\\*,*:\\windows\\*"); } } // Resetting allowed extensions