From ae8e1f3afcf72e2e3ac841602143af5ebdba711e Mon Sep 17 00:00:00 2001
From: Bastian Kleineidam <calvin@debian.org>
Date: Tue, 18 Mar 2008 21:44:02 +0100
Subject: Replace backslash in reverse URL resolver

The reverse URL resolver replaces regular expression syntax characters,
which should also include a backslash.

Signed-off-by: Bastian Kleineidam <calvin@debian.org>

diff --git a/django/core/urlresolvers.py b/django/core/urlresolvers.py
index 920b6c4..d3a2893 100644
--- a/django/core/urlresolvers.py
+++ b/django/core/urlresolvers.py
@@ -86,7 +86,7 @@ def reverse_helper(regex, *args, **kwargs):
     """
     # TODO: Handle nested parenthesis in the following regex.
     result = re.sub(r'\(([^)]+)\)', MatchChecker(args, kwargs), regex.pattern)
-    return result.replace('^', '').replace('$', '')
+    return result.replace('^', '').replace('$', '').replace('\\', '')
 
 class MatchChecker(object):
     "Class used in reverse RegexURLPattern lookup."
diff --git a/tests/regressiontests/urlpatterns_reverse/tests.py b/tests/regressiontests/urlpatterns_reverse/tests.py
index 8f571ac..610c3f7 100644
--- a/tests/regressiontests/urlpatterns_reverse/tests.py
+++ b/tests/regressiontests/urlpatterns_reverse/tests.py
@@ -17,6 +17,7 @@ test_data = (
     ('^hardcoded/$', 'hardcoded/', [], {}),
     ('^hardcoded/$', 'hardcoded/', ['any arg'], {}),
     ('^hardcoded/$', 'hardcoded/', [], {'kwarg': 'foo'}),
+    ('^hardcoded/doc\\.pdf$', 'hardcoded/doc.pdf', [], {}),
     ('^people/(?P<state>\w\w)/(?P<name>\w+)/$', 'people/il/adrian/', [], {'state': 'il', 'name': 'adrian'}),
     ('^people/(?P<state>\w\w)/(?P<name>\d)/$', NoReverseMatch, [], {'state': 'il', 'name': 'adrian'}),
     ('^people/(?P<state>\w\w)/(?P<name>\w+)/$', NoReverseMatch, [], {'state': 'il'}),
-- 
1.5.4.4

