提交 62f9a632 编写于 作者: M Matthieu Moy 提交者: Pat Thoyts

git-gui: use shell to launch textconv filter in "blame"

The textconv filters may include multiple arguments and may make use
of unix shell features. To maintain compatibility with 'git blame'
ensure these commands are passed through bash.
Reported-by: NKirill Smelkov <kirr@landau.phys.spbu.ru>
Signed-off-by: NMatthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: NPat Thoyts <patthoyts@users.sourceforge.net>
上级 78077772
......@@ -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' \
......
......@@ -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
......
......@@ -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]
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册