summaryrefslogtreecommitdiff
path: root/docutils/transforms/references.py
diff options
context:
space:
mode:
authorgoodger <goodger@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2003-03-27 03:56:37 +0000
committergoodger <goodger@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2003-03-27 03:56:37 +0000
commit1c87d959eb6be73667ca61bbb48d69b075a846df (patch)
tree3b4ddf9c34bbe3f7eb5098f4b5518dc1930361bc /docutils/transforms/references.py
parentadf281a00341eae13815afb97acf04ded5fa6f2d (diff)
downloaddocutils-1c87d959eb6be73667ca61bbb48d69b075a846df.tar.gz
substitutions made case-sensitive but forgiving (case-insensitive fallback)
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk/docutils@1236 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'docutils/transforms/references.py')
-rw-r--r--docutils/transforms/references.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/docutils/transforms/references.py b/docutils/transforms/references.py
index 5b1243ed5..fd52f00fc 100644
--- a/docutils/transforms/references.py
+++ b/docutils/transforms/references.py
@@ -668,11 +668,17 @@ class Substitutions(Transform):
def apply(self):
defs = self.document.substitution_defs
+ normed = self.document.substitution_names
for refname, refs in self.document.substitution_refs.items():
for ref in refs:
+ key = None
if defs.has_key(refname):
- ref.parent.replace(ref, defs[refname].get_children())
+ key = refname
else:
+ normed_name = refname.lower()
+ if normed.has_key(normed_name):
+ key = normed[normed_name]
+ if key is None:
msg = self.document.reporter.error(
'Undefined substitution referenced: "%s".'
% refname, base_node=ref)
@@ -682,6 +688,8 @@ class Substitutions(Transform):
prbid = self.document.set_id(prb)
msg.add_backref(prbid)
ref.parent.replace(ref, prb)
+ else:
+ ref.parent.replace(ref, defs[key].get_children())
self.document.substitution_refs = None # release replaced references