]> git.eshelyaron.com Git - emacs.git/commitdiff
Optional args for holiday-greek-orthodox-easter
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 13 Aug 2015 19:16:25 +0000 (12:16 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 13 Aug 2015 19:17:50 +0000 (12:17 -0700)
* etc/NEWS: Document this.
* lisp/calendar/holidays.el (holiday-greek-orthodox-easter):
Add optional args N and STRING, mimicking the API and code of
‘holiday-easter-etc’.  From suggestion by Foivos S. Zakkak (Bug#21256).

etc/NEWS
lisp/calendar/holidays.el

index 0a33a6ef3ee2a49ee2e130c256f66f992336760f..3ec16f54458135b97a95c899fa675d16dc2b69d6 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -551,6 +551,9 @@ which means to do nothing special with the mode line in calendars.
 The option customizes which day headers receive the
 `calendar-weekend-header' face.
 
+---
+*** New optional args N and STRING for ‘holiday-greek-orthodox-easter’.
+
 ---
 *** Many items obsolete since at least version 23.1 have been removed.
 The majority were function/variable/face aliases, too numerous to list here.
index 8085c1cf119131337c054358d7aa5931016c0e0a..6d7cea6b8c5e0f2da1163d8aca5a930d49a19a97 100644 (file)
@@ -791,8 +791,16 @@ is non-nil)."
 ;; Prior call to calendar-julian-from-absolute will autoload cal-julian.
 (declare-function calendar-julian-to-absolute "cal-julian" (date))
 
-(defun holiday-greek-orthodox-easter ()
-  "Date of Easter according to the rule of the Council of Nicaea."
+(defun holiday-greek-orthodox-easter (&optional n string)
+  "Date of Nth day after Easter (named STRING), if visible in calendar window.
+It is calculated according to the rule of the Council of Nicaea.
+Negative values of N are interpreted as days before Easter.
+STRING is used purely for display purposes.  The return value has
+the form ((MONTH DAY YEAR) STRING), where the date is that of the
+Nth day before or after Easter.
+
+For backwards compatibility, if this function is called with no
+arguments, it returns the date of Pascha (Greek Orthodox Easter)."
   (let* ((m displayed-month)
          (y displayed-year)
          (julian-year (progn
@@ -808,11 +816,10 @@ is non-nil)."
          (paschal-moon      ; day after full moon on or after March 21
           (- (calendar-julian-to-absolute (list 4 19 julian-year))
              shifted-epact))
-         (nicaean-easter           ; Sunday following the Paschal moon
-          (calendar-gregorian-from-absolute
-           (calendar-dayname-on-or-before 0 (+ paschal-moon 7)))))
-    (if (calendar-date-is-visible-p nicaean-easter)
-        (list (list nicaean-easter "Pascha (Greek Orthodox Easter)")))))
+        (abs-easter (calendar-dayname-on-or-before 0 (+ paschal-moon 7)))
+        (greg (calendar-gregorian-from-absolute (+ abs-easter (or n 0)))))
+    (if (calendar-date-is-visible-p greg)
+       (list (list greg (or string "Pascha (Greek Orthodox Easter)"))))))
 
 (provide 'holidays)