diff options
Diffstat (limited to 'src/run')
| -rw-r--r-- | src/run/builtin.rs | 5 | ||||
| -rw-r--r-- | src/run/mod.rs | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/run/builtin.rs b/src/run/builtin.rs index f085005..bd82e27 100644 --- a/src/run/builtin.rs +++ b/src/run/builtin.rs @@ -836,7 +836,10 @@ impl Builtin for ct { b"cursor_right_word" => se.cursor_right_word(), b"cursor_left_word" => se.cursor_left_word(), b"prompt_clear" => se.prompt_clear(), - b"screen_clear" => se.screen_clear(), + b"screen_clear" => { + drop(se); + Session::screen_clear(session); + }, b"history_previous" => se.history_up(), b"history_next" => se.history_down(), b"prompt_del_left" => se.del_left(), diff --git a/src/run/mod.rs b/src/run/mod.rs index 7e575ce..bae9567 100644 --- a/src/run/mod.rs +++ b/src/run/mod.rs @@ -463,6 +463,11 @@ impl parse::Expander for Executor { var: BString, default: Option<BString>, ) -> Result<BString, Self::Error> { + match &var[..] { + b"CWD_PRETTY" => return Ok(crate::pretty_cwd().into_bytes()), + _ => {} + } + if var.is_empty() { return Err(ExecError::UnknownVariable(var)); } @@ -610,7 +615,8 @@ pub fn run(se: Arc<Mutex<Session>>, parsed: Ast<PreExpansion>) { Err(e) => format!("{}\r\n", e.error_message()), }; - print!("\r{status_string}{}", se.lock().unwrap().prompt()); + print!("\r{status_string}"); + Session::reprint_prompt(se); let _ = std::io::stdout().lock().flush(); } } |
