diff options
| -rw-r--r-- | src/run/mod.rs | 8 |
1 files changed, 5 insertions, 3 deletions
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<BString, Self::Error> { 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<u8>) { 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(), }; |
