diff --git a/lib/modules/Calendar.pmod/Events.pmod b/lib/modules/Calendar.pmod/Events.pmod index 94578156057e90073c2e93eaf6b92ce56862a018..e991ad285d9e634df60aeaf010612f69730c198d 100644 --- a/lib/modules/Calendar.pmod/Events.pmod +++ b/lib/modules/Calendar.pmod/Events.pmod @@ -145,14 +145,25 @@ Event.Event make_event(string source) case "Equinox": if (sscanf(rule, "Equinox%*[ \t]%s", string type)) { switch(String.trim_all_whites(type)) { - case "Vernal": + case "Vernal": case "Northward": return Event.Solar(0); - case "Autumnal": + case "Autumnal": case "Southward": return Event.Solar(2); } } error("Events: rule error; unknown rule format:\n%O\n",source); + case "Solstice": + if (sscanf(rule, "Solstice%*[ \t]%s", string type)) { + switch(String.trim_all_whites(type)) { + case "Summer": case "Northern": + return Event.Solar(1); + case "Winter": case "Southern": + return Event.Solar(3); + } + } + error("Events: rule error; unknown rule format:\n%O\n",source); + case "Weekday": if (sscanf(rule,"Weekday%*[ \t]%s%*[ \t]%d days", wd,days)>=2 && (n=wd2n[wd])) diff --git a/lib/modules/Calendar.pmod/events/regional b/lib/modules/Calendar.pmod/events/regional index 9fae27ff6eaa90a8eef125e970c81d3193a58afd..775f18fc9e633d327d561874f533a240fbe9b6d7 100644 --- a/lib/modules/Calendar.pmod/events/regional +++ b/lib/modules/Calendar.pmod/events/regional @@ -87,6 +87,13 @@ # Global Events +# Astronomical events + + Event "northward equinox" - "Northward Equinox" Equinox Vernal + Event "Southward equinox" - "Southward Equinox" Equinox Autumnal + Event "northern solstice" - "Northern Solstice" Solstice Northern + Event "southern solstice" - "Southern Solstice" Solstice Southern + # western gregorian calendar events Event "new year" - "New Year's Day" Fixed Jan 1