From bb581bfb30fc80f0bd92d69c347f68315a31d1bf Mon Sep 17 00:00:00 2001 From: BiswajitThakur Date: Fri, 3 Jan 2025 16:19:51 +0530 Subject: [PATCH 1/4] Add support for '~' as a shortcut for home directory (#149) --- src/lib.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 8428a9a..43eeb58 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -606,6 +606,20 @@ impl Pattern { let mut is_recursive = false; let mut i = 0; + #[cfg(not(windows))] + if let (Some(first_char), second_char) = (chars.first(), chars.get(1)) { + match (*first_char, second_char) { + ('~', None) | ('~', Some('/')) => { + if let Ok(home_dir) = std::env::var("HOME") { + for ch in home_dir.chars() { + tokens.push(PatternToken::Char(ch)); + } + i += 1; + } + } + _ => {} + } + } while i < chars.len() { match chars[i] { '?' => { From 2be5341ba2bde41c90703376dcf079afa2b7f549 Mon Sep 17 00:00:00 2001 From: BiswajitThakur Date: Sun, 22 Jun 2025 08:24:14 +0530 Subject: [PATCH 2/4] support-tilde-home-dir-for-windows --- src/lib.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 43eeb58..b045be2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -606,8 +606,8 @@ impl Pattern { let mut is_recursive = false; let mut i = 0; - #[cfg(not(windows))] if let (Some(first_char), second_char) = (chars.first(), chars.get(1)) { + #[cfg(not(windows))] match (*first_char, second_char) { ('~', None) | ('~', Some('/')) => { if let Ok(home_dir) = std::env::var("HOME") { @@ -619,6 +619,18 @@ impl Pattern { } _ => {} } + #[cfg(windows)] + match (*first_char, second_char) { + ('~', None) | ('~', Some('/')) | ('~', Some('\\')) => { + if let Ok(home_dir) = std::env::var("USERPROFILE") { + for ch in home_dir.chars() { + tokens.push(PatternToken::Char(ch)); + } + i += 1; + } + } + _ => {} + } } while i < chars.len() { match chars[i] { From 9ce4b3759c0e0e011d034434470b94f1fc992735 Mon Sep 17 00:00:00 2001 From: BiswajitThakur Date: Sun, 22 Jun 2025 08:41:02 +0530 Subject: [PATCH 3/4] fix-msrv --- src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index b045be2..50f0b7e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -609,7 +609,7 @@ impl Pattern { if let (Some(first_char), second_char) = (chars.first(), chars.get(1)) { #[cfg(not(windows))] match (*first_char, second_char) { - ('~', None) | ('~', Some('/')) => { + ('~', None) | ('~', Some(&'/')) => { if let Ok(home_dir) = std::env::var("HOME") { for ch in home_dir.chars() { tokens.push(PatternToken::Char(ch)); @@ -619,9 +619,9 @@ impl Pattern { } _ => {} } - #[cfg(windows)] + //#[cfg(windows)] match (*first_char, second_char) { - ('~', None) | ('~', Some('/')) | ('~', Some('\\')) => { + ('~', None) | ('~', Some(&'/')) | ('~', Some(&'\\')) => { if let Ok(home_dir) = std::env::var("USERPROFILE") { for ch in home_dir.chars() { tokens.push(PatternToken::Char(ch)); From d823f5256b1efd2a8e50861702cf953dc5c2a5d5 Mon Sep 17 00:00:00 2001 From: BiswajitThakur Date: Sun, 22 Jun 2025 18:57:05 +0530 Subject: [PATCH 4/4] . --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 50f0b7e..88a815f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -619,7 +619,7 @@ impl Pattern { } _ => {} } - //#[cfg(windows)] + #[cfg(windows)] match (*first_char, second_char) { ('~', None) | ('~', Some(&'/')) | ('~', Some(&'\\')) => { if let Ok(home_dir) = std::env::var("USERPROFILE") {