From 68cc04887b3c5b7ce8f28eaae5de266db99ca9a6 Mon Sep 17 00:00:00 2001 From: Shipeng Feng Date: Wed, 7 Jul 2021 17:19:33 +0800 Subject: Fixed #32866 -- Fixed trimming trailing punctuation from escaped string in urlize(). --- django/utils/html.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'django/utils') diff --git a/django/utils/html.py b/django/utils/html.py index 3bc02b8dd3..bd58317a79 100644 --- a/django/utils/html.py +++ b/django/utils/html.py @@ -283,8 +283,9 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False): middle_unescaped = html.unescape(middle) stripped = middle_unescaped.rstrip(TRAILING_PUNCTUATION_CHARS) if middle_unescaped != stripped: - trail = middle[len(stripped):] + trail - middle = middle[:len(stripped) - len(middle_unescaped)] + punctuation_count = len(middle_unescaped) - len(stripped) + trail = middle[-punctuation_count:] + trail + middle = middle[:-punctuation_count] trimmed_something = True return lead, middle, trail -- cgit v1.3