summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwiemann <wiemann@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2007-08-20 18:38:35 +0000
committerwiemann <wiemann@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2007-08-20 18:38:35 +0000
commitd2689cbe91dc3c0d11caa51c65ca986bbdbe359c (patch)
treea3d99f0576b3927c836d76841f177313821d63ee
parent1817d31bc5967e3c0e5622d75a095a0c2172ca93 (diff)
downloaddocutils-d2689cbe91dc3c0d11caa51c65ca986bbdbe359c.tar.gz
made namespace qualifiers case-insensitive, and accept backslashes, too;
fixed typo git-svn-id: http://svn.code.sf.net/p/docutils/code/branches/subdocs@5415 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
-rw-r--r--docutils/parsers/rst/states.py10
-rwxr-xr-xtest/test_parsers/test_rst/test_inline_markup.py2
-rwxr-xr-xtest/test_transforms/test_qualified_references.py4
3 files changed, 9 insertions, 7 deletions
diff --git a/docutils/parsers/rst/states.py b/docutils/parsers/rst/states.py
index da465b34d..ade4f5241 100644
--- a/docutils/parsers/rst/states.py
+++ b/docutils/parsers/rst/states.py
@@ -786,11 +786,13 @@ class Inliner:
'Qualified references cannot be anonymous.', line=lineno)
prb = self.problematic(text, rawsource, msg)
return before, [prb], after, [msg]
+ qrefns = whitespace_normalize_name(
+ unescape(match.group('namespace'),
+ restore_backslashes=True).replace('\\', '/').lower())
+ qrefname = normalize_name(unescape(match.group('name')))
reference = nodes.reference(
rawsource, unescape(match.group('name')),
- qrefname=normalize_name(unescape(match.group('name'))),
- qrefns=whitespace_normalize_name(
- unescape(match.group('namespace'))))
+ qrefns=qrefns, qrefname=qrefname)
return before, [reference], after, []
match = self.patterns.embedded_uri.search(escaped)
if match:
@@ -1911,7 +1913,7 @@ class Body(RSTState):
- 'refname' and the indirect reference name
- 'refuri' and the URI
- - 'malformed' and a system_message node
+ - 'qualified' and a 2-tuple (qrefns, qrefname)
"""
if block and block[-1].strip()[-1:] == '_': # possible indirect target
reference = ' '.join([line.strip() for line in block])
diff --git a/test/test_parsers/test_rst/test_inline_markup.py b/test/test_parsers/test_rst/test_inline_markup.py
index 1567be3a9..42d079caa 100755
--- a/test/test_parsers/test_rst/test_inline_markup.py
+++ b/test/test_parsers/test_rst/test_inline_markup.py
@@ -549,7 +549,7 @@ totest['qualified_references'] = [
"""\
<document source="test data">
<paragraph>
- <reference qrefname="name <not an embedded uri>" qrefns="a NAMESPACE">
+ <reference qrefname="name <not an embedded uri>" qrefns="a name/space">
name <not an embedded URI>
"""],
[r"""
diff --git a/test/test_transforms/test_qualified_references.py b/test/test_transforms/test_qualified_references.py
index fff9caa5b..65aa1c76c 100755
--- a/test/test_transforms/test_qualified_references.py
+++ b/test/test_transforms/test_qualified_references.py
@@ -129,7 +129,7 @@ Section
Section
=======
-`<../../../../test data> Section`_
+`<../../..\\..\\test data> Section`_
""" % paths,
"""\
<document docset_root="%(docset-root)s" source="test data">
@@ -144,7 +144,7 @@ Section
Duplicate implicit target name: "section".
<paragraph>
<problematic ids="id3" refid="id2">
- `<../../../../test data> Section`_
+ `<../../..\\..\\test data> Section`_
<system_message backrefs="id3" ids="id2" level="3" line="8" source="test data" type="ERROR">
<paragraph>
Duplicate target "section" in namespace "../../../../test data" cannot be referenced.