summaryrefslogtreecommitdiff
path: root/git/config.py
diff options
context:
space:
mode:
authorJulien Kauffmann <julien.kauffmann@freelan.org>2012-02-08 10:11:00 +0100
committerJulien Kauffmann <julien.kauffmann@freelan.org>2012-02-08 10:11:14 +0100
commit3cadd6f793f6c59fa3ad0d6e1a209d6b6b06b6da (patch)
tree19223b48067de0a1edc322577ada516488bd0094 /git/config.py
parent2b7975cab03ea76db412b9f8d35ef82286f25777 (diff)
downloadgitpython-3cadd6f793f6c59fa3ad0d6e1a209d6b6b06b6da.tar.gz
Fixed a case were values containing \\" were not properly escaped
Diffstat (limited to 'git/config.py')
-rw-r--r--git/config.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/git/config.py b/git/config.py
index 64031fdb..620f7b10 100644
--- a/git/config.py
+++ b/git/config.py
@@ -254,9 +254,14 @@ class GitConfigParser(cp.RawConfigParser, object):
if not escaped and c == '"':
in_quote = not in_quote
else:
- escaped = (c == '\\')
+ escaped = (c == '\\') and not escaped
unquoted_optval += c
+ if in_quote:
+ if not e:
+ e = cp.ParsingError(fpname)
+ e.append(lineno, repr(line))
+
optval = unquoted_optval
optval = optval.replace('\\\\', '\\') # Unescape backslashes