Skip to content

Commit

Permalink
gitk: Allow displaying time zones from author and commit dates timest…
Browse files Browse the repository at this point in the history
…amps

Now gitk can be configured to display author and commit dates in their
original timezone, by putting %z into datetimeformat in ~/.gitk.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Anders Kaseorg authored and Paul Mackerras committed Jun 15, 2014
1 parent 4135d36 commit 019e163
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion gitk
Original file line number Diff line number Diff line change
Expand Up @@ -11580,7 +11580,29 @@ proc prefsok {} {
proc formatdate {d} {
global datetimeformat
if {$d ne {}} {
set d [clock format [lindex $d 0] -format $datetimeformat]
# If $datetimeformat includes a timezone, display in the
# timezone of the argument. Otherwise, display in local time.
if {[string match {*%[zZ]*} $datetimeformat]} {
if {[catch {set d [clock format [lindex $d 0] -timezone [lindex $d 1] -format $datetimeformat]}]} {
# Tcl < 8.5 does not support -timezone. Emulate it by
# setting TZ (e.g. TZ=<-0430>+04:30).
global env
if {[info exists env(TZ)]} {
set savedTZ $env(TZ)
}
set zone [lindex $d 1]
set sign [string map {+ - - +} [string index $zone 0]]
set env(TZ) <$zone>$sign[string range $zone 1 2]:[string range $zone 3 4]
set d [clock format [lindex $d 0] -format $datetimeformat]
if {[info exists savedTZ]} {
set env(TZ) $savedTZ
} else {
unset env(TZ)
}
}
} else {
set d [clock format [lindex $d 0] -format $datetimeformat]
}
}
return $d
}
Expand Down

0 comments on commit 019e163

Please sign in to comment.