diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2007-10-12 16:33:45 -0400 |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2007-10-12 23:07:59 -0400 |
commit | 82dd4e0465282e39962ba8fdb01c42aa665b1999 (patch) | |
tree | 31b3739cb07b55ac976cae9d387b1650d14d1ce2 | |
parent | git-gui: Support cloning Cygwin based work-dirs (diff) | |
download | tgif-82dd4e0465282e39962ba8fdb01c42aa665b1999.tar.xz |
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 <spearce@spearce.org>
-rw-r--r-- | lib/choose_repository.tcl | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl index bf04361464..2bac50e149 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 |