From: Shawn O. Pearce Date: Mon, 29 Jan 2007 08:09:28 +0000 (-0500) Subject: git-gui: Correctly handle spaces in filepaths. X-Git-Tag: gitgui-0.6.0~25 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=8f6c07b902b297329e63799d5332758530ec4d99;p=git.git git-gui: Correctly handle spaces in filepaths. Anytime are about to open a pipe on what may be user data we need to make sure the value is escaped correctly into a Tcl list, so that the executed subprocess will receive the right arguments. For the most part we were already doing this correctly, but a handful of locations did not. Signed-off-by: Shawn O. Pearce --- diff --git a/git-gui.sh b/git-gui.sh index d5490cdde..160309b2c 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -3087,7 +3087,8 @@ proc ls_tree {w tree_id name} { lappend browser_stack($w) [list $tree_id $name] $w conf -state disabled - set fd [open "| git ls-tree -z $tree_id" r] + set cmd [list git ls-tree -z $tree_id] + set fd [open "| $cmd" r] fconfigure $fd -blocking 0 -translation binary -encoding binary fileevent $fd readable [list read_ls_tree $fd $w] } @@ -3247,7 +3248,8 @@ proc show_blame {commit path} { wm title $w "[appname] ([reponame]): File Viewer" set blame_data($w,total_lines) 0 - set fd [open "| git cat-file blob $commit:$path" r] + set cmd [list git cat-file blob "$commit:$path"] + set fd [open "| $cmd" r] fconfigure $fd -blocking 0 -translation lf -encoding binary fileevent $fd readable [list read_blame_catfile $fd $w $commit $path \ $texts $w.out.linenumber $w.out.file]