From: Shawn O. Pearce Date: Fri, 12 Oct 2007 20:33:45 +0000 (-0400) Subject: git-gui: Collapse $env(HOME) to ~/ in recent repositories on Windows X-Git-Tag: gitgui-0.9.0~18 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=82dd4e0465282e39962ba8fdb01c42aa665b1999;p=git.git git-gui: Collapse $env(HOME) to ~/ in recent repositories on Windows Apparently native Tcl/Tk on Windows is using \ as the return value from [file separator] but [file normalize] on that same system is using / rather than \ to represent a directory separator. I really think that is nuts, but its what is happening. So we can actually just hardcode our separator to / as all systems we support (Windows, Mac OS X, UNIX) use /. Signed-off-by: Shawn O. Pearce --- diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl index bf0436146..2bac50e14 100644 --- a/lib/choose_repository.tcl +++ b/lib/choose_repository.tcl @@ -140,12 +140,16 @@ constructor pick {} { $w_recentlist tag conf link \ -foreground blue \ -underline 1 - set home "[file normalize $::env(HOME)][file separator]" + set home $::env(HOME) + if {[is_Cygwin]} { + set home [exec cygpath --windows --absolute $home] + } + set home "[file normalize $home]/" set hlen [string length $home] foreach p $sorted_recent { set path $p if {[string equal -length $hlen $home $p]} { - set p "~[file separator][string range $p $hlen end]" + set p "~/[string range $p $hlen end]" } regsub -all "\n" $p "\\n" p $w_recentlist insert end $p link