date.c: fix printout of timezone offsets that aren't exact hours

We'd get the sign wrong for the minutes part of a negative offset.
This commit is contained in:
Linus Torvalds
2005-04-30 16:18:41 -07:00
parent 92e2311b6c
commit 7f26664f1f

10
date.c
View File

@ -250,7 +250,7 @@ static int match_tz(char *date, int *offp)
void parse_date(char *date, char *result, int maxlen)
{
struct tm tm;
int offset;
int offset, sign;
time_t then;
memset(&tm, 0, sizeof(tm));
@ -293,7 +293,13 @@ void parse_date(char *date, char *result, int maxlen)
then -= offset * 60;
snprintf(result, maxlen, "%lu %+03d%02d", then, offset/60, offset % 60);
sign = '+';
if (offset < 0) {
offset = -offset;
sign = '-';
}
snprintf(result, maxlen, "%lu %c%02d%02d", then, sign, offset/60, offset % 60);
}
void datestamp(char *buf, int bufsize)