[PATCH] blame and annotate: show localtime with timezone.
- From
Junio C Hamano <junkio@cox.net>
- Date
- Mar 5, 2006, 22:48 UTC
- Message-ID
- <7vbqwkecf2.fsf_-_@assigned-by-dhcp.cox.net>
- In-Reply-To
- <20060305123800.GD23448@c165.ib.student.liu.se>
Earlier they showed gmtime and timezone, which was inconsistent with the way our commits and tags are pretty-printed.
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
blame.c | 15 ++++++++++++--- git-annotate.perl | 8 +++++++- 2 files changed, 19 insertions(+), 4 deletions(-)
e29f298a17ee898fd0d191d448ba4fc202175896
diff --git a/blame.c b/blame.c index 59146fa..a3a8ddc 100644 --- a/blame.c +++ b/blame.c @@ -550,13 +550,22 @@ static void get_commit_info(struct commi *tmp = 0; } -char* format_time(unsigned long time, const char* tz) +static const char* format_time(unsigned long time, const char* tz_str) { static char time_buf[128]; time_t t = time; + int minutes, tz; + struct tm *tm; - strftime(time_buf, sizeof(time_buf), "%Y-%m-%d %H:%M:%S ", gmtime(&t)); - strcat(time_buf, tz); + tz = atoi(tz_str); + minutes = tz < 0 ? -tz : tz; + minutes = (minutes / 100)*60 + (minutes % 100); + minutes = tz < 0 ? -minutes : minutes; + t = time + minutes * 60; + tm = gmtime(&t); + + strftime(time_buf, sizeof(time_buf), "%Y-%m-%d %H:%M:%S ", tm); + strcat(time_buf, tz_str); return time_buf; } diff --git a/git-annotate.perl b/git-annotate.perl index d93ee19..b113def 100755 --- a/git-annotate.perl +++ b/git-annotate.perl @@ -418,7 +418,13 @@ sub format_date { return $_[0]; } my ($timestamp, $timezone) = split(' ', $_[0]); - return strftime("%Y-%m-%d %H:%M:%S " . $timezone, gmtime($timestamp)); + my $minutes = abs($timezone); + $minutes = int($minutes / 100) * 60 + ($minutes % 100); + if ($timezone < 0) { + $minutes = -$minutes; + } + my $t = $timestamp + $minutes * 60; + return strftime("%Y-%m-%d %H:%M:%S " . $timezone, gmtime($t)); } # Copied from git-send-email.perl - We need a Git.pm module..
-- 1.2.4.gee5c7