diff --git a/lisp/calendar/lunar.el b/lisp/calendar/lunar.el index 1f827ca34b0..ebf9abc9d60 100644 --- a/lisp/calendar/lunar.el +++ b/lisp/calendar/lunar.el @@ -94,7 +94,7 @@ lunar-phase (* -0.0016528 time time) (* -0.00000239 time time time)) 360.0)) - (eclipse (eclipse-check moon-lat phase)) + (eclipse (lunar-check-for-eclipse moon-lat phase)) (adjustment (if (memq phase '(0 2)) (+ (* (- 0.1734 (* 0.000393 time)) @@ -154,18 +154,18 @@ lunar-phase ;; from "Astronomy with your Personal Computer", Subroutine Eclipse ;; Line 7000 Peter Duffett-Smith Cambridge University Press 1990 -(defun eclipse-check (moon-lat phase) - (let* ((node-dist (mod moon-lat 180)) - ;; Absolute angular distance from the ascending or descending - ;; node, whichever is nearer. - (node-dist (min node-dist (- 180 node-dist))) - (phase-name (cond ((= phase 0) "Solar") - ((= phase 2) "Lunar") - (t "")))) +(defun lunar-check-for-eclipse (moon-lat phase) + (let ((type (cond ((= phase 0) "Solar") + ((= phase 2) "Lunar") + (t nil))) + ;; Absolute angular distance from the ascending or descending + ;; node, whichever is nearer. + (node-dist (funcall (lambda (x) (min x (- 180 x))) + (mod moon-lat 180)))) (cond - ((string= phase-name "") "") - ((< node-dist 13.9) (concat "** " phase-name " Eclipse **")) - ((< node-dist 21.2) (concat "** " phase-name " Eclipse possible **")) + ((not type) "") + ((< node-dist 13.9) (concat "** " type " Eclipse **")) + ((< node-dist 21.2) (concat "** " type " Eclipse possible **")) (t "")))) (defconst lunar-cycles-per-year 12.3685 ; 365.25/29.530588853