From f446686916e503dfb9fb928252d1b72a07573b29 Mon Sep 17 00:00:00 2001 From: Dengke Du Date: Tue, 18 Jul 2017 03:42:56 -0400 Subject: [PATCH] remove glibc assumption glibc time.h header has an undocumented __isleap macro that we are using anf musl is missing it. Since it is undocumented & does not appear on any other libc, stop using it and just define the macro in locally instead. Upstream-Status: Submitted [ https://lists.debian.org/debian-accessibility/2017/07/msg00044.html ] Signed-off-by: Khem Raj Signed-off-by: Dengke Du --- parsetime.y | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/parsetime.y b/parsetime.y index 7005e88..324e6d3 100644 --- a/parsetime.y +++ b/parsetime.y @@ -8,6 +8,9 @@ #define YYDEBUG 1 +#define is_leap_year(y) \ + ((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0)) + struct tm exectm; static int isgmt; static int yearspec; @@ -217,8 +220,8 @@ date : month_name day_number mnum == 12) && dnum > 31) || ((mnum == 4 || mnum == 6 || mnum == 9 || mnum == 11) && dnum > 30) - || (mnum == 2 && dnum > 29 && __isleap(ynum+1900)) - || (mnum == 2 && dnum > 28 && !__isleap(ynum+1900)) + || (mnum == 2 && dnum > 29 && is_leap_year(ynum+1900)) + || (mnum == 2 && dnum > 28 && !is_leap_year(ynum+1900)) ) { yyerror("Error in day of month"); @@ -261,8 +264,8 @@ date : month_name day_number mnum == 12) && dnum > 31) || ((mnum == 4 || mnum == 6 || mnum == 9 || mnum == 11) && dnum > 30) - || (mnum == 2 && dnum > 29 && __isleap(ynum+1900)) - || (mnum == 2 && dnum > 28 && !__isleap(ynum+1900)) + || (mnum == 2 && dnum > 29 && is_leap_year(ynum+1900)) + || (mnum == 2 && dnum > 28 && !is_leap_year(ynum+1900)) ) { yyerror("Error in day of month"); -- 2.8.1