|
From: <mi...@us...> - 2017-05-04 20:10:06
|
Revision: 8067
http://sourceforge.net/p/docutils/code/8067
Author: milde
Date: 2017-05-04 20:10:03 +0000 (Thu, 04 May 2017)
Log Message:
-----------
unroll problematic refs to their origin in document when reporting errors
Patch by Kirill Smelkov. This is part of the (partially outdated) suite of
patches on https://sourceforge.net/p/docutils/patches/67/.
Modified Paths:
--------------
trunk/docutils/docutils/transforms/references.py
trunk/docutils/test/test_transforms/test_substitutions.py
Modified: trunk/docutils/docutils/transforms/references.py
===================================================================
--- trunk/docutils/docutils/transforms/references.py 2017-05-04 19:19:13 UTC (rev 8066)
+++ trunk/docutils/docutils/transforms/references.py 2017-05-04 20:10:03 UTC (rev 8067)
@@ -710,6 +710,7 @@
raise CircularSubstitutionDefinitionError
else:
nested[nested_name].append(key)
+ nested_ref['ref-origin'] = ref
subreflist.append(nested_ref)
except CircularSubstitutionDefinitionError:
parent = ref.parent
@@ -721,9 +722,13 @@
line=parent.line, base_node=parent)
parent.replace_self(msg)
else:
+ # find original ref substitution which cased this error
+ ref_origin = ref
+ while ref_origin.hasattr('ref-origin'):
+ ref_origin = ref_origin['ref-origin']
msg = self.document.reporter.error(
- 'Circular substitution definition referenced: "%s".'
- % refname, base_node=ref)
+ 'Circular substitution definition referenced: '
+ '"%s".' % refname, base_node=ref_origin)
msgid = self.document.set_id(msg)
prb = nodes.problematic(
ref.rawsource, ref.rawsource, refid=msgid)
Modified: trunk/docutils/test/test_transforms/test_substitutions.py
===================================================================
--- trunk/docutils/test/test_transforms/test_substitutions.py 2017-05-04 19:19:13 UTC (rev 8066)
+++ trunk/docutils/test/test_transforms/test_substitutions.py 2017-05-04 20:10:03 UTC (rev 8067)
@@ -223,7 +223,7 @@
<system_message backrefs="id6" ids="id5" level="3" line="5" source="test data" type="ERROR">
<paragraph>
Circular substitution definition referenced: "sub".
- <system_message backrefs="id8" ids="id7" level="3" source="test data" type="ERROR">
+ <system_message backrefs="id8" ids="id7" level="3" line="5" source="test data" type="ERROR">
<paragraph>
Circular substitution definition referenced: "Sub".
"""],
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|