Function: math-setup-add-holidays
math-setup-add-holidays is an autoloaded and byte-compiled function
defined in calc-forms.el.gz.
Signature
(math-setup-add-holidays DAYS)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-forms.el.gz
(defun math-setup-add-holidays (days) ; uses "math-sh-year"
(cond ((eq (car-safe days) 'vec)
(while (setq days (cdr days))
(math-setup-add-holidays (car days))))
((eq (car-safe days) 'intv)
(let ((day (math-ceiling (nth 2 days))))
(or (eq (calcFunc-in day days) 1)
(setq day (math-add day 1)))
(while (eq (calcFunc-in day days) 1)
(math-setup-add-holidays day)
(setq day (math-add day 1)))))
((eq (car-safe days) 'date)
(math-setup-add-holidays (nth 1 days)))
((eq days 0))
((integerp days)
(let ((b (math-to-business-day days math-sh-year)))
(or (cdr b) ; don't register holidays twice!
(let ((prev (car math-holidays-cache))
(iprev (nth 1 math-holidays-cache)))
(while (and (cdr prev) (< (nth 1 prev) days))
(setq prev (cdr prev) iprev (cdr iprev)))
(setcdr prev (cons days (cdr prev)))
(setcdr iprev (cons (car b) (cdr iprev)))
(while (setq iprev (cdr iprev))
(setcar iprev (1- (car iprev))))))))
((Math-realp days)
(math-reject-arg (list 'date days) "*Invalid holiday value"))
(t
(math-reject-arg days "*Holiday formula failed to evaluate"))))