From 537c21c68cdd9cf69b0db1823cfb0a631f946b47 Mon Sep 17 00:00:00 2001 From: Martin Stjernholm <mast@lysator.liu.se> Date: Wed, 5 Sep 2012 14:07:00 +0200 Subject: [PATCH] Fixed bug where the month was lost with %a to Calendar.parse. --- lib/modules/Calendar.pmod/YMD.pike | 4 ++-- lib/modules/Calendar.pmod/testsuite.in | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/modules/Calendar.pmod/YMD.pike b/lib/modules/Calendar.pmod/YMD.pike index b260d89613..9557e824a4 100644 --- a/lib/modules/Calendar.pmod/YMD.pike +++ b/lib/modules/Calendar.pmod/YMD.pike @@ -2877,14 +2877,14 @@ TimeRange parse(string fmt,string arg,void|TimeRange context) { m->month=low=m->year->month(m->M); } - if (m->W) + if (m->W) m->week=low=m->year->week("w"+m->W); if (!zero_type(m->D)) m->day=low=(m->month||(context?context->month():cal->Month())) ->day((int)m->D); else if (!zero_type(m->a)) - m->day=low=m->year->day(m->a); + m->day=low=(m->month || m->year)->day(m->a); else if (!zero_type(m->e)) m->day=low=(m->week||(context?context->week():cal->Week())) ->day(m->e); diff --git a/lib/modules/Calendar.pmod/testsuite.in b/lib/modules/Calendar.pmod/testsuite.in index cb50fd22a7..39aee6c8c2 100644 --- a/lib/modules/Calendar.pmod/testsuite.in +++ b/lib/modules/Calendar.pmod/testsuite.in @@ -77,6 +77,8 @@ test_equal( Calendar.ISO.parse("%dT%h:%m:%s", "19980717T14:08:55")->set_timezone test_equal( Calendar.ISO.set_timezone("UTC")->parse("%dT%h:%m:%s", "19980717T14:08:55"), Calendar.ISO.set_timezone("UTC")->parse("%dT%h:%m:%s", "19980717T14:08:55") ) +test_eq(Calendar.parse ("%Y %M %a", "2005 Oct 7"), Calendar.Day (2005, 10, 7)) +test_eq(Calendar.parse ("%Y %a", "2005 7"), Calendar.Day (2005, 1, 7)) -- GitLab