parse_date_basic(): let the system handle DST conversion
commitf6e6362107a1e7a798dc1c28ef439a3157813467
authorJunio C Hamano <gitster@pobox.com>
Wed, 15 Apr 2015 15:47:48 +0000 (15 08:47 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 15 Apr 2015 17:25:32 +0000 (15 10:25 -0700)
treec28c8644298e4e6dfcfee372e4975ac1263c3cc0
parent7fcec48da90f95dc64268ebd4b3073ae9487fe4e
parse_date_basic(): let the system handle DST conversion

The function parses the input to compute the broken-down time in
"struct tm", and the GMT timezone offset.  If the timezone offset
does not exist in the input, the broken-down time is turned into the
number of seconds since epoch both in the current timezone and in
GMT and the offset is computed as their difference.

However, we forgot to make sure tm.tm_isdst is set to -1 (i.e. let
the system figure out if DST is in effect in the current timezone
when turning the broken-down time to the number of seconds since
epoch); it is done so at the beginning of the function, but a call
to match_digit() in the function can lead to a call to gmtime_r() to
clobber the field.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Diagnosed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
date.c