diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-07-10 13:42:50 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-07-10 13:42:50 -0700 |
commit | 9bf8e0c73d28eeede51f8d5cb75865eb544e7d47 (patch) | |
tree | 856327a74e516198a9999ac23466c48816b6657a /git-add--interactive.perl | |
parent | c4f70d2c9025b6dad34d0833a87d8ac24c221956 (diff) | |
parent | 3f9c637ec7c28dc9de5937b45334ee11875e9fe8 (diff) | |
download | git-9bf8e0c73d28eeede51f8d5cb75865eb544e7d47.tar.gz |
Merge branch 'pw/unquote-path-in-git-pm'
Code refactoring.
* pw/unquote-path-in-git-pm:
t9700: add tests for Git::unquote_path()
Git::unquote_path(): throw an exception on bad path
Git::unquote_path(): handle '\a'
add -i: move unquote_path() to Git.pm
Diffstat (limited to 'git-add--interactive.perl')
-rwxr-xr-x | git-add--interactive.perl | 43 |
1 files changed, 1 insertions, 42 deletions
diff --git a/git-add--interactive.perl b/git-add--interactive.perl index 0e8543c865..28b325d754 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@ -3,7 +3,7 @@ use 5.008; use strict; use warnings; -use Git; +use Git qw(unquote_path); use Git::I18N; binmode(STDOUT, ":raw"); @@ -174,47 +174,6 @@ if (!defined $GIT_DIR) { } chomp($GIT_DIR); -my %cquote_map = ( - "b" => chr(8), - "t" => chr(9), - "n" => chr(10), - "v" => chr(11), - "f" => chr(12), - "r" => chr(13), - "\\" => "\\", - "\042" => "\042", -); - -sub unquote_path { - local ($_) = @_; - my ($retval, $remainder); - if (!/^\042(.*)\042$/) { - return $_; - } - ($_, $retval) = ($1, ""); - while (/^([^\\]*)\\(.*)$/) { - $remainder = $2; - $retval .= $1; - for ($remainder) { - if (/^([0-3][0-7][0-7])(.*)$/) { - $retval .= chr(oct($1)); - $_ = $2; - last; - } - if (/^([\\\042btnvfr])(.*)$/) { - $retval .= $cquote_map{$1}; - $_ = $2; - last; - } - # This is malformed -- just return it as-is for now. - return $_[0]; - } - $_ = $remainder; - } - $retval .= $_; - return $retval; -} - sub refresh { my $fh; open $fh, 'git update-index --refresh |' |