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

Re: [PATCH] git-mergetool: print filename when it contains %

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 8, 2013, 17:32 UTC
Message-ID
<7vhalm3e54.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1360286184-14278-1-git-send-email-asheesh@asheesh.org>
Asheesh Laroia <asheesh@asheesh.org> writes:
> Before this change, if git-mergetool was invoked with regard to

Drop "before this change,"; it is clear (and it is a recommended practice) you are first describing what problem you are addressing.

Show 11 quoted lines
> files with a percent sign (%) in their names, it would print an
> error. For example, if you were calling mergetool on a file called
> "%2F":
>
>     printf: %2F: invalid directive
>
> This changes the behavior to pass "%s" to printf as its first argument
> to avoid processing the filename as a format string.
>
> Signed-off-by: Asheesh Laroia <asheesh@asheesh.org>
> ---
Thanks.

As a follow-up to this patch, we may want to perform a systematic audit of

    $ git grep -e 'printf "[^"]*\$[^"]*"'
There is one in git-difftool-helper.sh
    printf "\nViewing: '$MERGED'\n"
and mergetools/p4merge:
    printf "$empty_file"
Show 13 quoted lines
>  git-mergetool.sh |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/git-mergetool.sh b/git-mergetool.sh
> index c50e18a..d2b9289 100755
> --- a/git-mergetool.sh
> +++ b/git-mergetool.sh
> @@ -440,7 +440,7 @@ then
>  fi
>  
>  printf "Merging:\n"
> -printf "$files\n"
> +printf "%s" "$files\n"
I think
	printf "%s\n" "$files"
would be clearer.
>  
>  IFS='
>  '
Previous: Asheesh LaroiaNext: Asheesh Laroia
Message 2 of 4 in “git-mergetool: print filename when it contains %”
  1. git-mergetool: print filename when it contains %Asheesh Laroia, Feb 8, 2013
  2. Junio C HamanoFeb 8, 2013
  3. Asheesh LaroiaFeb 8, 2013
  4. Junio C HamanoFeb 8, 2013

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.