Re: [PATCH 3/3] gitk: Allow displaying time zones from author and commit timestamps
flat view
From: Anders Kaseorg <hidden>
Date: 2016-06-15 22:51:20
On Sun, 29 May 2011, Paul Mackerras wrote:
quoted
@@ -11018,7 +11018,18 @@ proc prefsok {} { proc formatdate {d} { global datetimeformat if {$d ne {}} { - set d [clock format [lindex $d 0] -format $datetimeformat] + 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. + global env + set zone [lindex $d 1] + set env(TZ) "IDK[string range $zone 0 2]:[string range $zone 3 end]"What is this about? Where is the IDK prefix for timezones defined or described?
Yeah, sorry, that deserved a bit more explanation. This is a kludge to get Tcl 8.4 to format dates in the right timezone. IDK is an arbitrary made up 3-letter code (“I Don’t Know”), since a UTC offset can’t generally be converted into a zone name. The format of TZ is described at: http://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html Actually, reading that again, I just realized that I need to invert the sign. Also that it can be longer than 3 letters; I’ll use “Unknown” instead.
quoted
+ set d [clock format [lindex $d 0] -format $datetimeformat] + unset env(TZ)Oops, we just lost any previous setting of TZ...
Good point. Thanks for taking a look. I’ll follow up with a fixed version. Anders