diff --git a/crates/ruff/resources/test/fixtures/flake8_copyright/CPY001.py b/crates/ruff/resources/test/fixtures/flake8_copyright/CPY001.py new file mode 100644 index 00000000000000..4faa67b68bd6a7 --- /dev/null +++ b/crates/ruff/resources/test/fixtures/flake8_copyright/CPY001.py @@ -0,0 +1 @@ +কককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককককক \ No newline at end of file diff --git a/crates/ruff/src/rules/flake8_copyright/rules/missing_copyright_notice.rs b/crates/ruff/src/rules/flake8_copyright/rules/missing_copyright_notice.rs index 3c99bb487fdebe..f4d7cd04b5f3cc 100644 --- a/crates/ruff/src/rules/flake8_copyright/rules/missing_copyright_notice.rs +++ b/crates/ruff/src/rules/flake8_copyright/rules/missing_copyright_notice.rs @@ -36,7 +36,11 @@ pub(crate) fn missing_copyright_notice( let contents = if locator.len() < 1024 { locator.contents() } else { - locator.up_to(TextSize::from(1024)) + let char_boundary = (0..1024) + .rev() + .find(|&byte_idx| locator.contents().is_char_boundary(byte_idx)) + .unwrap_or(0); // Default to 0 if no valid boundary is found + locator.up_to(TextSize::from(u32::try_from(char_boundary))) }; // Locate the copyright notice.