diff --git a/src/lib.rs b/src/lib.rs index b044eff..45302d1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -17,20 +17,21 @@ pub fn process_file(path: &std::path::Path, dictionary: &Dictionary, report: rep for (line_idx, line) in grep_searcher::LineIter::new(b'\n', &buffer).enumerate() { let line_num = line_idx + 1; for token in tokens::Symbol::parse(line) { - // Correct tokens as-is - if let Some(correction) = dictionary.correct_bytes(token.token) { - let word = String::from_utf8_lossy(token.token); - let col_num = token.offset; - let msg = report::Message { - path, - line, - line_num, - col_num, - word: word.as_ref(), - correction, - non_exhaustive: (), - }; - report(msg); + if let Some(word) = std::str::from_utf8(token.token).ok() { + // Correct tokens as-is + if let Some(correction) = dictionary.correct_str(word) { + let col_num = token.offset; + let msg = report::Message { + path, + line, + line_num, + col_num, + word, + correction, + non_exhaustive: (), + }; + report(msg); + } } } }