From 0c187b7b5bc34013d9a064d3c316eab6a323f56c Mon Sep 17 00:00:00 2001 From: Oleksandr Kozachuk Date: Wed, 14 Dec 2022 16:15:25 +0100 Subject: [PATCH] Handle EOF and interruptions more gracefully and correct. --- src/repl.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/repl.rs b/src/repl.rs index 38a40ba..44238af 100644 --- a/src/repl.rs +++ b/src/repl.rs @@ -1,5 +1,6 @@ use home::home_dir; use rpassword::prompt_password; +use rustyline::error::ReadlineError; use rustyline::Editor; use regex::Regex; use std::{cell::RefCell, rc::Rc}; @@ -56,6 +57,7 @@ impl LKRead { } self.cmd = match self.rl.readline(&*self.prompt) { Ok(str) => str, + Err(ReadlineError::Eof | ReadlineError::Interrupted) => "quit".to_string(), Err(err) => return LKEval::new(Command::Error(LKErr::ReadError(err.to_string())), self.state.clone(), self.read_password), }; self.rl.add_history_entry(self.cmd.as_str());