From 2e6f6e199703c58027038caa8d7746ac18b9bf24 Mon Sep 17 00:00:00 2001 From: gwenn Date: Sat, 23 Apr 2022 10:25:19 +0200 Subject: [PATCH] Check how external print message ends Instead of checking cursor position... --- src/edit.rs | 6 ++++-- src/keymap.rs | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/edit.rs b/src/edit.rs index 1fa0d3eb6..64411cb7d 100644 --- a/src/edit.rs +++ b/src/edit.rs @@ -303,12 +303,14 @@ impl<'out, 'prompt, H: Helper> Refresher for State<'out, 'prompt, H> { self.line.pos() } - fn external_print(&mut self, rdr: &mut ::Reader, msg: String) -> Result<()> { + fn external_print(&mut self, msg: String) -> Result<()> { self.out.clear_rows(&self.layout)?; self.layout.end.row = 0; self.layout.cursor.row = 0; self.out.write_and_flush(msg.as_str())?; - self.move_cursor_at_leftmost(rdr)?; + if !msg.ends_with('\n') { + self.out.write_and_flush("\n")?; + } self.refresh_line() } } diff --git a/src/keymap.rs b/src/keymap.rs index d7b20ff61..607e6098a 100644 --- a/src/keymap.rs +++ b/src/keymap.rs @@ -393,7 +393,7 @@ pub trait Refresher { /// Current cursor position (byte position) fn pos(&self) -> usize; /// Display `msg` above currently edited line. - fn external_print(&mut self, rdr: &mut ::Reader, msg: String) -> Result<()>; + fn external_print(&mut self, msg: String) -> Result<()>; } impl<'b> InputState<'b> { @@ -435,7 +435,7 @@ impl<'b> InputState<'b> { break; } tty::Event::ExternalPrint(msg) => { - wrt.external_print(rdr, msg)?; + wrt.external_print(msg)?; } } }