gitk: Allow displaying time zones from author and commit dates timestamps
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>
This commit is contained in:

committed by
Paul Mackerras

parent
4135d36b0c
commit
019e1630ac
22
gitk
22
gitk
@ -11580,7 +11580,29 @@ proc prefsok {} {
|
|||||||
proc formatdate {d} {
|
proc formatdate {d} {
|
||||||
global datetimeformat
|
global datetimeformat
|
||||||
if {$d ne {}} {
|
if {$d ne {}} {
|
||||||
|
# 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]
|
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
|
return $d
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user