From 843f6a9f7ffed9b1e5843778ce907b6382978f80 Mon Sep 17 00:00:00 2001 From: Jonas Maier Date: Thu, 14 May 2026 16:37:21 +0200 Subject: nicer pipe behavior --- src/lib.rs | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index 2ad9157..3931f5d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -261,16 +261,16 @@ impl Session { } } - fn type_byte(&mut self, b: u8) { - self.line.add(b); - io::stdout().lock().write_all(&[b]).unwrap(); - self.line.display_post(b""); - } - fn type_bytes(&mut self, bs: &[u8]) { for b in bs.iter() { - self.type_byte(*b); + self.line.add(*b); } + io::stdout().lock().write_all(&bs).unwrap(); + self.line.display_post(b""); + } + + fn type_byte(&mut self, b: u8) { + self.type_bytes(&[b]); } fn del_left(&mut self) { @@ -295,6 +295,16 @@ impl Session { } } + fn prompt_pipe_previous(&mut self) { + if self.line.is_empty() && let Some(prev) = self.history.last() { + let mut cmd = prev.cmd.clone(); + cmd.push_all(b" | "); + self.type_bytes(&cmd); + } else { + self.type_byte(b'|'); + } + } + fn move_to_begin(&mut self) { cursor::move_cursor(Direction::Left, self.line.all_left()); io::stdout().flush().unwrap(); -- cgit v1.2.3