mirror of
https://github.com/crate-ci/typos.git
synced 2026-10-17 09:35:11 +02:00
fix(parse): Don't assume boundary characters are one byte
This was inspired by heck. They have an invariant to ensure this isn't a problem (only accept `_` as boundary) while on the other hand we accept a lot of things as boundaries.
This commit is contained in:
+2
-3
@@ -176,13 +176,12 @@ fn split_ident(ident: &str, offset: usize) -> impl Iterator<Item = Word<'_>> {
|
||||
while let Some((i, c)) = char_indices.next() {
|
||||
let cur_mode = WordMode::classify(c);
|
||||
if cur_mode == WordMode::Boundary {
|
||||
if start == i {
|
||||
start += 1;
|
||||
}
|
||||
assert!(start_mode == WordMode::Boundary);
|
||||
continue;
|
||||
}
|
||||
if start_mode == WordMode::Boundary {
|
||||
start_mode = cur_mode;
|
||||
start = i;
|
||||
}
|
||||
|
||||
if let Some(&(next_i, next)) = char_indices.peek() {
|
||||
|
||||
Reference in New Issue
Block a user