From bb5ed4da9ca78c3c0bc0d4668be7ed6c13195ae1 Mon Sep 17 00:00:00 2001 From: Abdo Date: Sun, 21 Jul 2024 11:00:39 +0300 Subject: [PATCH] Fix unused parent tags getting cleared (#3299) Co-authored-by: Damien Elmes --- rslib/src/tags/mod.rs | 2 +- rslib/src/tags/tree.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rslib/src/tags/mod.rs b/rslib/src/tags/mod.rs index aab335a3d..51b091ab8 100644 --- a/rslib/src/tags/mod.rs +++ b/rslib/src/tags/mod.rs @@ -56,7 +56,7 @@ fn is_tag_separator(c: char) -> bool { } pub(crate) fn immediate_parent_name_unicase(tag_name: UniCase<&str>) -> Option> { - tag_name.rsplit_once('\x1f').map(|t| t.0).map(UniCase::new) + tag_name.rsplit_once("::").map(|t| t.0).map(UniCase::new) } fn immediate_parent_name_str(tag_name: &str) -> Option<&str> { diff --git a/rslib/src/tags/tree.rs b/rslib/src/tags/tree.rs index f989cb39d..32f98d72e 100644 --- a/rslib/src/tags/tree.rs +++ b/rslib/src/tags/tree.rs @@ -58,10 +58,10 @@ fn add_missing_parents(tags: &mut Vec) { } fn tags_to_tree(mut tags: Vec) -> TagTreeNode { + add_missing_parents(&mut tags); for tag in &mut tags { tag.name = tag.name.replace("::", "\x1f"); } - add_missing_parents(&mut tags); tags.sort_unstable_by(|a, b| UniCase::new(&a.name).cmp(&UniCase::new(&b.name))); let mut top = TagTreeNode::default(); let mut it = tags.into_iter().peekable();