diff options
Diffstat (limited to 'src/prompt.rs')
-rw-r--r-- | src/prompt.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/prompt.rs b/src/prompt.rs index 4a574a4..5ebdf48 100644 --- a/src/prompt.rs +++ b/src/prompt.rs @@ -355,7 +355,7 @@ fn compress_path<T, U>( if path_str.len() > len { path_str = String::from(&path_str[..len - 6]) + "..." - + &path_str[len - 3..len] + + &path_str[path_str.len() - 3..] } path_str @@ -368,21 +368,21 @@ fn compress_path<T, U>( fn compress_vcs(vcs: &str, len: usize) -> String { if vcs.len() > len { let vcs_parts_re = regex::Regex::new( - r"^([^:]+):.*:([^:])$" + r"^([^:]+):.*?(?::([^:]+))?$" ).unwrap(); vcs_parts_re .captures(vcs) .map(|cap| { let prefix_len = cap.get(1) - .map(|mat| mat.end() - mat.start()) + .map(|mat| mat.end() - mat.start() + 1) .unwrap_or(0); let suffix_len = cap.get(2) - .map(|mat| mat.end() - mat.start()) + .map(|mat| mat.end() - mat.start() + 1) .unwrap_or(0); - let branch_len = len - prefix_len - suffix_len - 2; + let branch_len = len - prefix_len - suffix_len; let branch_re = regex::Regex::new( &format!( - r"(:[^:]{{{}}})[^:]*([^:]{{3}}:)", + r"(:[^:]{{{}}})[^:]*([^:]{{3}}:?)", (branch_len - 6).to_string() ) ).unwrap(); |