summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--git/repo/base.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/git/repo/base.py b/git/repo/base.py
index cea88f39..5be63d86 100644
--- a/git/repo/base.py
+++ b/git/repo/base.py
@@ -54,7 +54,9 @@ from .fun import (
)
from git.compat import (
text_type,
- defenc
+ force_text,
+ defenc,
+ PY3
)
import os
@@ -625,7 +627,12 @@ class Repo(object):
filename = line[len(prefix):].rstrip('\n')
# Special characters are escaped
if filename[0] == filename[-1] == '"':
- filename = filename[1:-1].decode('string_escape').decode(defenc)
+ filename = filename[1:-1]
+ if PY3:
+ # WHATEVER ... it's a mess, but works for me
+ filename = filename.encode('ascii').decode('unicode_escape').encode('latin1').decode(defenc)
+ else:
+ filename = filename.decode('string_escape').decode(defenc)
untracked_files.append(filename)
finalize_process(proc)
return untracked_files