* include/grub/datetime.h (grub_datetime2unixtime): Fix offset.

This commit is contained in:
Vladimir 'phcoder' Serbinenko 2012-01-14 11:51:52 +01:00
parent b4bf7c3b20
commit b1ac4cb1f9
2 changed files with 9 additions and 5 deletions

View file

@ -1,3 +1,7 @@
2012-01-14 Vladimir Serbinenko <phcoder@gmail.com>
* include/grub/datetime.h (grub_datetime2unixtime): Fix offset.
2012-01-14 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/lib/posix_wrap/stdlib.h (MB_CUR_MAX): Moved from here ...

View file

@ -85,14 +85,14 @@ grub_datetime2unixtime (const struct grub_datetime *datetime, grub_int32_t *nix)
/* In the period of validity of unixtime all years divisible by 4
are bissextile*/
/* Convenience: let's have 3 consecutive non-bissextile years
at the beginning of the epoch. So count from 1971 instead of 1970 */
ret = 2 * SECPERYEAR + SECPERDAY;
at the beginning of the epoch. So count from 1973 instead of 1970 */
ret = 3 * SECPERYEAR + SECPERDAY;
/* Transform C divisions and modulos to mathematical ones */
y4 = (datetime->year - 1972) / 4;
if (datetime->year < 1972)
y4 = (datetime->year - 1973) / 4;
if (datetime->year < 1973)
y4--;
ay = datetime->year - 1972 - 4 * y4;
ay = datetime->year - 1973 - 4 * y4;
ret += y4 * SECPER4YEARS;
ret += ay * SECPERYEAR;