From 6b1d945439ee2c22ccf1b3905b07936697f25286 Mon Sep 17 00:00:00 2001
From: Marcus Wellhardh <wellhard@roxen.com>
Date: Sat, 26 Feb 2000 23:28:49 +0100
Subject: [PATCH] Added support for short month names & check for unknown month
 names in the parse funktion.

Rev: lib/modules/Calendar.pmod/Gregorian.pmod:1.22
---
 lib/modules/Calendar.pmod/Gregorian.pmod | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/modules/Calendar.pmod/Gregorian.pmod b/lib/modules/Calendar.pmod/Gregorian.pmod
index 4be7166914..2bb43ae2ea 100644
--- a/lib/modules/Calendar.pmod/Gregorian.pmod
+++ b/lib/modules/Calendar.pmod/Gregorian.pmod
@@ -201,8 +201,11 @@ class Year
 	 if (!month_mapping)
 	 {
 	    month_mapping=
-	       mkmapping(Array.map(month_names,lower_case),
-			 indices(allocate(13))[1..]);
+	      mkmapping(Array.map(month_names, lower_case)+
+			Array.map(month_names,
+				  lambda(string s)
+				  { return lower_case(s[0..2]); } ),
+			(indices(allocate(13))[1..]) * 2);
 	 }
 	 n=month_mapping[lower_case(n)];
 	 if (!n) return 0;
@@ -1457,7 +1460,11 @@ object parse(string fmt,string arg)
    object low=m->year;
 
    if (m->M)
+   {
       m->month=low=m->year->month(m->M);
+      if(!m->month)
+         return 0; // Unknown month
+   }
    if (m->W) 
       m->week=low=m->year->week(m->W);
 
-- 
GitLab