From 2b01ff226d6548609b5f1d11f5779d7790412b4a Mon Sep 17 00:00:00 2001 From: CrispyPin Date: Sun, 12 Mar 2023 21:57:53 +0100 Subject: [PATCH] only reset filename when failing to save if it was set by the user (don't convert read-only opened files to 'untitled') --- src/editor.rs | 6 +++++- src/main.rs | 4 +--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/editor.rs b/src/editor.rs index 9667788..a5b1866 100644 --- a/src/editor.rs +++ b/src/editor.rs @@ -447,8 +447,10 @@ impl Editor { } fn save(&mut self) { + let mut filename_new = false; if self.path.is_none() { self.path = read_line("Enter path: ").map(|s| env::current_dir().unwrap().join(s)); + filename_new = true; } if let Some(path) = &self.path { match File::create(path) { @@ -459,7 +461,9 @@ impl Editor { } Err(e) => { self.message(format!("Could not save file as '{}': {e}", path.display())); - self.path = None; + if filename_new { + self.path = None; + } } } } diff --git a/src/main.rs b/src/main.rs index c707b6e..1b2f593 100644 --- a/src/main.rs +++ b/src/main.rs @@ -211,9 +211,7 @@ impl Navigator { self.path = new_path; self.selected = self.editors.len(); } - Err(err) => { - self.message(format!("Could not navigate to directory: {err}")); - } + Err(err) => self.message(format!("Could not navigate to directory: {err}")), } }