Skip to content

Commit e5f79dc

Browse files
committed
fix: reject leading ., ) without prefix as item marker
fix rust-lang#5835
1 parent d698bf4 commit e5f79dc

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/comment.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,7 @@ impl ItemizedBlock {
473473
/// 1868. He wes buried in...
474474
/// ```
475475
fn get_marker_length(trimmed: &str) -> Option<usize> {
476+
tracing::debug!("get_marker_length: {}", trimmed);
476477
// https://spec.commonmark.org/0.30/#bullet-list-marker or
477478
// https://spec.commonmark.org/0.30/#block-quote-marker
478479
let itemized_start = ["* ", "- ", "> ", "+ "];
@@ -484,7 +485,9 @@ impl ItemizedBlock {
484485
// allowed.
485486
for suffix in [". ", ") "] {
486487
if let Some((prefix, _)) = trimmed.split_once(suffix) {
487-
if prefix.len() <= 2 && prefix.chars().all(|c| char::is_ascii_digit(&c)) {
488+
if (1..=2).contains(&prefix.len())
489+
&& prefix.chars().all(|c| char::is_ascii_digit(&c))
490+
{
488491
return Some(prefix.len() + suffix.len());
489492
}
490493
}
@@ -2142,6 +2145,9 @@ fn main() {
21422145
// https://spec.commonmark.org/0.30 says: "A start number may not be negative":
21432146
"-1. Not a list item.",
21442147
"-1 Not a list item.",
2148+
// Marker without prefix are not recognized as item markers:
2149+
". Not a list item.",
2150+
") Not a list item.",
21452151
];
21462152
for line in test_inputs.iter() {
21472153
let maybe_block = ItemizedBlock::new(line);

0 commit comments

Comments
 (0)