diff --git a/asklyphe-frontend/src/bangs.rs b/asklyphe-frontend/src/bangs.rs index 682bd32..8ce78a8 100644 --- a/asklyphe-frontend/src/bangs.rs +++ b/asklyphe-frontend/src/bangs.rs @@ -74,9 +74,22 @@ pub fn do_bangs_or_whatever(query: &String) -> Option { let bang = bangs.first()?; - let end_idx = bang.start_idx + 1 + bang.len; + let end_idx = { + let mut end_idx = bang.start_idx + 1 + bang.len; + if end_idx < query.len() { + end_idx += 1; + } + end_idx + }; - let query_split = query.split_once(query.get(bang.start_idx..end_idx).unwrap()).unwrap(); + let start_idx = if end_idx == query.len() && bang.start_idx > 0 { + bang.start_idx - 1 + } else { + bang.start_idx + }; + + + let query_split = query.split_once(query.get(start_idx..end_idx).unwrap()).unwrap(); let query_trimmed = format!("{}{}", query_split.0, query_split.1);