diff options
-rw-r--r-- | blame.c | 17 | ||||
-rwxr-xr-x | git-annotate.perl | 8 |
2 files changed, 20 insertions, 5 deletions
@@ -550,13 +550,22 @@ static void get_commit_info(struct commit* commit, struct commit_info* ret) *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; - - strftime(time_buf, sizeof(time_buf), "%Y-%m-%d %H:%M:%S ", gmtime(&t)); - strcat(time_buf, tz); + int minutes, tz; + struct tm *tm; + + 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 d93ee19c7e..b113def97b 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.. |