From 4009e0a347553d809020f9eb806f0ac8712f2c3f Mon Sep 17 00:00:00 2001 From: Brennan Kinney <5098581+polarathene@users.noreply.github.com> Date: Fri, 15 Aug 2025 20:48:33 +1200 Subject: [PATCH 1/2] chore: `file.rs` - Remove `add_dummy_extension()` helper This helper method is redundant, there is a much simpler approach to append the extension. --- src/file/source/file.rs | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/src/file/source/file.rs b/src/file/source/file.rs index bf30c119..918080b3 100644 --- a/src/file/source/file.rs +++ b/src/file/source/file.rs @@ -59,9 +59,10 @@ impl FileSourceFile { ))) }; } - // Adding a dummy extension will make sure we will not override secondary extensions, i.e. "file.local" - // This will make the following set_extension function calls to append the extension. - let mut filename = add_dummy_extension(filename); + + // Append an extension that will be replaced when calling `set_extension()`: + let mut filename = filename; + filename.as_mut_os_string().push(".ext_placeholder"); match format_hint { Some(format) => { @@ -134,18 +135,3 @@ where }) } } - -fn add_dummy_extension(mut filename: PathBuf) -> PathBuf { - match filename.extension() { - Some(extension) => { - let mut ext = extension.to_os_string(); - ext.push("."); - ext.push("dummy"); - filename.set_extension(ext); - } - None => { - filename.set_extension("dummy"); - } - } - filename -} From 353747a91256f648dcc09c62e18e0f3afc58f07c Mon Sep 17 00:00:00 2001 From: Brennan Kinney <5098581+polarathene@users.noreply.github.com> Date: Wed, 20 Aug 2025 14:37:39 +1200 Subject: [PATCH 2/2] Update src/file/source/file.rs --- src/file/source/file.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/file/source/file.rs b/src/file/source/file.rs index 918080b3..430df98b 100644 --- a/src/file/source/file.rs +++ b/src/file/source/file.rs @@ -60,9 +60,12 @@ impl FileSourceFile { }; } - // Append an extension that will be replaced when calling `set_extension()`: let mut filename = filename; - filename.as_mut_os_string().push(".ext_placeholder"); + // Preserve any extension-like text within the provided file stem by appending a fake extension + // which will be replaced by `set_extension()` calls (e.g. `file.local.placeholder` => `file.local.json`) + if filename.extension().is_some() { + filename.as_mut_os_string().push(".placeholder"); + } match format_hint { Some(format) => {