44 lines
1.1 KiB
Diff
44 lines
1.1 KiB
Diff
From 67d8c49aeac03a5ef4e818f663eaa94dd7bf339b Mon Sep 17 00:00:00 2001
|
|
From: Jason Volk <jason@zemos.net>
|
|
Date: Thu, 4 Jul 2024 23:59:43 +0000
|
|
Subject: [PATCH] add event for ctrl-\
|
|
|
|
Signed-off-by: Jason Volk <jason@zemos.net>
|
|
---
|
|
src/lib.rs | 2 ++
|
|
src/line.rs | 6 ++++++
|
|
2 files changed, 8 insertions(+)
|
|
|
|
diff --git a/src/lib.rs b/src/lib.rs
|
|
index ec51963..1bb894c 100644
|
|
--- a/src/lib.rs
|
|
+++ b/src/lib.rs
|
|
@@ -87,6 +87,8 @@ pub enum ReadlineEvent {
|
|
Eof,
|
|
/// The user pressed Ctrl-C
|
|
Interrupted,
|
|
+ /// The user pressed Ctrl-\
|
|
+ Quit,
|
|
}
|
|
|
|
/// Clonable object that implements [`Write`][std::io::Write] and
|
|
diff --git a/src/line.rs b/src/line.rs
|
|
index 84e2ef8..bf53dc6 100644
|
|
--- a/src/line.rs
|
|
+++ b/src/line.rs
|
|
@@ -198,6 +198,12 @@ impl LineState {
|
|
self.clear(term)?;
|
|
return Ok(Some(ReadlineEvent::Eof));
|
|
}
|
|
+ // End of program (CTRL-\)
|
|
+ KeyCode::Char('4') => {
|
|
+ writeln!(term)?;
|
|
+ self.clear(term)?;
|
|
+ return Ok(Some(ReadlineEvent::Quit));
|
|
+ }
|
|
// End of text (CTRL-C)
|
|
KeyCode::Char('c') => {
|
|
if self.should_print_line_on_control_c {
|
|
--
|
|
2.39.5 (Apple Git-154)
|
|
|