From: Matthieu Moy Date: Thu, 05 Aug 2010 10:05:22 GMT Subject: [PATCH] git-gui: Use shell to launch textconv filter in "blame" Message-ID: <1281002722-3042-1-git-send-email-Matthieu.Moy@imag.fr> In-Reply-To: This allows one to use textconv commands with arguments. Signed-off-by: Matthieu Moy --- git-gui/Makefile | 1 + git-gui/git-gui.sh | 6 ++++++ git-gui/lib/blame.tcl | 4 +++- 3 files changed, 10 insertions(+), 1 deletions(-) diff --git a/git-gui/Makefile b/git-gui/Makefile index 197b55e..e22ba5c 100644 --- a/git-gui/Makefile +++ b/git-gui/Makefile @@ -215,6 +215,7 @@ endif $(GITGUI_MAIN): git-gui.sh GIT-VERSION-FILE GIT-GUI-VARS $(QUIET_GEN)rm -f $@ $@+ && \ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ + -e 's|@@SHELL_PATH@@|$(SHELL_PATH_SQ)|' \ -e '1,30s|^ argv0=$$0| argv0=$(GITGUI_SCRIPT)|' \ -e '1,30s|^ exec wish | exec '\''$(TCLTK_PATH_SED)'\'' |' \ -e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \ diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh index bb10489..9049abf 100755 --- a/git-gui/git-gui.sh +++ b/git-gui/git-gui.sh @@ -128,6 +128,7 @@ set _githtmldir {} set _reponame {} set _iscygwin {} set _search_path {} +set _shellpath {@@SHELL_PATH@@} set _trace [lsearch -exact $argv --trace] if {$_trace >= 0} { @@ -137,6 +138,11 @@ if {$_trace >= 0} { set _trace 0 } +proc shellpath {} { + global _shellpath + return $_shellpath +} + proc appname {} { global _appname return $_appname diff --git a/git-gui/lib/blame.tcl b/git-gui/lib/blame.tcl index 2137ec9..77656d3 100644 --- a/git-gui/lib/blame.tcl +++ b/git-gui/lib/blame.tcl @@ -460,7 +460,9 @@ method _load {jump} { } if {$commit eq {}} { if {$do_textconv ne 0} { - set fd [open |[list $textconv $path] r] + # Run textconv with sh -c "..." to allow it to + # contain command + arguments. + set fd [open |[list [shellpath] -c "$textconv \"\$0\"" $path] r] } else { set fd [open $path r] } -- 1.7.2.1.30.g18195