From 2d6743eda67bb583b38af81b6d6ceb5d33df3c5b Mon Sep 17 00:00:00 2001 From: Asherah Connor Date: Wed, 10 Jul 2024 18:00:43 +0300 Subject: [PATCH] inlines: 0.31.2, Unicode punct includes S category too now. https://spec.commonmark.org/0.31.2/changes.html#diff0010 and https://spec.commonmark.org/0.31.2/changes.html#diff0027. --- src/parser/autolink.rs | 2 +- src/parser/inlines.rs | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/parser/autolink.rs b/src/parser/autolink.rs index 4d619db5..a4361da6 100644 --- a/src/parser/autolink.rs +++ b/src/parser/autolink.rs @@ -161,7 +161,7 @@ fn check_domain(data: &[u8], allow_short: bool) -> Option { } fn is_valid_hostchar(ch: char) -> bool { - !ch.is_whitespace() && !ch.is_punctuation() + !ch.is_whitespace() && !(ch.is_punctuation() || ch.is_symbol()) } fn autolink_delim(data: &[u8], mut link_end: usize, relaxed_autolinks: bool) -> usize { diff --git a/src/parser/inlines.rs b/src/parser/inlines.rs index 281fd601..5b55b715 100644 --- a/src/parser/inlines.rs +++ b/src/parser/inlines.rs @@ -998,20 +998,20 @@ impl<'a, 'r, 'o, 'd, 'i, 'c, 'subj> Subject<'a, 'r, 'o, 'd, 'i, 'c, 'subj> { let left_flanking = numdelims > 0 && !after_char.is_whitespace() - && !(after_char.is_punctuation() + && !((after_char.is_punctuation() || after_char.is_symbol()) && !before_char.is_whitespace() - && !before_char.is_punctuation()); + && !(before_char.is_punctuation() || before_char.is_symbol())); let right_flanking = numdelims > 0 && !before_char.is_whitespace() - && !(before_char.is_punctuation() + && !((before_char.is_punctuation() || before_char.is_symbol()) && !after_char.is_whitespace() - && !after_char.is_punctuation()); + && !(after_char.is_punctuation() || after_char.is_symbol())); if c == b'_' { ( numdelims, - left_flanking && (!right_flanking || before_char.is_punctuation()), - right_flanking && (!left_flanking || after_char.is_punctuation()), + left_flanking && (!right_flanking || before_char.is_punctuation() || before_char.is_symbol()), + right_flanking && (!left_flanking || after_char.is_punctuation() || after_char.is_symbol()), ) } else if c == b'\'' || c == b'"' { (