Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

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

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:56:05

Asheesh Laroia [off-list ref] 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.
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 <redacted>
---
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"
quoted hunk
 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='
 '
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help