Blob Blame History Raw
From d5568fc36404343df0a4655a0747ecffacfaf35c Mon Sep 17 00:00:00 2001
From: Dmitry Shachnev <mitya57@gmail.com>
Date: Wed, 15 Jun 2022 22:27:58 +0300
Subject: [PATCH] Fix #15956: error when building with Sphinx 4.5

Unfortunately it breaks building with older versions.

The only way to fix this issue for all versions is to stop monkey-patching
and forward the fix to Sphinx upstream.
---
 doc/tools/coqrst/coqdomain.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/doc/tools/coqrst/coqdomain.py b/doc/tools/coqrst/coqdomain.py
index 468b6b648dd8..58e36b361262 100644
--- a/doc/tools/coqrst/coqdomain.py
+++ b/doc/tools/coqrst/coqdomain.py
@@ -37,7 +37,7 @@
 from sphinx.util.docutils import ReferenceRole
 from sphinx.util.logging import getLogger, get_node_location
 from sphinx.util.nodes import set_source_info, set_role_source_info, make_refnode
-from sphinx.writers.latex import LaTeXTranslator
+from sphinx.writers.latex import CR, LaTeXTranslator
 
 from . import coqdoc
 from .repl import ansicolors
@@ -54,10 +54,13 @@ def visit_desc_signature(self, node):
         for id in node['ids']:
             hyper += self.hypertarget(id)
     self.body.append(hyper)
+    if not self.in_desc_signature:
+        self.in_desc_signature = True
+        self.body.append(CR + r'\pysigstartsignatures')
     if not node.get('is_multiline'):
         self._visit_signature_line(node)
     else:
-        self.body.append('%\n\\pysigstartmultiline\n')
+        self.body.append(CR + r'\pysigstartmultiline')
 LaTeXTranslator.visit_desc_signature = visit_desc_signature
 
 PARSE_ERROR = """{}:{} Parse error in notation!