about summary refs log tree commit homepage
path: root/lib/PublicInbox/Git.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/Git.pm')
-rw-r--r--lib/PublicInbox/Git.pm4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm
index 4601f259..90b9214a 100644
--- a/lib/PublicInbox/Git.pm
+++ b/lib/PublicInbox/Git.pm
@@ -23,13 +23,15 @@ my %GIT_ESC = (
         r => "\r",
         t => "\t",
         v => "\013",
+        '"' => '"',
+        '\\' => '\\',
 );
 
 # unquote pathnames used by git, see quote.c::unquote_c_style.c in git.git
 sub git_unquote ($) {
         return $_[0] unless ($_[0] =~ /\A"(.*)"\z/);
         $_[0] = $1;
-        $_[0] =~ s/\\([abfnrtv])/$GIT_ESC{$1}/g;
+        $_[0] =~ s/\\([\\"abfnrtv])/$GIT_ESC{$1}/g;
         $_[0] =~ s/\\([0-7]{1,3})/chr(oct($1))/ge;
         $_[0];
 }