bin/gen_release_notes: escape at-symbols
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Fri, 13 Oct 2023 13:41:59 +0000 (15:41 +0200)
committerMarge Bot <emma+marge@anholt.net>
Mon, 16 Oct 2023 08:59:07 +0000 (08:59 +0000)
If we don't do this, we end up with email-alike strings to be turned
into mailto links. This is not what we want.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25712>

bin/gen_release_notes.py
bin/gen_release_notes_test.py

index ababfa2..5520e55 100755 (executable)
@@ -168,6 +168,7 @@ class Inliner(states.Inliner):
                 break
         # Quote all original backslashes
         checked = re.sub('\x00', "\\\x00", checked)
+        checked = re.sub('@', '\\@', checked)
         return docutils.utils.unescape(checked, 1)
 
 inliner = Inliner();
index 8d8e34c..07e668f 100644 (file)
@@ -198,3 +198,8 @@ async def test_parse_issues(content: str, bugs: typing.List[str]) -> None:
             mock.patch('bin.gen_release_notes.gather_commits', mock.AsyncMock(return_value='sha\n')):
         ids = await parse_issues('1234 not used')
         assert set(ids) == set(bugs)
+
+@pytest.mark.asyncio
+async def test_rst_escape():
+    out = inliner.quoteInline('foo@bar')
+    assert out == 'foo\@bar'