comparison lisp/calendar/calendar.el @ 36906:6098465deff0

See ChangeLog
author John Wiegley <johnw@newartisans.com>
date Tue, 20 Mar 2001 20:26:13 +0000
parents a1bf8f8663bd
children 69ed032fdcce
comparison
equal deleted inserted replaced
36905:c0d969b6d559 36906:6098465deff0
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, 24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
25 ;; Boston, MA 02111-1307, USA. 25 ;; Boston, MA 02111-1307, USA.
26 26
27 ;;; Commentary: 27 ;;; Commentary:
28 28
29 ;; This collection of functions implements a calendar window. It generates a 29 ;; This collection of functions implements a calendar window. It
30 ;; calendar for the current month, together with the previous and coming 30 ;; generates a calendar for the current month, together with the
31 ;; months, or for any other three-month period. The calendar can be scrolled 31 ;; previous and coming months, or for any other three-month period.
32 ;; forward and backward in the window to show months in the past or future; 32 ;; The calendar can be scrolled forward and backward in the window to
33 ;; the cursor can move forward and backward by days, weeks, or months, making 33 ;; show months in the past or future; the cursor can move forward and
34 ;; it possible, for instance, to jump to the date a specified number of days, 34 ;; backward by days, weeks, or months, making it possible, for
35 ;; weeks, or months from the date under the cursor. The user can display a 35 ;; instance, to jump to the date a specified number of days, weeks, or
36 ;; list of holidays and other notable days for the period shown; the notable 36 ;; months from the date under the cursor. The user can display a list
37 ;; days can be marked on the calendar, if desired. The user can also specify 37 ;; of holidays and other notable days for the period shown; the
38 ;; that dates having corresponding diary entries (in a file that the user 38 ;; notable days can be marked on the calendar, if desired. The user
39 ;; specifies) be marked; the diary entries for any date can be viewed in a 39 ;; can also specify that dates having corresponding diary entries (in
40 ;; separate window. The diary and the notable days can be viewed 40 ;; a file that the user specifies) be marked; the diary entries for
41 ;; independently of the calendar. Dates can be translated from the (usual) 41 ;; any date can be viewed in a separate window. The diary and the
42 ;; Gregorian calendar to the day of the year/days remaining in year, to the 42 ;; notable days can be viewed independently of the calendar. Dates
43 ;; ISO commercial calendar, to the Julian (old style) calendar, to the Hebrew 43 ;; can be translated from the (usual) Gregorian calendar to the day of
44 ;; calendar, to the Islamic calendar, to the French Revolutionary calendar, to 44 ;; the year/days remaining in year, to the ISO commercial calendar, to
45 ;; the Mayan calendar, to the Chinese calendar, to the Coptic calendar, to the 45 ;; the Julian (old style) calendar, to the Hebrew calendar, to the
46 ;; Ethiopic calendar, and to the astronomical (Julian) day number. When 46 ;; Islamic calendar, to the Baha'i calendar, to the French
47 ;; floating point is available, times of sunrise/sunset can be displayed, as 47 ;; Revolutionary calendar, to the Mayan calendar, to the Chinese
48 ;; can the phases of the moon. Appointment notification for diary entries is 48 ;; calendar, to the Coptic calendar, to the Ethiopic calendar, and to
49 ;; the astronomical (Julian) day number. When floating point is
50 ;; available, times of sunrise/sunset can be displayed, as can the
51 ;; phases of the moon. Appointment notification for diary entries is
49 ;; available. Calendar printing via LaTeX is available. 52 ;; available. Calendar printing via LaTeX is available.
50 53
51 ;; The following files are part of the calendar/diary code: 54 ;; The following files are part of the calendar/diary code:
52 55
53 ;; appt.el Appointment notification 56 ;; appt.el Appointment notification
54 ;; cal-china.el Chinese calendar 57 ;; cal-china.el Chinese calendar
55 ;; cal-coptic.el Coptic/Ethiopic calendars 58 ;; cal-coptic.el Coptic/Ethiopic calendars
56 ;; cal-dst.el Daylight savings time rules 59 ;; cal-dst.el Daylight savings time rules
57 ;; cal-hebrew.el Hebrew calendar 60 ;; cal-hebrew.el Hebrew calendar
58 ;; cal-islam.el Islamic calendar 61 ;; cal-islam.el Islamic calendar
62 ;; cal-bahai.el Baha'i calendar
59 ;; cal-iso.el ISO calendar 63 ;; cal-iso.el ISO calendar
60 ;; cal-julian.el Julian/astronomical calendars 64 ;; cal-julian.el Julian/astronomical calendars
61 ;; cal-mayan.el Mayan calendars 65 ;; cal-mayan.el Mayan calendars
62 ;; cal-menu.el Menu support 66 ;; cal-menu.el Menu support
63 ;; cal-move.el Movement in the calendar 67 ;; cal-move.el Movement in the calendar
304 calendar." 308 calendar."
305 :type 'boolean 309 :type 'boolean
306 :group 'holidays) 310 :group 'holidays)
307 311
308 ;;;###autoload 312 ;;;###autoload
313 (defcustom all-bahai-calendar-holidays nil
314 "*If nil, show only major holidays from the Baha'i calendar.
315 These are the days on which work and school must be suspended.
316
317 If t, show all the holidays that would appear in a complete Baha'i
318 calendar."
319 :type 'boolean
320 :group 'holidays)
321
322 ;;;###autoload
309 (defcustom calendar-load-hook nil 323 (defcustom calendar-load-hook nil
310 "*List of functions to be called after the calendar is first loaded. 324 "*List of functions to be called after the calendar is first loaded.
311 This is the place to add key bindings to `calendar-mode-map'." 325 This is the place to add key bindings to `calendar-mode-map'."
312 :type 'hook 326 :type 'hook
313 :group 'calendar-hooks) 327 :group 'calendar-hooks)
444 458
445 Diary entries can be based on Lisp sexps. For example, the diary entry 459 Diary entries can be based on Lisp sexps. For example, the diary entry
446 460
447 %%(diary-block 11 1 1990 11 10 1990) Vacation 461 %%(diary-block 11 1 1990 11 10 1990) Vacation
448 462
449 causes the diary entry \"Vacation\" to appear from November 1 through November 463 causes the diary entry \"Vacation\" to appear from November 1 through
450 10, 1990. Other functions available are `diary-float', `diary-anniversary', 464 November 10, 1990. Other functions available are `diary-float',
451 `diary-cyclic', `diary-day-of-year', `diary-iso-date', `diary-french-date', 465 `diary-anniversary', `diary-cyclic', `diary-day-of-year',
452 `diary-hebrew-date', `diary-islamic-date', `diary-mayan-date', 466 `diary-iso-date', `diary-french-date', `diary-hebrew-date',
467 `diary-islamic-date', `diary-bahai-date', `diary-mayan-date',
453 `diary-chinese-date', `diary-coptic-date', `diary-ethiopic-date', 468 `diary-chinese-date', `diary-coptic-date', `diary-ethiopic-date',
454 `diary-persian-date', `diary-yahrzeit', `diary-sunrise-sunset', 469 `diary-persian-date', `diary-yahrzeit', `diary-sunrise-sunset',
455 `diary-phases-of-moon', `diary-parasha', `diary-omer', `diary-rosh-hodesh', 470 `diary-phases-of-moon', `diary-parasha', `diary-omer',
456 and `diary-sabbath-candles'. See the documentation for the function 471 `diary-rosh-hodesh', and `diary-sabbath-candles'. See the
457 `list-sexp-diary-entries' for more details. 472 documentation for the function `list-sexp-diary-entries' for more
458 473 details.
459 Diary entries based on the Hebrew and/or the Islamic calendar are also 474
460 possible, but because these are somewhat slow, they are ignored 475 Diary entries based on the Hebrew, the Islamic and/or the Baha'i
461 unless you set the `nongregorian-diary-listing-hook' and the 476 calendar are also possible, but because these are somewhat slow, they
462 `nongregorian-diary-marking-hook' appropriately. See the documentation 477 are ignored unless you set the `nongregorian-diary-listing-hook' and
463 for these functions for details. 478 the `nongregorian-diary-marking-hook' appropriately. See the
479 documentation for these functions for details.
464 480
465 Diary files can contain directives to include the contents of other files; for 481 Diary files can contain directives to include the contents of other files; for
466 details, see the documentation for the variable `list-diary-entries-hook'." 482 details, see the documentation for the variable `list-diary-entries-hook'."
467 :type 'file 483 :type 'file
468 :group 'diary) 484 :group 'diary)
480 :group 'diary) 496 :group 'diary)
481 497
482 ;;;###autoload 498 ;;;###autoload
483 (defcustom islamic-diary-entry-symbol "I" 499 (defcustom islamic-diary-entry-symbol "I"
484 "*Symbol indicating a diary entry according to the Islamic calendar." 500 "*Symbol indicating a diary entry according to the Islamic calendar."
501 :type 'string
502 :group 'diary)
503
504 ;;;###autoload
505 (defcustom bahai-diary-entry-symbol "B"
506 "*Symbol indicating a diary entry according to the Baha'i calendar."
485 :type 'string 507 :type 'string
486 :group 'diary) 508 :group 'diary)
487 509
488 ;;;###autoload 510 ;;;###autoload
489 (defcustom diary-include-string "#include" 511 (defcustom diary-include-string "#include"
500 :group 'diary) 522 :group 'diary)
501 523
502 ;;;###autoload 524 ;;;###autoload
503 (defcustom abbreviated-calendar-year t 525 (defcustom abbreviated-calendar-year t
504 "*Interpret a two-digit year DD in a diary entry as either 19DD or 20DD. 526 "*Interpret a two-digit year DD in a diary entry as either 19DD or 20DD.
505 For the Gregorian calendar; similarly for the Hebrew and Islamic calendars. 527 For the Gregorian calendar; similarly for the Hebrew, Islamic and
506 If this variable is nil, years must be written in full." 528 Baha'i calendars. If this variable is nil, years must be written in
529 full."
507 :type 'boolean 530 :type 'boolean
508 :group 'diary) 531 :group 'diary)
509 532
510 ;;;###autoload 533 ;;;###autoload
511 (defcustom european-calendar-style nil 534 (defcustom european-calendar-style nil
733 :group 'diary) 756 :group 'diary)
734 757
735 ;;;###autoload 758 ;;;###autoload
736 (defcustom nongregorian-diary-listing-hook nil 759 (defcustom nongregorian-diary-listing-hook nil
737 "*List of functions called for listing diary file and included files. 760 "*List of functions called for listing diary file and included files.
738 As the files are processed for diary entries, these functions are used to cull 761 As the files are processed for diary entries, these functions are used
739 relevant entries. You can use either or both of `list-hebrew-diary-entries' 762 to cull relevant entries. You can use either or both of
740 and `list-islamic-diary-entries'. The documentation for these functions 763 `list-hebrew-diary-entries', `list-islamic-diary-entries' and
764 `list-bahai-diary-entries'. The documentation for these functions
741 describes the style of such diary entries." 765 describes the style of such diary entries."
742 :type 'hook 766 :type 'hook
767 :options '(list-hebrew-diary-entries
768 list-islamic-diary-entries
769 list-bahai-diary-entries)
743 :group 'diary) 770 :group 'diary)
744 771
745 ;;;###autoload 772 ;;;###autoload
746 (defcustom mark-diary-entries-hook nil 773 (defcustom mark-diary-entries-hook nil
747 "*List of functions called after marking diary entries in the calendar. 774 "*List of functions called after marking diary entries in the calendar.
760 :group 'diary) 787 :group 'diary)
761 788
762 ;;;###autoload 789 ;;;###autoload
763 (defcustom nongregorian-diary-marking-hook nil 790 (defcustom nongregorian-diary-marking-hook nil
764 "*List of functions called for marking diary file and included files. 791 "*List of functions called for marking diary file and included files.
765 As the files are processed for diary entries, these functions are used to cull 792 As the files are processed for diary entries, these functions are used
766 relevant entries. You can use either or both of `mark-hebrew-diary-entries' 793 to cull relevant entries. You can use either or both of
767 and `mark-islamic-diary-entries'. The documentation for these functions 794 `mark-hebrew-diary-entries', `mark-islamic-diary-entries' and
795 `mark-bahai-diary-entries'. The documentation for these functions
768 describes the style of such diary entries." 796 describes the style of such diary entries."
769 :type 'hook 797 :type 'hook
798 :options '(mark-hebrew-diary-entries
799 mark-islamic-diary-entries
800 mark-bahai-diary-entries)
770 :group 'diary) 801 :group 'diary)
771 802
772 ;;;###autoload 803 ;;;###autoload
773 (defcustom diary-list-include-blanks nil 804 (defcustom diary-list-include-blanks nil
774 "*If nil, do not include days with no diary entry in the list of diary entries. 805 "*If nil, do not include days with no diary entry in the list of diary entries.
1002 See the documentation for `calendar-holidays' for details." 1033 See the documentation for `calendar-holidays' for details."
1003 :type 'sexp 1034 :type 'sexp
1004 :group 'holidays) 1035 :group 'holidays)
1005 1036
1006 ;;;###autoload 1037 ;;;###autoload
1038 (put 'bahai-holidays 'risky-local-variable t)
1039 ;;;###autoload
1040 (defcustom bahai-holidays
1041 '((holiday-fixed
1042 3 21
1043 (format "Baha'i New Year (Naw-Ruz) %d" (- displayed-year (1- 1844))))
1044 (holiday-fixed 4 21 "First Day of Ridvan")
1045 (if all-bahai-calendar-holidays
1046 (holiday-fixed 4 22 "Second Day of Ridvan"))
1047 (if all-bahai-calendar-holidays
1048 (holiday-fixed 4 23 "Third Day of Ridvan"))
1049 (if all-bahai-calendar-holidays
1050 (holiday-fixed 4 24 "Fourth Day of Ridvan"))
1051 (if all-bahai-calendar-holidays
1052 (holiday-fixed 4 25 "Fifth Day of Ridvan"))
1053 (if all-bahai-calendar-holidays
1054 (holiday-fixed 4 26 "Sixth Day of Ridvan"))
1055 (if all-bahai-calendar-holidays
1056 (holiday-fixed 4 27 "Seventh Day of Ridvan"))
1057 (if all-bahai-calendar-holidays
1058 (holiday-fixed 4 28 "Eighth Day of Ridvan"))
1059 (holiday-fixed 4 29 "Ninth Day of Ridvan")
1060 (if all-bahai-calendar-holidays
1061 (holiday-fixed 4 30 "Tenth Day of Ridvan"))
1062 (if all-bahai-calendar-holidays
1063 (holiday-fixed 5 1 "Eleventh Day of Ridvan"))
1064 (holiday-fixed 5 2 "Twelfth Day of Ridvan")
1065 (holiday-fixed 5 23 "Declaration of the Bab")
1066 (holiday-fixed 5 29 "Ascension of Baha'u'llah")
1067 (holiday-fixed 7 9 "Martyrdom of the Bab")
1068 (holiday-fixed 10 20 "Birth of the Bab")
1069 (holiday-fixed 11 12 "Birth of Baha'u'llah")
1070 (if all-bahai-calendar-holidays
1071 (holiday-fixed 11 26 "Day of the Covenant"))
1072 (if all-bahai-calendar-holidays
1073 (holiday-fixed 11 28 "Ascension of `Abdu'l-Baha")))
1074 "*Baha'i holidays.
1075 See the documentation for `calendar-holidays' for details."
1076 :type 'sexp
1077 :group 'holidays)
1078
1079 ;;;###autoload
1007 (put 'solar-holidays 'risky-local-variable t) 1080 (put 'solar-holidays 'risky-local-variable t)
1008 ;;;###autoload 1081 ;;;###autoload
1009 (defcustom solar-holidays 1082 (defcustom solar-holidays
1010 '((if (fboundp 'atan) 1083 '((if (fboundp 'atan)
1011 (solar-equinoxes-solstices)) 1084 (solar-equinoxes-solstices))
1038 ;;;###autoload 1111 ;;;###autoload
1039 (put 'calendar-holidays 'risky-local-variable t) 1112 (put 'calendar-holidays 'risky-local-variable t)
1040 (defcustom calendar-holidays 1113 (defcustom calendar-holidays
1041 (append general-holidays local-holidays other-holidays 1114 (append general-holidays local-holidays other-holidays
1042 christian-holidays hebrew-holidays islamic-holidays 1115 christian-holidays hebrew-holidays islamic-holidays
1043 oriental-holidays solar-holidays) 1116 bahai-holidays oriental-holidays solar-holidays)
1044 "*List of notable days for the command \\[holidays]. 1117 "*List of notable days for the command \\[holidays].
1045 1118
1046 Additional holidays are easy to add to the list, just put them in the list 1119 Additional holidays are easy to add to the list, just put them in the
1047 `other-holidays' in your .emacs file. Similarly, by setting any of 1120 list `other-holidays' in your .emacs file. Similarly, by setting any
1048 `general-holidays', `local-holidays' `christian-holidays', `hebrew-holidays', 1121 of `general-holidays', `local-holidays' `christian-holidays',
1049 `islamic-holidays', `oriental-holidays', or `solar-holidays' to nil in your 1122 `hebrew-holidays', `islamic-holidays', `bahai-holidays',
1050 .emacs file, you can eliminate unwanted categories of holidays. The intention 1123 `oriental-holidays', or `solar-holidays' to nil in your .emacs file,
1051 is that (in the US) `local-holidays' be set in site-init.el and 1124 you can eliminate unwanted categories of holidays. The intention is
1125 that (in the US) `local-holidays' be set in site-init.el and
1052 `other-holidays' be set by the user. 1126 `other-holidays' be set by the user.
1053 1127
1054 Entries on the list are expressions that return (possibly empty) lists of 1128 Entries on the list are expressions that return (possibly empty) lists of
1055 items of the form ((month day year) string) of a holiday in the in the 1129 items of the form ((month day year) string) of a holiday in the in the
1056 three-month period centered around `displayed-month' of `displayed-year'. 1130 three-month period centered around `displayed-month' of `displayed-year'.
1062 etc.); K<0 means count back from the end of the 1136 etc.); K<0 means count back from the end of the
1063 month. An optional parameter DAY means the Kth 1137 month. An optional parameter DAY means the Kth
1064 DAYNAME after/before MONTH DAY. 1138 DAYNAME after/before MONTH DAY.
1065 (holiday-hebrew MONTH DAY STRING) a fixed date on the Hebrew calendar 1139 (holiday-hebrew MONTH DAY STRING) a fixed date on the Hebrew calendar
1066 (holiday-islamic MONTH DAY STRING) a fixed date on the Islamic calendar 1140 (holiday-islamic MONTH DAY STRING) a fixed date on the Islamic calendar
1141 (holiday-bahai MONTH DAY STRING) a fixed date on the Baha'i calendar
1067 (holiday-julian MONTH DAY STRING) a fixed date on the Julian calendar 1142 (holiday-julian MONTH DAY STRING) a fixed date on the Julian calendar
1068 (holiday-sexp SEXP STRING) SEXP is a Gregorian-date-valued expression 1143 (holiday-sexp SEXP STRING) SEXP is a Gregorian-date-valued expression
1069 in the variable `year'; if it evaluates to 1144 in the variable `year'; if it evaluates to
1070 a visible date, that's the holiday; if it 1145 a visible date, that's the holiday; if it
1071 evaluates to nil, there's no holiday. STRING 1146 evaluates to nil, there's no holiday. STRING
1089 add the Islamic feast celebrating Mohammed's birthday use 1164 add the Islamic feast celebrating Mohammed's birthday use
1090 1165
1091 (holiday-islamic 3 12 \"Mohammed's Birthday\") 1166 (holiday-islamic 3 12 \"Mohammed's Birthday\")
1092 1167
1093 since the Islamic months are numbered from 1 starting with Muharram. To 1168 since the Islamic months are numbered from 1 starting with Muharram. To
1169 add an entry for the Baha'i festival of Ridvan, use
1170
1171 (holiday-bahai 2 13 \"Festival of Ridvan\")
1172
1173 since the Baha'i months are numbered from 1 starting with Baha. To
1094 add Thomas Jefferson's birthday, April 2, 1743 (Julian), use 1174 add Thomas Jefferson's birthday, April 2, 1743 (Julian), use
1095 1175
1096 (holiday-julian 4 2 \"Jefferson's Birthday\") 1176 (holiday-julian 4 2 \"Jefferson's Birthday\")
1097 1177
1098 To include a holiday conditionally, use the sexp form or a conditional. For 1178 To include a holiday conditionally, use the sexp form or a conditional. For
1568 1648
1569 (autoload 'calendar-islamic-date-string "cal-islam" 1649 (autoload 'calendar-islamic-date-string "cal-islam"
1570 "String of Islamic date of Gregorian date." 1650 "String of Islamic date of Gregorian date."
1571 t) 1651 t)
1572 1652
1653 (autoload 'calendar-print-bahai-date "cal-bahai"
1654 "Show the Baha'i date equivalents of date."
1655 t)
1656
1657 (autoload 'calendar-bahai-date-string "cal-bahai"
1658 "String of Baha'i date of Gregorian date."
1659 t)
1660
1573 (autoload 'calendar-goto-hebrew-date "cal-hebrew" 1661 (autoload 'calendar-goto-hebrew-date "cal-hebrew"
1574 "Move cursor to Hebrew date date." 1662 "Move cursor to Hebrew date date."
1575 t) 1663 t)
1576 1664
1577 (autoload 'calendar-print-hebrew-date "cal-hebrew" 1665 (autoload 'calendar-print-hebrew-date "cal-hebrew"
1688 to the date indicated by point." 1776 to the date indicated by point."
1689 t) 1777 t)
1690 1778
1691 (autoload 'insert-yearly-islamic-diary-entry "cal-islam" 1779 (autoload 'insert-yearly-islamic-diary-entry "cal-islam"
1692 "Insert an annual diary entry for the day of the Islamic year corresponding 1780 "Insert an annual diary entry for the day of the Islamic year corresponding
1781 to the date indicated by point."
1782 t)
1783
1784 (autoload 'insert-bahai-diary-entry "cal-bahai"
1785 "Insert a diary entry for the Baha'i date corresponding to the date
1786 indicated by point."
1787 t)
1788
1789 (autoload 'insert-monthly-bahai-diary-entry "cal-bahai"
1790 "Insert a monthly diary entry for the day of the Baha'i month corresponding
1791 to the date indicated by point."
1792 t)
1793
1794 (autoload 'insert-yearly-bahai-diary-entry "cal-bahai"
1795 "Insert an annual diary entry for the day of the Baha'i year corresponding
1693 to the date indicated by point." 1796 to the date indicated by point."
1694 t) 1797 t)
1695 1798
1696 (autoload 'list-calendar-holidays "holidays" 1799 (autoload 'list-calendar-holidays "holidays"
1697 "Create a buffer containing the holidays for the current calendar window. 1800 "Create a buffer containing the holidays for the current calendar window.
1938 (define-key calendar-mode-map "gd" 'calendar-goto-date) 2041 (define-key calendar-mode-map "gd" 'calendar-goto-date)
1939 (define-key calendar-mode-map "gj" 'calendar-goto-julian-date) 2042 (define-key calendar-mode-map "gj" 'calendar-goto-julian-date)
1940 (define-key calendar-mode-map "ga" 'calendar-goto-astro-day-number) 2043 (define-key calendar-mode-map "ga" 'calendar-goto-astro-day-number)
1941 (define-key calendar-mode-map "gh" 'calendar-goto-hebrew-date) 2044 (define-key calendar-mode-map "gh" 'calendar-goto-hebrew-date)
1942 (define-key calendar-mode-map "gi" 'calendar-goto-islamic-date) 2045 (define-key calendar-mode-map "gi" 'calendar-goto-islamic-date)
2046 (define-key calendar-mode-map "gb" 'calendar-goto-bahai-date)
1943 (define-key calendar-mode-map "gC" 'calendar-goto-chinese-date) 2047 (define-key calendar-mode-map "gC" 'calendar-goto-chinese-date)
1944 (define-key calendar-mode-map "gk" 'calendar-goto-coptic-date) 2048 (define-key calendar-mode-map "gk" 'calendar-goto-coptic-date)
1945 (define-key calendar-mode-map "ge" 'calendar-goto-ethiopic-date) 2049 (define-key calendar-mode-map "ge" 'calendar-goto-ethiopic-date)
1946 (define-key calendar-mode-map "gp" 'calendar-goto-persian-date) 2050 (define-key calendar-mode-map "gp" 'calendar-goto-persian-date)
1947 (define-key calendar-mode-map "gc" 'calendar-goto-iso-date) 2051 (define-key calendar-mode-map "gc" 'calendar-goto-iso-date)
1978 (define-key calendar-mode-map "pc" 'calendar-print-iso-date) 2082 (define-key calendar-mode-map "pc" 'calendar-print-iso-date)
1979 (define-key calendar-mode-map "pj" 'calendar-print-julian-date) 2083 (define-key calendar-mode-map "pj" 'calendar-print-julian-date)
1980 (define-key calendar-mode-map "pa" 'calendar-print-astro-day-number) 2084 (define-key calendar-mode-map "pa" 'calendar-print-astro-day-number)
1981 (define-key calendar-mode-map "ph" 'calendar-print-hebrew-date) 2085 (define-key calendar-mode-map "ph" 'calendar-print-hebrew-date)
1982 (define-key calendar-mode-map "pi" 'calendar-print-islamic-date) 2086 (define-key calendar-mode-map "pi" 'calendar-print-islamic-date)
2087 (define-key calendar-mode-map "pb" 'calendar-print-bahai-date)
1983 (define-key calendar-mode-map "pf" 'calendar-print-french-date) 2088 (define-key calendar-mode-map "pf" 'calendar-print-french-date)
1984 (define-key calendar-mode-map "pm" 'calendar-print-mayan-date) 2089 (define-key calendar-mode-map "pm" 'calendar-print-mayan-date)
1985 (define-key calendar-mode-map "po" 'calendar-print-other-dates) 2090 (define-key calendar-mode-map "po" 'calendar-print-other-dates)
1986 (define-key calendar-mode-map "id" 'insert-diary-entry) 2091 (define-key calendar-mode-map "id" 'insert-diary-entry)
1987 (define-key calendar-mode-map "iw" 'insert-weekly-diary-entry) 2092 (define-key calendar-mode-map "iw" 'insert-weekly-diary-entry)
1994 (define-key calendar-mode-map "ihm" 'insert-monthly-hebrew-diary-entry) 2099 (define-key calendar-mode-map "ihm" 'insert-monthly-hebrew-diary-entry)
1995 (define-key calendar-mode-map "ihy" 'insert-yearly-hebrew-diary-entry) 2100 (define-key calendar-mode-map "ihy" 'insert-yearly-hebrew-diary-entry)
1996 (define-key calendar-mode-map "iid" 'insert-islamic-diary-entry) 2101 (define-key calendar-mode-map "iid" 'insert-islamic-diary-entry)
1997 (define-key calendar-mode-map "iim" 'insert-monthly-islamic-diary-entry) 2102 (define-key calendar-mode-map "iim" 'insert-monthly-islamic-diary-entry)
1998 (define-key calendar-mode-map "iiy" 'insert-yearly-islamic-diary-entry) 2103 (define-key calendar-mode-map "iiy" 'insert-yearly-islamic-diary-entry)
2104 (define-key calendar-mode-map "iBd" 'insert-bahai-diary-entry)
2105 (define-key calendar-mode-map "iBm" 'insert-monthly-bahai-diary-entry)
2106 (define-key calendar-mode-map "iBy" 'insert-yearly-bahai-diary-entry)
1999 (define-key calendar-mode-map "?" 'calendar-goto-info-node) 2107 (define-key calendar-mode-map "?" 'calendar-goto-info-node)
2000 (define-key calendar-mode-map "tm" 'cal-tex-cursor-month) 2108 (define-key calendar-mode-map "tm" 'cal-tex-cursor-month)
2001 (define-key calendar-mode-map "tM" 'cal-tex-cursor-month-landscape) 2109 (define-key calendar-mode-map "tM" 'cal-tex-cursor-month-landscape)
2002 (define-key calendar-mode-map "td" 'cal-tex-cursor-day) 2110 (define-key calendar-mode-map "td" 'cal-tex-cursor-day)
2003 (define-key calendar-mode-map "tw1" 'cal-tex-cursor-week) 2111 (define-key calendar-mode-map "tw1" 'cal-tex-cursor-week)
2612 (format "Persian date: %s" 2720 (format "Persian date: %s"
2613 (calendar-persian-date-string date)) 2721 (calendar-persian-date-string date))
2614 (let ((i (calendar-islamic-date-string date))) 2722 (let ((i (calendar-islamic-date-string date)))
2615 (if (not (string-equal i "")) 2723 (if (not (string-equal i ""))
2616 (format "Islamic date (before sunset): %s" i))) 2724 (format "Islamic date (before sunset): %s" i)))
2725 (let ((b (calendar-bahai-date-string date)))
2726 (if (not (string-equal b ""))
2727 (format "Baha'i date (before sunset): %s" b)))
2617 (format "Chinese date: %s" 2728 (format "Chinese date: %s"
2618 (calendar-chinese-date-string date)) 2729 (calendar-chinese-date-string date))
2619 (let ((c (calendar-coptic-date-string date))) 2730 (let ((c (calendar-coptic-date-string date)))
2620 (if (not (string-equal c "")) 2731 (if (not (string-equal c ""))
2621 (format "Coptic date: %s" c))) 2732 (format "Coptic date: %s" c)))