diff --git a/src/main.rs b/src/main.rs index d7f3ae4a130420612747a566f1c34e5af26c9142..273d5a330564f49a6f0b8a3281c313ddee0b2dc1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -553,6 +553,27 @@ pub fn set_var(variables: &mut Vec<Variable>, name: &str, value: &str) { } } +fn print_prompt(modes: &Vec<Mode>) { + for mode in modes.iter().rev() { + if mode.value { + print!("+ "); + } else { + print!("- "); + } + } + + let cwd = match env::current_dir() { + Ok(path) => match path.to_str() { + Some(path_str) => path_str.to_string(), + None => "?".to_string() + }, + Err(_) => "?".to_string() + }; + + print!("ion:{}# ", cwd); + stdout().flush(); +} + fn real_main() { let commands = Command::vec(); let mut variables: Vec<Variable> = vec![]; @@ -572,24 +593,8 @@ fn real_main() { } loop { - for mode in modes.iter().rev() { - if mode.value { - print!("+ "); - } else { - print!("- "); - } - } - - let cwd = match env::current_dir() { - Ok(path) => match path.to_str() { - Some(path_str) => path_str.to_string(), - None => "?".to_string() - }, - Err(_) => "?".to_string() - }; - print!("ion:{}# ", cwd); - stdout().flush(); + print_prompt(&modes); if let Some(command_original) = readln() { let command = command_original.trim();