[Python-checkins] gh-97740: Fix bang in Sphinx C domain ref target syntax (GH-97741)

miss-islington webhook-mailer at python.org
Sun Oct 2 23:59:52 EDT 2022


https://github.com/python/cpython/commit/a1711ef030d0b637da75ff5a870ac1a3fd959c04
commit: a1711ef030d0b637da75ff5a870ac1a3fd959c04
branch: 3.10
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: miss-islington <31488909+miss-islington at users.noreply.github.com>
date: 2022-10-02T20:59:46-07:00
summary:

gh-97740: Fix bang in Sphinx C domain ref target syntax (GH-97741)


* gh-97740: Fix bang in Sphinx C domain ref target syntax

Co-authored-by: Adam Turner <9087854+AA-Turner at users.noreply.github.com>

* Add NEWS entry for C domain bang fix

Co-authored-by: Adam Turner <9087854+AA-Turner at users.noreply.github.com>
(cherry picked from commit 9148c0d893c7807331fd7be0997261e289074bc5)

Co-authored-by: C.A.M. Gerlach <CAM.Gerlach at Gerlach.CAM>

files:
A Misc/NEWS.d/next/Documentation/2022-10-02-10-58-52.gh-issue-97741.39l023.rst
M Doc/conf.py

diff --git a/Doc/conf.py b/Doc/conf.py
index 8fdff7965d92..aff26f9c9058 100644
--- a/Doc/conf.py
+++ b/Doc/conf.py
@@ -244,3 +244,18 @@
 # bpo-40204: Disable warnings on Sphinx 2 syntax of the C domain since the
 # documentation is built with -W (warnings treated as errors).
 c_warn_on_allowed_pre_v3 = False
+
+# Fix '!' not working with C domain when pre_v3 is enabled
+import sphinx
+
+if sphinx.version_info[:2] < (5, 3):
+    from sphinx.domains.c import CXRefRole
+
+    original_run = CXRefRole.run
+
+    def new_run(self):
+        if self.disabled:
+            return super(CXRefRole, self).run()
+        return original_run(self)
+
+    CXRefRole.run = new_run
diff --git a/Misc/NEWS.d/next/Documentation/2022-10-02-10-58-52.gh-issue-97741.39l023.rst b/Misc/NEWS.d/next/Documentation/2022-10-02-10-58-52.gh-issue-97741.39l023.rst
new file mode 100644
index 000000000000..8da9c92f6fd8
--- /dev/null
+++ b/Misc/NEWS.d/next/Documentation/2022-10-02-10-58-52.gh-issue-97741.39l023.rst
@@ -0,0 +1,2 @@
+Fix ``!`` in c domain ref target syntax via a ``conf.py`` patch, so it works
+as intended to disable ref target resolution.



More information about the Python-checkins mailing list