Re: [PATCH 3/3] gitk: Allow displaying time zones from author and commit timestamps
- From
Anders Kaseorg <andersk@mit.edu>
- Date
- May 30, 2011, 03:05 UTC
- Message-ID
- <alpine.DEB.2.02.1105291740410.23145@dr-wily.mit.edu>
- In-Reply-To
- <20110529044656.GA8881@brick.ozlabs.ibm.com>
On Sun, 29 May 2011, Paul Mackerras wrote:
Show 14 quoted lines
> > @@ -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.
> > + 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