aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2010-10-08 19:25:38 -0700
committerGlenn Morris2010-10-08 19:25:38 -0700
commit85d50db7e43f64e9b88ef6c9580e425443bf7251 (patch)
tree5a700a11e315fb1ca1c0d08cdb24a12779431dd7
parent870b199e029cbb4a8c707b35eff70fb0665c919a (diff)
downloademacs-85d50db7e43f64e9b88ef6c9580e425443bf7251.tar.gz
emacs-85d50db7e43f64e9b88ef6c9580e425443bf7251.zip
Small simplifications for some cal-hebrew calculations.
* lisp/calendar/cal-hebrew.el (holiday-hebrew-rosh-hashanah) (holiday-hebrew-passover, holiday-hebrew-tisha-b-av) (holiday-hebrew-misc): Small simplifications.
-rw-r--r--lisp/ChangeLog4
-rw-r--r--lisp/calendar/cal-hebrew.el168
2 files changed, 87 insertions, 85 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 56de335de6f..63bf804c3c4 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,9 @@
12010-10-09 Glenn Morris <rgm@gnu.org> 12010-10-09 Glenn Morris <rgm@gnu.org>
2 2
3 * calendar/cal-hebrew.el (holiday-hebrew-rosh-hashanah)
4 (holiday-hebrew-passover, holiday-hebrew-tisha-b-av)
5 (holiday-hebrew-misc): Small simplifications.
6
3 * emacs-lisp/authors.el (authors-valid-file-names): Add b2m.c. 7 * emacs-lisp/authors.el (authors-valid-file-names): Add b2m.c.
4 8
5 * net/browse-url.el: Don't require thingatpt, term, dired, 9 * net/browse-url.el: Don't require thingatpt, term, dired,
diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el
index 98c1a29df7c..366fb2396fc 100644
--- a/lisp/calendar/cal-hebrew.el
+++ b/lisp/calendar/cal-hebrew.el
@@ -376,7 +376,7 @@ or ALL is non-nil."
376 (list (calendar-gregorian-from-absolute (1+ abs-r-h)) 376 (list (calendar-gregorian-from-absolute (1+ abs-r-h))
377 "Rosh HaShanah (second day)") 377 "Rosh HaShanah (second day)")
378 (list (calendar-gregorian-from-absolute 378 (list (calendar-gregorian-from-absolute
379 (if (= (% abs-r-h 7) 4) (+ abs-r-h 3) (+ abs-r-h 2))) 379 (+ abs-r-h (if (= (% abs-r-h 7) 4) 3 2)))
380 "Tzom Gedaliah") 380 "Tzom Gedaliah")
381 (list (calendar-gregorian-from-absolute 381 (list (calendar-gregorian-from-absolute
382 (calendar-dayname-on-or-before 6 (+ 7 abs-r-h))) 382 (calendar-dayname-on-or-before 6 (+ 7 abs-r-h)))
@@ -454,70 +454,71 @@ or ALL is non-nil."
454 (list (calendar-gregorian-from-absolute (+ abs-p 50)) 454 (list (calendar-gregorian-from-absolute (+ abs-p 50))
455 "Shavuot")) 455 "Shavuot"))
456 (when (or all calendar-hebrew-all-holidays-flag) 456 (when (or all calendar-hebrew-all-holidays-flag)
457 (list 457 (let ((wday (% abs-p 7)))
458 (list (calendar-gregorian-from-absolute 458 (list
459 (calendar-dayname-on-or-before 6 (- abs-p 43))) 459 (list (calendar-gregorian-from-absolute
460 "Shabbat Shekalim") 460 (calendar-dayname-on-or-before 6 (- abs-p 43)))
461 (list (calendar-gregorian-from-absolute 461 "Shabbat Shekalim")
462 (calendar-dayname-on-or-before 6 (- abs-p 30))) 462 (list (calendar-gregorian-from-absolute
463 "Shabbat Zachor") 463 (calendar-dayname-on-or-before 6 (- abs-p 30)))
464 (list (calendar-gregorian-from-absolute 464 "Shabbat Zachor")
465 (if (= (% abs-p 7) 2) (- abs-p 33) (- abs-p 31))) 465 (list (calendar-gregorian-from-absolute
466 "Fast of Esther") 466 (- abs-p (if (= wday 2) 33 31)))
467 (list (calendar-gregorian-from-absolute (- abs-p 31)) 467 "Fast of Esther")
468 "Erev Purim") 468 (list (calendar-gregorian-from-absolute (- abs-p 31))
469 (list (calendar-gregorian-from-absolute (- abs-p 30)) 469 "Erev Purim")
470 "Purim") 470 (list (calendar-gregorian-from-absolute (- abs-p 30))
471 (list (calendar-gregorian-from-absolute 471 "Purim")
472 (if (zerop (% abs-p 7)) (- abs-p 28) (- abs-p 29))) 472 (list (calendar-gregorian-from-absolute
473 "Shushan Purim") 473 (- abs-p (if (zerop wday) 28 29)))
474 (list (calendar-gregorian-from-absolute 474 "Shushan Purim")
475 (- (calendar-dayname-on-or-before 6 (- abs-p 14)) 7)) 475 (list (calendar-gregorian-from-absolute
476 "Shabbat Parah") 476 (- (calendar-dayname-on-or-before 6 (- abs-p 14)) 7))
477 (list (calendar-gregorian-from-absolute 477 "Shabbat Parah")
478 (calendar-dayname-on-or-before 6 (- abs-p 14))) 478 (list (calendar-gregorian-from-absolute
479 "Shabbat HaHodesh") 479 (calendar-dayname-on-or-before 6 (- abs-p 14)))
480 (list (calendar-gregorian-from-absolute 480 "Shabbat HaHodesh")
481 (calendar-dayname-on-or-before 6 (1- abs-p))) 481 (list (calendar-gregorian-from-absolute
482 "Shabbat HaGadol") 482 (calendar-dayname-on-or-before 6 (1- abs-p)))
483 (list (calendar-gregorian-from-absolute (1- abs-p)) 483 "Shabbat HaGadol")
484 "Erev Passover") 484 (list (calendar-gregorian-from-absolute (1- abs-p))
485 (list (calendar-gregorian-from-absolute (1+ abs-p)) 485 "Erev Passover")
486 "Passover (second day)") 486 (list (calendar-gregorian-from-absolute (1+ abs-p))
487 (list (calendar-gregorian-from-absolute (+ abs-p 2)) 487 "Passover (second day)")
488 "Hol Hamoed Passover (first day)") 488 (list (calendar-gregorian-from-absolute (+ abs-p 2))
489 (list (calendar-gregorian-from-absolute (+ abs-p 3)) 489 "Hol Hamoed Passover (first day)")
490 "Hol Hamoed Passover (second day)") 490 (list (calendar-gregorian-from-absolute (+ abs-p 3))
491 (list (calendar-gregorian-from-absolute (+ abs-p 4)) 491 "Hol Hamoed Passover (second day)")
492 "Hol Hamoed Passover (third day)") 492 (list (calendar-gregorian-from-absolute (+ abs-p 4))
493 (list (calendar-gregorian-from-absolute (+ abs-p 5)) 493 "Hol Hamoed Passover (third day)")
494 "Hol Hamoed Passover (fourth day)") 494 (list (calendar-gregorian-from-absolute (+ abs-p 5))
495 (list (calendar-gregorian-from-absolute (+ abs-p 6)) 495 "Hol Hamoed Passover (fourth day)")
496 "Passover (seventh day)") 496 (list (calendar-gregorian-from-absolute (+ abs-p 6))
497 (list (calendar-gregorian-from-absolute (+ abs-p 7)) 497 "Passover (seventh day)")
498 "Passover (eighth day)") 498 (list (calendar-gregorian-from-absolute (+ abs-p 7))
499 (list (calendar-gregorian-from-absolute 499 "Passover (eighth day)")
500 (if (zerop (% (+ abs-p 12) 7)) 500 (list (calendar-gregorian-from-absolute
501 (+ abs-p 13) 501 (+ abs-p (if (zerop (% (+ abs-p 12) 7))
502 (+ abs-p 12))) 502 13
503 "Yom HaShoah") 503 12)))
504 (list (calendar-gregorian-from-absolute 504 "Yom HaShoah")
505 (if (zerop (% abs-p 7)) 505 (list (calendar-gregorian-from-absolute
506 (+ abs-p 18) 506 (+ abs-p
507 (if (= (% abs-p 7) 6) 507 ;; If falls on Sat or Fri, moves to preceding Thurs.
508 (+ abs-p 19) 508 ;; If falls on Mon, moves to Tues (since 2004).
509 (if (= (% abs-p 7) 2) 509 (cond ((zerop wday) 18) ; Sat
510 (+ abs-p 21) 510 ((= wday 6) 19) ; Fri
511 (+ abs-p 20))))) 511 ((= wday 2) 21) ; Mon
512 "Yom HaAtzma'ut") 512 (t 20))))
513 (list (calendar-gregorian-from-absolute (+ abs-p 33)) 513 "Yom HaAtzma'ut")
514 "Lag BaOmer") 514 (list (calendar-gregorian-from-absolute (+ abs-p 33))
515 (list (calendar-gregorian-from-absolute (+ abs-p 43)) 515 "Lag BaOmer")
516 "Yom Yerushalaim") 516 (list (calendar-gregorian-from-absolute (+ abs-p 43))
517 (list (calendar-gregorian-from-absolute (+ abs-p 49)) 517 "Yom Yerushalaim")
518 "Erev Shavuot") 518 (list (calendar-gregorian-from-absolute (+ abs-p 49))
519 (list (calendar-gregorian-from-absolute (+ abs-p 51)) 519 "Erev Shavuot")
520 "Shavuot (second day)")))))))) 520 (list (calendar-gregorian-from-absolute (+ abs-p 51))
521 "Shavuot (second day)")))))))))
521 522
522;;;###holiday-autoload 523;;;###holiday-autoload
523(define-obsolete-function-alias 'holiday-passover-etc 524(define-obsolete-function-alias 'holiday-passover-etc
@@ -527,18 +528,19 @@ or ALL is non-nil."
527(defun holiday-hebrew-tisha-b-av () 528(defun holiday-hebrew-tisha-b-av ()
528 "List of dates around Tisha B'Av, as visible in calendar window." 529 "List of dates around Tisha B'Av, as visible in calendar window."
529 (when (memq displayed-month '(5 6 7 8 9)) 530 (when (memq displayed-month '(5 6 7 8 9))
530 (let ((abs-t-a (calendar-hebrew-to-absolute 531 (let* ((abs-t-a (calendar-hebrew-to-absolute
531 (list 5 9 (+ displayed-year 3760))))) 532 (list 5 9 (+ displayed-year 3760))))
533 (wday (% abs-t-a 7)))
532 (holiday-filter-visible-calendar 534 (holiday-filter-visible-calendar
533 (list 535 (list
534 (list (calendar-gregorian-from-absolute 536 (list (calendar-gregorian-from-absolute
535 (if (= (% abs-t-a 7) 6) (- abs-t-a 20) (- abs-t-a 21))) 537 (- abs-t-a (if (= wday 6) 20 21)))
536 "Tzom Tammuz") 538 "Tzom Tammuz")
537 (list (calendar-gregorian-from-absolute 539 (list (calendar-gregorian-from-absolute
538 (calendar-dayname-on-or-before 6 abs-t-a)) 540 (calendar-dayname-on-or-before 6 abs-t-a))
539 "Shabbat Hazon") 541 "Shabbat Hazon")
540 (list (calendar-gregorian-from-absolute 542 (list (calendar-gregorian-from-absolute
541 (if (= (% abs-t-a 7) 6) (1+ abs-t-a) abs-t-a)) 543 (if (= wday 6) (1+ abs-t-a) abs-t-a))
542 "Tisha B'Av") 544 "Tisha B'Av")
543 (list (calendar-gregorian-from-absolute 545 (list (calendar-gregorian-from-absolute
544 (calendar-dayname-on-or-before 6 (+ abs-t-a 7))) 546 (calendar-dayname-on-or-before 6 (+ abs-t-a 7)))
@@ -557,7 +559,7 @@ Includes: Tal Umatar, Tzom Teveth, Tu B'Shevat, Shabbat Shirah, and
557Kiddush HaHamah." 559Kiddush HaHamah."
558 (let ((m displayed-month) 560 (let ((m displayed-month)
559 (y displayed-year) 561 (y displayed-year)
560 year h-year s-s) 562 year h-year)
561 (append 563 (append
562 (holiday-julian 564 (holiday-julian
563 11 565 11
@@ -591,20 +593,17 @@ Kiddush HaHamah."
591 (calendar-extract-year 593 (calendar-extract-year
592 (calendar-hebrew-from-absolute 594 (calendar-hebrew-from-absolute
593 (calendar-absolute-from-gregorian 595 (calendar-absolute-from-gregorian
594 (list m (calendar-last-day-of-month m y) y))))) 596 (list m (calendar-last-day-of-month m y) y))))))
595 s-s 597 (calendar-extract-day
596 (calendar-hebrew-from-absolute 598 (calendar-hebrew-from-absolute
597 (if (= 6 599 (calendar-dayname-on-or-before
598 (% (calendar-hebrew-to-absolute 600 6 (calendar-hebrew-to-absolute
599 (list 7 1 h-year)) 601 (list 11
600 7)) 602 (if (= 6
601 (calendar-dayname-on-or-before 603 (% (calendar-hebrew-to-absolute
602 6 (calendar-hebrew-to-absolute 604 (list 7 1 h-year))
603 (list 11 17 h-year))) 605 7))
604 (calendar-dayname-on-or-before 606 17 16) h-year))))))
605 6 (calendar-hebrew-to-absolute
606 (list 11 16 h-year))))))
607 (calendar-extract-day s-s))
608 "Shabbat Shirah") 607 "Shabbat Shirah")
609 (and (progn 608 (and (progn
610 (setq m displayed-month 609 (setq m displayed-month
@@ -1162,5 +1161,4 @@ use when highlighting the day in the calendar."
1162 1161
1163(provide 'cal-hebrew) 1162(provide 'cal-hebrew)
1164 1163
1165;; arch-tag: aaab6718-7712-42ac-a32d-28fe1f944f3c
1166;;; cal-hebrew.el ends here 1164;;; cal-hebrew.el ends here