mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Compare regex strings case-insensitively in remove_plugin_metadata()
This commit is contained in:
@@ -348,7 +348,8 @@ impl MetadataDocument {
|
||||
// Only remove regex plugins if no specific plugin was removed, because
|
||||
// they're mutually exclusive.
|
||||
if removed.is_none() {
|
||||
self.regex_plugins.retain(|p| p.name() != plugin_name);
|
||||
self.regex_plugins
|
||||
.retain(|p| !unicase::eq(p.name(), plugin_name));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1113,6 +1114,29 @@ plugins:
|
||||
assert!(metadata.find_plugin(name).unwrap().is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn remove_plugin_metadata_should_remove_regex_entries_comparing_names_case_insensitively() {
|
||||
let mut metadata = MetadataDocument::default();
|
||||
|
||||
let regex_name = "Blank.*\\.esp";
|
||||
|
||||
let mut plugin = PluginMetadata::new(regex_name).unwrap();
|
||||
plugin.set_load_after_files(vec![File::new("A".to_owned())]);
|
||||
metadata.set_plugin_metadata(plugin.clone());
|
||||
|
||||
let mut plugin = PluginMetadata::new(regex_name).unwrap();
|
||||
plugin.set_load_after_files(vec![File::new("B".to_owned())]);
|
||||
metadata.set_plugin_metadata(plugin.clone());
|
||||
|
||||
let name = "Blank.esp";
|
||||
|
||||
assert!(metadata.find_plugin(name).unwrap().is_some());
|
||||
|
||||
metadata.remove_plugin_metadata("blank.*\\.esp");
|
||||
|
||||
assert!(metadata.find_plugin(name).unwrap().is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn remove_plugin_metadata_should_not_remove_matching_regex_plugin_metadata() {
|
||||
let mut metadata = MetadataDocument::default();
|
||||
|
||||
Reference in New Issue
Block a user