summaryrefslogtreecommitdiffstats
path: root/src/file/source/file.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/file/source/file.rs')
-rw-r--r--src/file/source/file.rs20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/file/source/file.rs b/src/file/source/file.rs
index 403f3f2..8ee5d31 100644
--- a/src/file/source/file.rs
+++ b/src/file/source/file.rs
@@ -27,7 +27,7 @@ impl FileSourceFile {
where
F: FileStoredFormat + Format + 'static,
{
- let mut filename = if self.name.is_absolute() {
+ let filename = if self.name.is_absolute() {
self.name.clone()
} else {
env::current_dir()?.as_path().join(&self.name)
@@ -59,6 +59,9 @@ 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);
match format_hint {
Some(format) => {
@@ -121,3 +124,18 @@ 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
+}