git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 5/5] git-add--interactive.perl: Use unquote_path() from Git.pm

From
PWPhillip Wood <phillip.wood@talktalk.net>
Date
Jun 22, 2017, 10:26 UTC
Message-ID
<20170622102622.26147-6-phillip.wood@talktalk.net>
In-Reply-To
<20170622102622.26147-1-phillip.wood@talktalk.net>
From: Phillip Wood <phillip.wood@dunelm.org.uk>

Not that we've copied unquote_path() to Git.pm use that copy instead of our own.

Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
---
 git-add--interactive.perl | 43 +------------------------------------------
 1 file changed, 1 insertion(+), 42 deletions(-)
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index 709a5f6ce6fbdb2da14084e94ae9df1db1c3d0a6..7ea3591edc056d4405b1f18800ffd2d0b351f93c 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 |'
-- 
2.13.0
Previous: Junio C HamanoNext: Phillip Wood
Message 7 of 17 in “Move unquote_path() from git-add--interactive.perl to Git.pm”
  1. 0/5 Move unquote_path() from git-add--interactive.perl to Git.pmPhillip Wood, Jun 22, 2017
  2. 2/5 Git::unquote_path() Handle '\a'Phillip Wood, Jun 22, 2017
  3. 1/5 Git.pm Add unquote_path()Phillip Wood, Jun 22, 2017
  4. Junio C HamanoJun 22, 2017
  5. 3/5 Git::unquote_path() throw an exception on bad pathPhillip Wood, Jun 22, 2017
  6. Junio C HamanoJun 22, 2017
  7. 5/5 git-add--interactive.perl: Use unquote_path() from Git.pmPhillip Wood, Jun 22, 2017
  8. 4/5 Add tests for Git::unquote_path()Phillip Wood, Jun 22, 2017
  9. Junio C HamanoJun 22, 2017
  10. Jeff KingJun 22, 2017
  11. Phillip WoodJun 30, 2017
  12. 0/4 Move unquote_path from git-add--interactive.perl to Git.pmPhillip Wood, Jun 30, 2017
  13. 1/4 add -i move unquote_path() to Git.pmPhillip Wood, Jun 30, 2017
  14. 4/4 Add tests for Git::unquote_path()Phillip Wood, Jun 30, 2017
  15. 2/4 Git::unquote_path() Handle '\a'Phillip Wood, Jun 30, 2017
  16. 3/4 Git::unquote_path() throw an exception on bad pathPhillip Wood, Jun 30, 2017
  17. Junio C HamanoJun 30, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.