From 74341fb63625f9a3ee73833f347a9fc12ef31710 Mon Sep 17 00:00:00 2001 From: Jonas Maier Date: Fri, 6 Mar 2026 20:57:54 +0100 Subject: make shell tell you which variable is unbound --- src/run/mod.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/run') diff --git a/src/run/mod.rs b/src/run/mod.rs index ba37061..1880e8d 100644 --- a/src/run/mod.rs +++ b/src/run/mod.rs @@ -8,7 +8,7 @@ use crate::*; mod builtin; enum ExecError { - UnknownVariable, + UnknownVariable(BString), ExecError(i32), } @@ -206,7 +206,7 @@ impl<'a> parse::Expander for Executor<'a> { fn expand_var(&mut self, var: BString) -> Result { match std::env::var_os(OsStr::from_bytes(&var)) { Some(val) => Ok(val.as_bytes().to_vec()), - None => Err(ExecError::UnknownVariable), + None => Err(ExecError::UnknownVariable(var)), } } @@ -246,7 +246,9 @@ pub fn run(se: &mut Session, cmd: Vec) { let status_string = match result { Ok(_) => String::new(), - Err(ExecError::UnknownVariable) => String::from("unbound variable"), + Err(ExecError::UnknownVariable(var)) => { + format!("unbound variable: {}", String::from_utf8_lossy(&var)) + } Err(ExecError::ExecError(i)) => i.to_string(), }; -- cgit v1.2.3