Fix unused variable warning and UTF-8 panic in string slicing

- Remove unused total_lines variable in file_ops.rs
- Fix UTF-8 boundary panic in utils.rs when generating diff error preview
  The code was slicing at byte index 200 which could land inside a
  multi-byte character (e.g., box-drawing chars like ─). Now uses
  character-based slicing with chars().take() instead.
This commit is contained in:
Dhanji R. Prasanna
2026-01-13 14:52:44 +05:30
parent c65d082c5d
commit 82c0165765

View File

@@ -255,9 +255,12 @@ pub fn apply_unified_diff_to_string(
region_content.replace_range(pos..endpos, new_block); region_content.replace_range(pos..endpos, new_block);
} else { } else {
// Not found; provide helpful diagnostics with a short preview // Not found; provide helpful diagnostics with a short preview
let preview_len = old_block.len().min(200); // Use character-based slicing to avoid splitting multi-byte UTF-8 characters
let mut old_preview = old_block[..preview_len].to_string(); let max_chars = 200;
if old_block.len() > preview_len { let preview_len = old_block.chars().count().min(max_chars);
let mut old_preview: String = old_block.chars().take(preview_len).collect();
let was_truncated = old_block.chars().count() > max_chars;
if was_truncated {
old_preview.push_str("..."); old_preview.push_str("...");
} }