summaryrefslogtreecommitdiff
path: root/git-add--interactive.perl
diff options
context:
space:
mode:
authorLibravatar Phillip Wood <phillip.wood@dunelm.org.uk>2017-06-30 10:49:09 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-06-30 08:02:20 -0700
commit1d542a5487f788874f18cca0d23b7b680fa04119 (patch)
treec8725abde6133c4d485971e5edb59a136baa46ed /git-add--interactive.perl
parentPrepare for 2.13.2 (diff)
downloadtgif-1d542a5487f788874f18cca0d23b7b680fa04119.tar.xz
add -i: move unquote_path() to Git.pm
Move unquote_path() from git-add--interactive to Git.pm so it can be used by other scripts. Note this is a straight copy, it does not handle '\a'. That will be fixed in the next commit. Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
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 709a5f6ce6..7ea3591edc 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");
@@ -175,47 +175,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 |'