diff options
| author | Jonas Maier <jonas@x77.dev> | 2026-05-09 17:25:28 +0200 |
|---|---|---|
| committer | Jonas Maier <jonas@x77.dev> | 2026-05-09 17:25:28 +0200 |
| commit | cc1bf55b9996d556080c4104e211f24508b29cd8 (patch) | |
| tree | 08459dc348b0496e7ba010c6931c99dfb95bb571 /src/run | |
| parent | 19cf30cae545ceed679f5f9938072f619bedc480 (diff) | |
| download | pish-cc1bf55b9996d556080c4104e211f24508b29cd8.tar.gz | |
can set custom prompt using the PROMPT variable
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(); } } |
