60 lines
1.9 KiB
Diff
60 lines
1.9 KiB
Diff
|
From 7f811d9c4ebc9444e613e251c31d6bf537a24dc1 Mon Sep 17 00:00:00 2001
|
||
|
From: Khem Raj <raj.khem@gmail.com>
|
||
|
Date: Mon, 13 Apr 2015 16:35:30 -0700
|
||
|
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: Pending
|
||
|
|
||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||
|
[patch from: http://patchwork.openembedded.org/patch/91893/ ]
|
||
|
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||
|
|
||
|
---
|
||
|
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.1.4
|