Fix invalid Python escape sequences

(cherry picked from commit 4986d6d317e592db86603ae14a72fe0a96a3f538)
This commit is contained in:
Mikael Klasson 2023-12-06 11:51:41 +09:00 committed by Relintai
parent fae5c7f2f8
commit 6fa76aca7e

View File

@ -1557,9 +1557,9 @@ def format_text_block(
post_text = text[endurl_pos + 6 :]
if pre_text and pre_text[-1] not in MARKUP_ALLOWED_PRECEDENT:
pre_text += "\ "
pre_text += "\\ "
if post_text and post_text[0] not in MARKUP_ALLOWED_SUBSEQUENT:
post_text = "\ " + post_text
post_text = "\\ " + post_text
text = pre_text + tag_text + post_text
pos = len(pre_text) + len(tag_text)
@ -1636,9 +1636,9 @@ def format_text_block(
# Properly escape things like `[Node]s`
if escape_pre and pre_text and pre_text[-1] not in MARKUP_ALLOWED_PRECEDENT:
pre_text += "\ "
pre_text += "\\ "
if escape_post and post_text and post_text[0] not in MARKUP_ALLOWED_SUBSEQUENT:
post_text = "\ " + post_text
post_text = "\\ " + post_text
next_brac_pos = post_text.find("[", 0)
iter_pos = 0
@ -1646,7 +1646,7 @@ def format_text_block(
iter_pos = post_text.find("*", iter_pos, next_brac_pos)
if iter_pos == -1:
break
post_text = f"{post_text[:iter_pos]}\*{post_text[iter_pos + 1 :]}"
post_text = f"{post_text[:iter_pos]}\\*{post_text[iter_pos + 1 :]}"
iter_pos += 2
iter_pos = 0
@ -1655,7 +1655,7 @@ def format_text_block(
if iter_pos == -1:
break
if not post_text[iter_pos + 1].isalnum(): # don't escape within a snake_case word
post_text = f"{post_text[:iter_pos]}\_{post_text[iter_pos + 1 :]}"
post_text = f"{post_text[:iter_pos]}\\_{post_text[iter_pos + 1 :]}"
iter_pos += 2
else:
iter_pos += 1
@ -1696,7 +1696,7 @@ def escape_rst(text: str, until_pos: int = -1) -> str:
pos = text.find("*", pos, until_pos)
if pos == -1:
break
text = f"{text[:pos]}\*{text[pos + 1 :]}"
text = f"{text[:pos]}\\*{text[pos + 1 :]}"
pos += 2
# Escape _ character at the end of a word to avoid interpreting it as an inline hyperlink
@ -1706,7 +1706,7 @@ def escape_rst(text: str, until_pos: int = -1) -> str:
if pos == -1:
break
if not text[pos + 1].isalnum(): # don't escape within a snake_case word
text = f"{text[:pos]}\_{text[pos + 1 :]}"
text = f"{text[:pos]}\\_{text[pos + 1 :]}"
pos += 2
else:
pos += 1