summaryrefslogtreecommitdiff
path: root/git-add--interactive.perl
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-07-10 13:42:50 -0700
committerJunio C Hamano <gitster@pobox.com>2017-07-10 13:42:50 -0700
commit9bf8e0c73d28eeede51f8d5cb75865eb544e7d47 (patch)
tree856327a74e516198a9999ac23466c48816b6657a /git-add--interactive.perl
parentc4f70d2c9025b6dad34d0833a87d8ac24c221956 (diff)
parent3f9c637ec7c28dc9de5937b45334ee11875e9fe8 (diff)
downloadgit-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-xgit-add--interactive.perl43
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 |'