fix: Dont assume ascii in remove_markdown

Fixes #16142
This commit is contained in:
Waqar Ahmed 2023-12-19 01:27:36 +05:00
parent 0ed815faca
commit 5318e89b8a

View File

@ -25,7 +25,10 @@ pub(crate) fn remove_markdown(markdown: &str) -> String {
} }
} }
if let Some(p) = out.rfind(|c| c != '\n') { if let Some(mut p) = out.rfind(|c| c != '\n') {
while !out.is_char_boundary(p + 1) {
p += 1;
}
out.drain(p + 1..); out.drain(p + 1..);
} }
@ -153,4 +156,10 @@ book] or the [Reference].
For more information on the various types of functions and how they're used, consult the Rust book or the Reference."#]].assert_eq(&res); For more information on the various types of functions and how they're used, consult the Rust book or the Reference."#]].assert_eq(&res);
} }
#[test]
fn on_char_boundary() {
expect!["a┘"].assert_eq(&remove_markdown("```text\na┘\n```"));
expect!["وقار"].assert_eq(&remove_markdown("```\nوقار\n```\n"));
}
} }