git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Phillip Wood <phillip.wood@talktalk.net>
Cc: Git Mailing List <git@vger.kernel.org>, Jeff King <peff@peff.net>,
	Phillip Wood <phillip.wood@dunelm.org.uk>
Subject: Re: [PATCH 1/5] Git.pm Add unquote_path()
Date: Thu, 22 Jun 2017 12:26:22 -0700	[thread overview]
Message-ID: <xmqqlgojken5.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20170622102622.26147-2-phillip.wood@talktalk.net> (Phillip Wood's message of "Thu, 22 Jun 2017 11:26:18 +0100")

Phillip Wood <phillip.wood@talktalk.net> writes:

> Subject: Re: [PATCH 1/5] Git.pm Add unquote_path()

Subject: [PATCH 1/5] Git.pm: add unquote_path()

But I think it is more customary to remove the implementation in the
other file and adjust the existing callers to call this new one in
this same commit.  And then in follow-up commits, improve the
implementation in Git.pm.

When that happens, the subject would become

Subject: [PATCH 1/?] add-i: move unquote_path() to Git.pm

and the first sentence in the body would be tweaked ("move
unquote_path() from ... to Git.pm so that ...").

> From: Phillip Wood <phillip.wood@dunelm.org.uk>
>
> Add unquote_path() from git-add--interactive 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

s/next commit/&./

Good to notice and document the lack of '\a' which does get used by
quote.c::sq_lookup[] when showing chr(7).

> Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
> ---
>  perl/Git.pm | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 52 insertions(+), 1 deletion(-)
>
> diff --git a/perl/Git.pm b/perl/Git.pm
> index bfce1f795dfa5fea05f4f96637a1ae2333038735..8afde87fc8162271ba178e0fff3e921f070ac621 100644
> --- a/perl/Git.pm
> +++ b/perl/Git.pm
> @@ -61,7 +61,8 @@ require Exporter;
>                  remote_refs prompt
>                  get_tz_offset get_record
>                  credential credential_read credential_write
> -                temp_acquire temp_is_locked temp_release temp_reset temp_path);
> +                temp_acquire temp_is_locked temp_release temp_reset temp_path
> +                unquote_path);
>  
>  
>  =head1 DESCRIPTION
> @@ -1451,6 +1452,56 @@ sub prefix_lines {
>  	return $string;
>  }
>  
> +=item unquote_path ( PATH )
> +
> +Unquote a quoted path containing c-escapes as returned by ls-files etc.
> +when not using -z
> +
> +=cut
> +
> +{
> +	my %unquote_map = (

The original calls this cquote_map, partly because there may be
other kinds of quoting possible.  I do not see a reason not to
follow suit here.

> +		"b" => chr(8),
> +		"t" => chr(9),
> +		"n" => chr(10),
> +		"v" => chr(11),
> +		"f" => chr(12),
> +		"r" => chr(13),
> +		"\\" => "\\",
> +		"\"" => "\""

In an early part of "sub unquote_path" we see dq spelled as "\042"
and in the original cquote_map, this is also defined with "\042".  I
do not think you want to change the above to make them inconsistent.

> +	);
> +
> +	sub unquote_path {
> +		local ($_) = @_;
> +		my ($retval, $remainder);
> +		if (!/^\042(.*)\042$/) {
> +			return $_;
> +		}

Other than that, I can see this is just a straight-copy, which is
exactly what we want in an early step of a series like this.  Squash
in a change to remove the original from add-i and adjust the caller
to call this one (you may not have to do anything as it uses Git.pm
already, or perhaps "use Git qw(unquote_path)" or something?) and it
would be perfect ;-)

Thanks.


  reply	other threads:[~2017-06-22 19:26 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-22 10:26 [PATCH 0/5] Move unquote_path() from git-add--interactive.perl to Git.pm Phillip Wood
2017-06-22 10:26 ` [PATCH 1/5] Git.pm Add unquote_path() Phillip Wood
2017-06-22 19:26   ` Junio C Hamano [this message]
2017-06-22 10:26 ` [PATCH 2/5] Git::unquote_path() Handle '\a' Phillip Wood
2017-06-22 10:26 ` [PATCH 3/5] Git::unquote_path() throw an exception on bad path Phillip Wood
2017-06-22 19:37   ` Junio C Hamano
2017-06-22 10:26 ` [PATCH 4/5] Add tests for Git::unquote_path() Phillip Wood
2017-06-22 10:26 ` [PATCH 5/5] git-add--interactive.perl: Use unquote_path() from Git.pm Phillip Wood
2017-06-22 19:38 ` [PATCH 0/5] Move unquote_path() from git-add--interactive.perl to Git.pm Junio C Hamano
2017-06-22 23:18 ` Jeff King
2017-06-30  9:53   ` Phillip Wood
2017-06-30  9:49 ` [PATCH 0/4] Move unquote_path " Phillip Wood
2017-06-30  9:49   ` [PATCH 1/4] add -i move unquote_path() " Phillip Wood
2017-06-30  9:49   ` [PATCH 2/4] Git::unquote_path() Handle '\a' Phillip Wood
2017-06-30  9:49   ` [PATCH 3/4] Git::unquote_path() throw an exception on bad path Phillip Wood
2017-06-30  9:49   ` [PATCH 4/4] Add tests for Git::unquote_path() Phillip Wood
2017-06-30 15:06   ` [PATCH 0/4] Move unquote_path from git-add--interactive.perl to Git.pm Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqlgojken5.fsf@gitster.mtv.corp.google.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    --cc=phillip.wood@dunelm.org.uk \
    --cc=phillip.wood@talktalk.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).