summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgrubert <grubert@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2008-02-15 19:25:44 +0000
committergrubert <grubert@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2008-02-15 19:25:44 +0000
commit6edba714c0be8e7022842d60566be18e1c08c090 (patch)
treeb70ea779dc48f5f767f14c0ad7d6b74d8232ea35
parentb6f517e2bd880f7a760ba26344dbcb07a07e9e8e (diff)
downloaddocutils-6edba714c0be8e7022842d60566be18e1c08c090.tar.gz
Fix: escaping ``%`` in href urls.
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@5512 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
-rw-r--r--docutils/HISTORY.txt1
-rw-r--r--docutils/docutils/writers/latex2e/__init__.py2
-rwxr-xr-xdocutils/test/test_writers/test_latex2e.py17
3 files changed, 19 insertions, 1 deletions
diff --git a/docutils/HISTORY.txt b/docutils/HISTORY.txt
index ce3b179da..a1e378863 100644
--- a/docutils/HISTORY.txt
+++ b/docutils/HISTORY.txt
@@ -117,6 +117,7 @@ Changes Since 0.4
* docutils/writers/latex2e/__init__.py:
+ - Fix: escaping ``%`` in href urls.
- Move usepackage hyperref after stylesheet inclusion.
- Fix: scrartcl does not have chapter but scrreprt.
- Add newline after ``\end{verbatim}``.
diff --git a/docutils/docutils/writers/latex2e/__init__.py b/docutils/docutils/writers/latex2e/__init__.py
index 2c6ff6e63..a72d22049 100644
--- a/docutils/docutils/writers/latex2e/__init__.py
+++ b/docutils/docutils/writers/latex2e/__init__.py
@@ -1858,7 +1858,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
href = hash_char + self.document.nameids[node['refname']]
else:
raise AssertionError('Unknown reference.')
- self.body.append('\\href{%s}{' % href)
+ self.body.append('\\href{%s}{' % href.replace("%", "\\%"))
if self._reference_label and not node.has_key('refuri'):
self.body.append('\\%s{%s}}' % (self._reference_label,
href.replace(hash_char, '')))
diff --git a/docutils/test/test_writers/test_latex2e.py b/docutils/test/test_writers/test_latex2e.py
index 84e263f59..fea5e537c 100755
--- a/docutils/test/test_writers/test_latex2e.py
+++ b/docutils/test/test_writers/test_latex2e.py
@@ -87,6 +87,23 @@ totest = {}
totest_latex_toc = {}
totest_latex_citations = {}
+totest['url_chars'] = [
+["http://nowhere/url_with%28parens%29",
+latex_head + """\
+\\title{}
+\\author{}
+\\date{}
+\\raggedbottom
+\\begin{document}
+
+\\setlength{\\locallinewidth}{\\linewidth}
+
+\\href{http://nowhere/url_with\\%28parens\\%29}{http://nowhere/url{\\_}with{\\%}28parens{\\%}29}
+
+\\end{document}
+"""],
+]
+
totest['table_of_contents'] = [
# input
["""\