From 5cf5f57ce8aa303936fec70a61acb436825f52c7 Mon Sep 17 00:00:00 2001 From: Jonas Maier <> Date: Sun, 8 Mar 2026 13:35:08 +0100 Subject: tilde --- src/parse/mod.rs | 8 +++++++- src/parse/test.rs | 8 ++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'src/parse') diff --git a/src/parse/mod.rs b/src/parse/mod.rs index 8fa2e23..9cd894e 100644 --- a/src/parse/mod.rs +++ b/src/parse/mod.rs @@ -528,7 +528,13 @@ impl Parse for ExpString { continue; } - add_char(p, x); + if delim == b' ' && x == b'~' { + p.push(StringPart::Var(VarName { + name: b"HOME".to_vec(), + })); + } else { + add_char(p, x); + } if delim == b' ' { already_parsed = true; diff --git a/src/parse/test.rs b/src/parse/test.rs index 6f49ed4..9e2d7a8 100644 --- a/src/parse/test.rs +++ b/src/parse/test.rs @@ -70,3 +70,11 @@ fn unclosed_single_quote() { fn unclosed_double_quote() { assert!(do_parse(b"x\"").is_err()) } + +#[test] +fn tilde() { + parse_test( + parse(b"echo ~"), + pipes([cmd([estr(b"echo"), str([var(b"HOME")])])]), + ); +} -- cgit v1.2.3