Commit 811a8484 authored by John Wiegley's avatar John Wiegley
Browse files

2004-05-08 John Wiegley <johnw@newartisans.com>

	* calendar/cal-bahai.el: New file, which adds support for the
	Baha'i calendar to Emacs.  This calendar is based on a solar year
	of 19 months of 19 days, with 4 intercalary days.  Each year
	begins on March 21, with the calendar starting in 1844.

	* calendar/cal-menu.el, calendar/calendar.el,
	calendar/diary-lib.el, calendar/holidays.el: Added support for
	using cal-bahai.el.
parent 4403b1e1
This diff is collapsed.
...@@ -66,6 +66,8 @@ ...@@ -66,6 +66,8 @@
'("Insert Hebrew" . calendar-mouse-insert-hebrew-diary-entry)) '("Insert Hebrew" . calendar-mouse-insert-hebrew-diary-entry))
(define-key calendar-mode-map [menu-bar diary isl] (define-key calendar-mode-map [menu-bar diary isl]
'("Insert Islamic" . calendar-mouse-insert-islamic-diary-entry)) '("Insert Islamic" . calendar-mouse-insert-islamic-diary-entry))
(define-key calendar-mode-map [menu-bar diary baha]
'("Insert Baha'i" . calendar-mouse-insert-bahai-diary-entry))
(define-key calendar-mode-map [menu-bar diary cyc] (define-key calendar-mode-map [menu-bar diary cyc]
'("Insert Cyclic" . insert-cyclic-diary-entry)) '("Insert Cyclic" . insert-cyclic-diary-entry))
(define-key calendar-mode-map [menu-bar diary blk] (define-key calendar-mode-map [menu-bar diary blk]
...@@ -109,6 +111,8 @@ ...@@ -109,6 +111,8 @@
'("Julian Date" . calendar-goto-julian-date)) '("Julian Date" . calendar-goto-julian-date))
(define-key calendar-mode-map [menu-bar goto islamic] (define-key calendar-mode-map [menu-bar goto islamic]
'("Islamic Date" . calendar-goto-islamic-date)) '("Islamic Date" . calendar-goto-islamic-date))
(define-key calendar-mode-map [menu-bar goto persian]
'("Baha'i Date" . calendar-goto-bahai-date))
(define-key calendar-mode-map [menu-bar goto persian] (define-key calendar-mode-map [menu-bar goto persian]
'("Persian Date" . calendar-goto-persian-date)) '("Persian Date" . calendar-goto-persian-date))
(define-key calendar-mode-map [menu-bar goto hebrew] (define-key calendar-mode-map [menu-bar goto hebrew]
...@@ -288,6 +292,19 @@ ERROR is t, otherwise just returns nil." ...@@ -288,6 +292,19 @@ ERROR is t, otherwise just returns nil."
'("Yearly" . insert-yearly-islamic-diary-entry)))))) '("Yearly" . insert-yearly-islamic-diary-entry))))))
(and islamic-selection (call-interactively islamic-selection)))) (and islamic-selection (call-interactively islamic-selection))))
(defun calendar-mouse-insert-bahai-diary-entry (event)
"Pop up menu to insert an Baha'i-date diary entry."
(interactive "e")
(let ((bahai-selection
(x-popup-menu
event
(list "Baha'i insert menu"
(list (calendar-bahai-date-string (calendar-cursor-to-date))
'("One time" . insert-bahai-diary-entry)
'("Monthly" . insert-monthly-bahai-diary-entry)
'("Yearly" . insert-yearly-bahai-diary-entry))))))
(and bahai-selection (call-interactively bahai-selection))))
(defun calendar-mouse-sunrise/sunset () (defun calendar-mouse-sunrise/sunset ()
"Show sunrise/sunset times for mouse-selected date." "Show sunrise/sunset times for mouse-selected date."
(interactive) (interactive)
...@@ -496,7 +513,9 @@ The output is in landscape format, one month to a page." ...@@ -496,7 +513,9 @@ The output is in landscape format, one month to a page."
(list (format "Hebrew date (before sunset): %s" (list (format "Hebrew date (before sunset): %s"
(calendar-hebrew-date-string date))) (calendar-hebrew-date-string date)))
(list (format "Persian date: %s" (list (format "Persian date: %s"
(calendar-persian-date-string date)))) (calendar-persian-date-string date)))
(list (format "Baha'i date (before sunset): %s"
(calendar-bahai-date-string date))))
(let ((i (calendar-islamic-date-string date))) (let ((i (calendar-islamic-date-string date)))
(if (not (string-equal i "")) (if (not (string-equal i ""))
(list (list (format "Islamic date (before sunset): %s" i))))) (list (list (format "Islamic date (before sunset): %s" i)))))
......
...@@ -26,26 +26,29 @@ ...@@ -26,26 +26,29 @@
;;; Commentary: ;;; Commentary:
;; This collection of functions implements a calendar window. It generates a ;; This collection of functions implements a calendar window. It
;; calendar for the current month, together with the previous and coming ;; generates a calendar for the current month, together with the
;; months, or for any other three-month period. The calendar can be scrolled ;; previous and coming months, or for any other three-month period.
;; forward and backward in the window to show months in the past or future; ;; The calendar can be scrolled forward and backward in the window to
;; the cursor can move forward and backward by days, weeks, or months, making ;; show months in the past or future; the cursor can move forward and
;; it possible, for instance, to jump to the date a specified number of days, ;; backward by days, weeks, or months, making it possible, for
;; weeks, or months from the date under the cursor. The user can display a ;; instance, to jump to the date a specified number of days, weeks, or
;; list of holidays and other notable days for the period shown; the notable ;; months from the date under the cursor. The user can display a list
;; days can be marked on the calendar, if desired. The user can also specify ;; of holidays and other notable days for the period shown; the
;; that dates having corresponding diary entries (in a file that the user ;; notable days can be marked on the calendar, if desired. The user
;; specifies) be marked; the diary entries for any date can be viewed in a ;; can also specify that dates having corresponding diary entries (in
;; separate window. The diary and the notable days can be viewed ;; a file that the user specifies) be marked; the diary entries for
;; independently of the calendar. Dates can be translated from the (usual) ;; any date can be viewed in a separate window. The diary and the
;; Gregorian calendar to the day of the year/days remaining in year, to the ;; notable days can be viewed independently of the calendar. Dates
;; ISO commercial calendar, to the Julian (old style) calendar, to the Hebrew ;; can be translated from the (usual) Gregorian calendar to the day of
;; calendar, to the Islamic calendar, to the French Revolutionary calendar, to ;; the year/days remaining in year, to the ISO commercial calendar, to
;; the Mayan calendar, to the Chinese calendar, to the Coptic calendar, to the ;; the Julian (old style) calendar, to the Hebrew calendar, to the
;; Ethiopic calendar, and to the astronomical (Julian) day number. When ;; Islamic calendar, to the Baha'i calendar, to the French
;; floating point is available, times of sunrise/sunset can be displayed, as ;; Revolutionary calendar, to the Mayan calendar, to the Chinese
;; can the phases of the moon. Appointment notification for diary entries is ;; calendar, to the Coptic calendar, to the Ethiopic calendar, and to
;; the astronomical (Julian) day number. When floating point is
;; available, times of sunrise/sunset can be displayed, as can the
;; phases of the moon. Appointment notification for diary entries is
;; available. Calendar printing via LaTeX is available. ;; available. Calendar printing via LaTeX is available.
;; The following files are part of the calendar/diary code: ;; The following files are part of the calendar/diary code:
...@@ -56,6 +59,7 @@ ...@@ -56,6 +59,7 @@
;; cal-dst.el Daylight savings time rules ;; cal-dst.el Daylight savings time rules
;; cal-hebrew.el Hebrew calendar ;; cal-hebrew.el Hebrew calendar
;; cal-islam.el Islamic calendar ;; cal-islam.el Islamic calendar
;; cal-bahai.el Baha'i calendar
;; cal-iso.el ISO calendar ;; cal-iso.el ISO calendar
;; cal-julian.el Julian/astronomical calendars ;; cal-julian.el Julian/astronomical calendars
;; cal-mayan.el Mayan calendars ;; cal-mayan.el Mayan calendars
...@@ -316,6 +320,16 @@ calendar." ...@@ -316,6 +320,16 @@ calendar."
:type 'function :type 'function
:group 'diary) :group 'diary)
;;;###autoload
(defcustom all-bahai-calendar-holidays nil
"*If nil, show only major holidays from the Baha'i calendar.
These are the days on which work and school must be suspended.
If t, show all the holidays that would appear in a complete Baha'i
calendar."
:type 'boolean
:group 'holidays)
;;;###autoload ;;;###autoload
(defcustom calendar-load-hook nil (defcustom calendar-load-hook nil
"*List of functions to be called after the calendar is first loaded. "*List of functions to be called after the calendar is first loaded.
...@@ -463,21 +477,23 @@ Diary entries can be based on Lisp sexps. For example, the diary entry ...@@ -463,21 +477,23 @@ Diary entries can be based on Lisp sexps. For example, the diary entry
%%(diary-block 11 1 1990 11 10 1990) Vacation %%(diary-block 11 1 1990 11 10 1990) Vacation
causes the diary entry \"Vacation\" to appear from November 1 through November causes the diary entry \"Vacation\" to appear from November 1 through
10, 1990. Other functions available are `diary-float', `diary-anniversary', November 10, 1990. Other functions available are `diary-float',
`diary-cyclic', `diary-day-of-year', `diary-iso-date', `diary-french-date', `diary-anniversary', `diary-cyclic', `diary-day-of-year',
`diary-hebrew-date', `diary-islamic-date', `diary-mayan-date', `diary-iso-date', `diary-french-date', `diary-hebrew-date',
`diary-islamic-date', `diary-bahai-date', `diary-mayan-date',
`diary-chinese-date', `diary-coptic-date', `diary-ethiopic-date', `diary-chinese-date', `diary-coptic-date', `diary-ethiopic-date',
`diary-persian-date', `diary-yahrzeit', `diary-sunrise-sunset', `diary-persian-date', `diary-yahrzeit', `diary-sunrise-sunset',
`diary-phases-of-moon', `diary-parasha', `diary-omer', `diary-rosh-hodesh', `diary-phases-of-moon', `diary-parasha', `diary-omer',
and `diary-sabbath-candles'. See the documentation for the function `diary-rosh-hodesh', and `diary-sabbath-candles'. See the
`list-sexp-diary-entries' for more details. documentation for the function `list-sexp-diary-entries' for more
details.
Diary entries based on the Hebrew and/or the Islamic calendar are also Diary entries based on the Hebrew, the Islamic and/or the Baha'i
possible, but because these are somewhat slow, they are ignored calendar are also possible, but because these are somewhat slow, they
unless you set the `nongregorian-diary-listing-hook' and the are ignored unless you set the `nongregorian-diary-listing-hook' and
`nongregorian-diary-marking-hook' appropriately. See the documentation the `nongregorian-diary-marking-hook' appropriately. See the
for these functions for details. documentation for these functions for details.
Diary files can contain directives to include the contents of other files; for Diary files can contain directives to include the contents of other files; for
details, see the documentation for the variable `list-diary-entries-hook'." details, see the documentation for the variable `list-diary-entries-hook'."
...@@ -502,6 +518,12 @@ details, see the documentation for the variable `list-diary-entries-hook'." ...@@ -502,6 +518,12 @@ details, see the documentation for the variable `list-diary-entries-hook'."
:type 'string :type 'string
:group 'diary) :group 'diary)
;;;###autoload
(defcustom bahai-diary-entry-symbol "B"
"*Symbol indicating a diary entry according to the Baha'i calendar."
:type 'string
:group 'diary)
;;;###autoload ;;;###autoload
(defcustom diary-include-string "#include" (defcustom diary-include-string "#include"
"*The string indicating inclusion of another file of diary entries. "*The string indicating inclusion of another file of diary entries.
...@@ -554,8 +576,9 @@ See the documentation for the function `list-sexp-diary-entries'." ...@@ -554,8 +576,9 @@ See the documentation for the function `list-sexp-diary-entries'."
;;;###autoload ;;;###autoload
(defcustom abbreviated-calendar-year t (defcustom abbreviated-calendar-year t
"*Interpret a two-digit year DD in a diary entry as either 19DD or 20DD. "*Interpret a two-digit year DD in a diary entry as either 19DD or 20DD.
For the Gregorian calendar; similarly for the Hebrew and Islamic calendars. For the Gregorian calendar; similarly for the Hebrew, Islamic and
If this variable is nil, years must be written in full." Baha'i calendars. If this variable is nil, years must be written in
full."
:type 'boolean :type 'boolean
:group 'diary) :group 'diary)
...@@ -796,12 +819,15 @@ diary buffer, set the variable `diary-list-include-blanks' to t." ...@@ -796,12 +819,15 @@ diary buffer, set the variable `diary-list-include-blanks' to t."
;;;###autoload ;;;###autoload
(defcustom nongregorian-diary-listing-hook nil (defcustom nongregorian-diary-listing-hook nil
"*List of functions called for listing diary file and included files. "*List of functions called for listing diary file and included files.
As the files are processed for diary entries, these functions are used to cull As the files are processed for diary entries, these functions are used
relevant entries. You can use either or both of `list-hebrew-diary-entries' to cull relevant entries. You can use either or both of
and `list-islamic-diary-entries'. The documentation for these functions `list-hebrew-diary-entries', `list-islamic-diary-entries' and
`list-bahai-diary-entries'. The documentation for these functions
describes the style of such diary entries." describes the style of such diary entries."
:type 'hook :type 'hook
:options '(list-hebrew-diary-entries list-islamic-diary-entries) :options '(list-hebrew-diary-entries
list-islamic-diary-entries
list-bahai-diary-entries)
:group 'diary) :group 'diary)
;;;###autoload ;;;###autoload
...@@ -825,12 +851,15 @@ function `include-other-diary-files' as part of `list-diary-entries-hook'." ...@@ -825,12 +851,15 @@ function `include-other-diary-files' as part of `list-diary-entries-hook'."
;;;###autoload ;;;###autoload
(defcustom nongregorian-diary-marking-hook nil (defcustom nongregorian-diary-marking-hook nil
"*List of functions called for marking diary file and included files. "*List of functions called for marking diary file and included files.
As the files are processed for diary entries, these functions are used to cull As the files are processed for diary entries, these functions are used
relevant entries. You can use either or both of `mark-hebrew-diary-entries' to cull relevant entries. You can use either or both of
and `mark-islamic-diary-entries'. The documentation for these functions `mark-hebrew-diary-entries', `mark-islamic-diary-entries' and
`mark-bahai-diary-entries'. The documentation for these functions
describes the style of such diary entries." describes the style of such diary entries."
:type 'hook :type 'hook
:options '(mark-hebrew-diary-entries mark-islamic-diary-entries) :options '(mark-hebrew-diary-entries
mark-islamic-diary-entries
mark-bahai-diary-entries)
:group 'diary) :group 'diary)
;;;###autoload ;;;###autoload
...@@ -1067,6 +1096,48 @@ See the documentation for `calendar-holidays' for details." ...@@ -1067,6 +1096,48 @@ See the documentation for `calendar-holidays' for details."
:type 'sexp :type 'sexp
:group 'holidays) :group 'holidays)
;;;###autoload
(put 'bahai-holidays 'risky-local-variable t)
;;;###autoload
(defcustom bahai-holidays
'((holiday-fixed
3 21
(format "Baha'i New Year (Naw-Ruz) %d" (- displayed-year (1- 1844))))
(holiday-fixed 4 21 "First Day of Ridvan")
(if all-bahai-calendar-holidays
(holiday-fixed 4 22 "Second Day of Ridvan"))
(if all-bahai-calendar-holidays
(holiday-fixed 4 23 "Third Day of Ridvan"))
(if all-bahai-calendar-holidays
(holiday-fixed 4 24 "Fourth Day of Ridvan"))
(if all-bahai-calendar-holidays
(holiday-fixed 4 25 "Fifth Day of Ridvan"))
(if all-bahai-calendar-holidays
(holiday-fixed 4 26 "Sixth Day of Ridvan"))
(if all-bahai-calendar-holidays
(holiday-fixed 4 27 "Seventh Day of Ridvan"))
(if all-bahai-calendar-holidays
(holiday-fixed 4 28 "Eighth Day of Ridvan"))
(holiday-fixed 4 29 "Ninth Day of Ridvan")
(if all-bahai-calendar-holidays
(holiday-fixed 4 30 "Tenth Day of Ridvan"))
(if all-bahai-calendar-holidays
(holiday-fixed 5 1 "Eleventh Day of Ridvan"))
(holiday-fixed 5 2 "Twelfth Day of Ridvan")
(holiday-fixed 5 23 "Declaration of the Bab")
(holiday-fixed 5 29 "Ascension of Baha'u'llah")
(holiday-fixed 7 9 "Martyrdom of the Bab")
(holiday-fixed 10 20 "Birth of the Bab")
(holiday-fixed 11 12 "Birth of Baha'u'llah")
(if all-bahai-calendar-holidays
(holiday-fixed 11 26 "Day of the Covenant"))
(if all-bahai-calendar-holidays
(holiday-fixed 11 28 "Ascension of `Abdu'l-Baha")))
"*Baha'i holidays.
See the documentation for `calendar-holidays' for details."
:type 'sexp
:group 'holidays)
;;;###autoload ;;;###autoload
(put 'solar-holidays 'risky-local-variable t) (put 'solar-holidays 'risky-local-variable t)
;;;###autoload ;;;###autoload
...@@ -1104,15 +1175,16 @@ See the documentation for `calendar-holidays' for details." ...@@ -1104,15 +1175,16 @@ See the documentation for `calendar-holidays' for details."
(defcustom calendar-holidays (defcustom calendar-holidays
(append general-holidays local-holidays other-holidays (append general-holidays local-holidays other-holidays
christian-holidays hebrew-holidays islamic-holidays christian-holidays hebrew-holidays islamic-holidays
oriental-holidays solar-holidays) bahai-holidays oriental-holidays solar-holidays)
"*List of notable days for the command \\[holidays]. "*List of notable days for the command \\[holidays].
Additional holidays are easy to add to the list, just put them in the list Additional holidays are easy to add to the list, just put them in the
`other-holidays' in your .emacs file. Similarly, by setting any of list `other-holidays' in your .emacs file. Similarly, by setting any
`general-holidays', `local-holidays' `christian-holidays', `hebrew-holidays', of `general-holidays', `local-holidays' `christian-holidays',
`islamic-holidays', `oriental-holidays', or `solar-holidays' to nil in your `hebrew-holidays', `islamic-holidays', `bahai-holidays',
.emacs file, you can eliminate unwanted categories of holidays. The intention `oriental-holidays', or `solar-holidays' to nil in your .emacs file,
is that (in the US) `local-holidays' be set in site-init.el and you can eliminate unwanted categories of holidays. The intention is
that (in the US) `local-holidays' be set in site-init.el and
`other-holidays' be set by the user. `other-holidays' be set by the user.
Entries on the list are expressions that return (possibly empty) lists of Entries on the list are expressions that return (possibly empty) lists of
...@@ -1128,6 +1200,7 @@ Several basic functions are provided for this purpose: ...@@ -1128,6 +1200,7 @@ Several basic functions are provided for this purpose:
DAYNAME after/before MONTH DAY. DAYNAME after/before MONTH DAY.
(holiday-hebrew MONTH DAY STRING) a fixed date on the Hebrew calendar (holiday-hebrew MONTH DAY STRING) a fixed date on the Hebrew calendar
(holiday-islamic MONTH DAY STRING) a fixed date on the Islamic calendar (holiday-islamic MONTH DAY STRING) a fixed date on the Islamic calendar
(holiday-bahai MONTH DAY STRING) a fixed date on the Baha'i calendar
(holiday-julian MONTH DAY STRING) a fixed date on the Julian calendar (holiday-julian MONTH DAY STRING) a fixed date on the Julian calendar
(holiday-sexp SEXP STRING) SEXP is a Gregorian-date-valued expression (holiday-sexp SEXP STRING) SEXP is a Gregorian-date-valued expression
in the variable `year'; if it evaluates to in the variable `year'; if it evaluates to
...@@ -1155,6 +1228,11 @@ add the Islamic feast celebrating Mohammed's birthday use ...@@ -1155,6 +1228,11 @@ add the Islamic feast celebrating Mohammed's birthday use
(holiday-islamic 3 12 \"Mohammed's Birthday\") (holiday-islamic 3 12 \"Mohammed's Birthday\")
since the Islamic months are numbered from 1 starting with Muharram. To since the Islamic months are numbered from 1 starting with Muharram. To
add an entry for the Baha'i festival of Ridvan, use
(holiday-bahai 2 13 \"Festival of Ridvan\")
since the Baha'i months are numbered from 1 starting with Baha. To
add Thomas Jefferson's birthday, April 2, 1743 (Julian), use add Thomas Jefferson's birthday, April 2, 1743 (Julian), use
(holiday-julian 4 2 \"Jefferson's Birthday\") (holiday-julian 4 2 \"Jefferson's Birthday\")
...@@ -1680,6 +1758,14 @@ Driven by the variable `calendar-date-display-form'.") ...@@ -1680,6 +1758,14 @@ Driven by the variable `calendar-date-display-form'.")
"String of Islamic date of Gregorian date." "String of Islamic date of Gregorian date."
t) t)
(autoload 'calendar-print-bahai-date "cal-bahai"
"Show the Baha'i date equivalents of date."
t)
(autoload 'calendar-bahai-date-string "cal-bahai"
"String of Baha'i date of Gregorian date."
t)
(autoload 'calendar-goto-hebrew-date "cal-hebrew" (autoload 'calendar-goto-hebrew-date "cal-hebrew"
"Move cursor to Hebrew date date." "Move cursor to Hebrew date date."
t) t)
...@@ -1803,6 +1889,21 @@ to the date indicated by point." ...@@ -1803,6 +1889,21 @@ to the date indicated by point."
to the date indicated by point." to the date indicated by point."
t) t)
(autoload 'insert-bahai-diary-entry "cal-bahai"
"Insert a diary entry for the Baha'i date corresponding to the date
indicated by point."
t)
(autoload 'insert-monthly-bahai-diary-entry "cal-bahai"
"Insert a monthly diary entry for the day of the Baha'i month corresponding
to the date indicated by point."
t)
(autoload 'insert-yearly-bahai-diary-entry "cal-bahai"
"Insert an annual diary entry for the day of the Baha'i year corresponding
to the date indicated by point."
t)
(autoload 'list-calendar-holidays "holidays" (autoload 'list-calendar-holidays "holidays"
"Create a buffer containing the holidays for the current calendar window. "Create a buffer containing the holidays for the current calendar window.
The holidays are those in the list `calendar-notable-days'. Returns t if any The holidays are those in the list `calendar-notable-days'. Returns t if any
...@@ -2066,6 +2167,7 @@ the inserted text. Value is always t." ...@@ -2066,6 +2167,7 @@ the inserted text. Value is always t."
(define-key calendar-mode-map "ga" 'calendar-goto-astro-day-number) (define-key calendar-mode-map "ga" 'calendar-goto-astro-day-number)
(define-key calendar-mode-map "gh" 'calendar-goto-hebrew-date) (define-key calendar-mode-map "gh" 'calendar-goto-hebrew-date)
(define-key calendar-mode-map "gi" 'calendar-goto-islamic-date) (define-key calendar-mode-map "gi" 'calendar-goto-islamic-date)
(define-key calendar-mode-map "gb" 'calendar-goto-bahai-date)
(define-key calendar-mode-map "gC" 'calendar-goto-chinese-date) (define-key calendar-mode-map "gC" 'calendar-goto-chinese-date)
(define-key calendar-mode-map "gk" 'calendar-goto-coptic-date) (define-key calendar-mode-map "gk" 'calendar-goto-coptic-date)
(define-key calendar-mode-map "ge" 'calendar-goto-ethiopic-date) (define-key calendar-mode-map "ge" 'calendar-goto-ethiopic-date)
...@@ -2106,6 +2208,7 @@ the inserted text. Value is always t." ...@@ -2106,6 +2208,7 @@ the inserted text. Value is always t."
(define-key calendar-mode-map "pa" 'calendar-print-astro-day-number) (define-key calendar-mode-map "pa" 'calendar-print-astro-day-number)
(define-key calendar-mode-map "ph" 'calendar-print-hebrew-date) (define-key calendar-mode-map "ph" 'calendar-print-hebrew-date)
(define-key calendar-mode-map "pi" 'calendar-print-islamic-date) (define-key calendar-mode-map "pi" 'calendar-print-islamic-date)
(define-key calendar-mode-map "pb" 'calendar-print-bahai-date)
(define-key calendar-mode-map "pf" 'calendar-print-french-date) (define-key calendar-mode-map "pf" 'calendar-print-french-date)
(define-key calendar-mode-map "pm" 'calendar-print-mayan-date) (define-key calendar-mode-map "pm" 'calendar-print-mayan-date)
(define-key calendar-mode-map "po" 'calendar-print-other-dates) (define-key calendar-mode-map "po" 'calendar-print-other-dates)
...@@ -2122,6 +2225,9 @@ the inserted text. Value is always t." ...@@ -2122,6 +2225,9 @@ the inserted text. Value is always t."
(define-key calendar-mode-map "iid" 'insert-islamic-diary-entry) (define-key calendar-mode-map "iid" 'insert-islamic-diary-entry)
(define-key calendar-mode-map "iim" 'insert-monthly-islamic-diary-entry) (define-key calendar-mode-map "iim" 'insert-monthly-islamic-diary-entry)
(define-key calendar-mode-map "iiy" 'insert-yearly-islamic-diary-entry) (define-key calendar-mode-map "iiy" 'insert-yearly-islamic-diary-entry)
(define-key calendar-mode-map "iBd" 'insert-bahai-diary-entry)
(define-key calendar-mode-map "iBm" 'insert-monthly-bahai-diary-entry)
(define-key calendar-mode-map "iBy" 'insert-yearly-bahai-diary-entry)
(define-key calendar-mode-map "?" 'calendar-goto-info-node) (define-key calendar-mode-map "?" 'calendar-goto-info-node)
(define-key calendar-mode-map "tm" 'cal-tex-cursor-month) (define-key calendar-mode-map "tm" 'cal-tex-cursor-month)
(define-key calendar-mode-map "tM" 'cal-tex-cursor-month-landscape) (define-key calendar-mode-map "tM" 'cal-tex-cursor-month-landscape)
...@@ -2907,6 +3013,9 @@ Defaults to today's date if DATE is not given." ...@@ -2907,6 +3013,9 @@ Defaults to today's date if DATE is not given."
(let ((i (calendar-islamic-date-string date))) (let ((i (calendar-islamic-date-string date)))
(if (not (string-equal i "")) (if (not (string-equal i ""))
(format "Islamic date (before sunset): %s" i))) (format "Islamic date (before sunset): %s" i)))
(let ((b (calendar-bahai-date-string date)))
(if (not (string-equal b ""))
(format "Baha'i date (before sunset): %s" b)))
(format "Chinese date: %s" (format "Chinese date: %s"
(calendar-chinese-date-string date)) (calendar-chinese-date-string date))
(let ((c (calendar-coptic-date-string date))) (let ((c (calendar-coptic-date-string date)))
......
...@@ -123,6 +123,22 @@ The holidays are those in the list `calendar-holidays'.") ...@@ -123,6 +123,22 @@ The holidays are those in the list `calendar-holidays'.")
(autoload 'mark-islamic-calendar-date-pattern "cal-islam" (autoload 'mark-islamic-calendar-date-pattern "cal-islam"
"Mark dates in calendar window that conform to Islamic date MONTH/DAY/YEAR.") "Mark dates in calendar window that conform to Islamic date MONTH/DAY/YEAR.")
(autoload 'diary-bahai-date "cal-bahai"
"Baha'i calendar equivalent of date diary entry."
t)
(autoload 'list-bahai-diary-entries "cal-bahai"
"Add any Baha'i date entries from the diary file to `diary-entries-list'."
t)
(autoload 'mark-bahai-diary-entries "cal-bahai"
"Mark days in the calendar window that have Baha'i date diary entries."
t)
(autoload 'mark-bahai-calendar-date-pattern "cal-bahai"
"Mark dates in calendar window that conform to Baha'i date MONTH/DAY/YEAR."
t)
(autoload 'diary-hebrew-date "cal-hebrew" (autoload 'diary-hebrew-date "cal-hebrew"
"Hebrew calendar equivalent of date diary entry.") "Hebrew calendar equivalent of date diary entry.")
...@@ -1129,6 +1145,8 @@ be used instead of a colon (:) to separate the hour and minute parts." ...@@ -1129,6 +1145,8 @@ be used instead of a colon (:) to separate the hour and minute parts."
0 1200))) 0 1200)))
(t diary-unknown-time)))) ; Unrecognizable (t diary-unknown-time)))) ; Unrecognizable
;; Unrecognizable
(defun list-sexp-diary-entries (date) (defun list-sexp-diary-entries (date)
"Add sexp entries for DATE from the diary file to `diary-entries-list'. "Add sexp entries for DATE from the diary file to `diary-entries-list'.
Also, Make them visible in the diary file. Returns t if any entries were Also, Make them visible in the diary file. Returns t if any entries were
......
...@@ -84,6 +84,10 @@ ...@@ -84,6 +84,10 @@
"Holiday on MONTH, DAY (Islamic) called STRING." "Holiday on MONTH, DAY (Islamic) called STRING."
t) t)
(autoload 'holiday-bahai "cal-bahai"
"Holiday on MONTH, DAY (Baha'i) called STRING."
t)
(autoload 'holiday-chinese-new-year "cal-china" (autoload 'holiday-chinese-new-year "cal-china"
"Date of Chinese New Year." "Date of Chinese New Year."
t) t)
...@@ -141,6 +145,7 @@ The optional LABEL is used to label the buffer created." ...@@ -141,6 +145,7 @@ The optional LABEL is used to label the buffer created."
(if christian-holidays (cons "Christian" christian-holidays)) (if christian-holidays (cons "Christian" christian-holidays))
(if hebrew-holidays (cons "Hebrew" hebrew-holidays)) (if hebrew-holidays (cons "Hebrew" hebrew-holidays))
(if islamic-holidays (cons "Islamic" islamic-holidays)) (if islamic-holidays (cons "Islamic" islamic-holidays))
(if bahai-holidays (cons "Baha'i" bahai-holidays))
(if oriental-holidays (cons "Oriental" oriental-holidays)) (if oriental-holidays (cons "Oriental" oriental-holidays))
(if solar-holidays (cons "Solar" solar-holidays)) (if solar-holidays (cons "Solar" solar-holidays))
(cons "Ask" nil))) (cons "Ask" nil)))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment