annotate lisp/calendar/calendar.el @ 93504:9105df157c3a

(calendar-make-temp-face): New function. (mark-visible-calendar-date): Use it.
author Glenn Morris <rgm@gnu.org>
date Tue, 01 Apr 2008 04:09:41 +0000
parents 258266315e25
children 343109876a78
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38422
7a94f1c588c4 Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 38088
diff changeset
1 ;;; calendar.el --- calendar functions
811
e694e0879463 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 732
diff changeset
2
39785
5c56451d877f (calendar-mode-line-format): do not use #' on undefined functions
Sam Steingold <sds@gnu.org>
parents: 39523
diff changeset
3 ;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1997,
87649
107ccd98fa12 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 87170 79703
diff changeset
4 ;; 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
86493
93da3d3f787e Re-fill copyright years.
Glenn Morris <rgm@gnu.org>
parents: 84593
diff changeset
5 ;; Free Software Foundation, Inc.
846
20674ae6bf52 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 811
diff changeset
6
811
e694e0879463 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 732
diff changeset
7 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
65919
5c09efcfc1d9 Update maintainer email address.
Glenn Morris <rgm@gnu.org>
parents: 65620
diff changeset
8 ;; Maintainer: Glenn Morris <rgm@gnu.org>
2247
2c7997f249eb Add or correct keywords
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2211
diff changeset
9 ;; Keywords: calendar
13193
a25a4f1246c0 Added key definitions and autoloads for cal-tex.el (a new file).
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 13042
diff changeset
10 ;; Human-Keywords: calendar, Gregorian calendar, diary, holidays
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
11
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; This file is part of GNU Emacs.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13
6737
a3ef1108b7ff Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 6672
diff changeset
14 ;; GNU Emacs is free software; you can redistribute it and/or modify
a3ef1108b7ff Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 6672
diff changeset
15 ;; it under the terms of the GNU General Public License as published by
78216
93e11478c954 Switch license to GPLv3 or later.
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
16 ;; the Free Software Foundation; either version 3, or (at your option)
6737
a3ef1108b7ff Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 6672
diff changeset
17 ;; any later version.
a3ef1108b7ff Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 6672
diff changeset
18
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; GNU Emacs is distributed in the hope that it will be useful,
6737
a3ef1108b7ff Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 6672
diff changeset
20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
a3ef1108b7ff Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 6672
diff changeset
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a3ef1108b7ff Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 6672
diff changeset
22 ;; GNU General Public License for more details.
a3ef1108b7ff Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 6672
diff changeset
23
a3ef1108b7ff Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 6672
diff changeset
24 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13875
diff changeset
25 ;; along with GNU Emacs; see the file COPYING. If not, write to the
64085
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 63334
diff changeset
26 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 63334
diff changeset
27 ;; Boston, MA 02110-1301, USA.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28
811
e694e0879463 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 732
diff changeset
29 ;;; Commentary:
e694e0879463 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 732
diff changeset
30
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
31 ;; This collection of functions implements a calendar window. It
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
32 ;; generates a calendar for the current month, together with the
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
33 ;; previous and coming months, or for any other three-month period.
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
34 ;; The calendar can be scrolled forward and backward in the window to
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
35 ;; show months in the past or future; the cursor can move forward and
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
36 ;; backward by days, weeks, or months, making it possible, for
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
37 ;; instance, to jump to the date a specified number of days, weeks, or
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
38 ;; months from the date under the cursor. The user can display a list
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
39 ;; of holidays and other notable days for the period shown; the
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
40 ;; notable days can be marked on the calendar, if desired. The user
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
41 ;; can also specify that dates having corresponding diary entries (in
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
42 ;; a file that the user specifies) be marked; the diary entries for
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
43 ;; any date can be viewed in a separate window. The diary and the
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
44 ;; notable days can be viewed independently of the calendar. Dates
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
45 ;; can be translated from the (usual) Gregorian calendar to the day of
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
46 ;; the year/days remaining in year, to the ISO commercial calendar, to
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
47 ;; the Julian (old style) calendar, to the Hebrew calendar, to the
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
48 ;; Islamic calendar, to the Baha'i calendar, to the French
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
49 ;; Revolutionary calendar, to the Mayan calendar, to the Chinese
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
50 ;; calendar, to the Coptic calendar, to the Ethiopic calendar, and to
93492
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
51 ;; the astronomical (Julian) day number. Times of sunrise/sunset can
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
52 ;; be displayed, as can the phases of the moon. Appointment
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
53 ;; notification for diary entries is available. Calendar printing via
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
54 ;; LaTeX is available.
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
55
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
56 ;; The following files are part of the calendar/diary code:
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
57
93492
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
58 ;; appt.el Appointment notification
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
59 ;; cal-bahai.el Baha'i calendar
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
60 ;; cal-china.el Chinese calendar
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
61 ;; cal-coptic.el Coptic/Ethiopic calendars
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
62 ;; cal-dst.el Daylight saving time rules
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
63 ;; cal-french.el French revolutionary calendar
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
64 ;; cal-hebrew.el Hebrew calendar
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
65 ;; cal-html.el Calendars in HTML
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
66 ;; cal-islam.el Islamic calendar
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
67 ;; cal-iso.el ISO calendar
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
68 ;; cal-julian.el Julian/astronomical calendars
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
69 ;; cal-mayan.el Mayan calendars
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
70 ;; cal-menu.el Menu support
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
71 ;; cal-move.el Movement in the calendar
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
72 ;; cal-persia.el Persian calendar
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
73 ;; cal-tex.el Calendars in LaTeX
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
74 ;; cal-x.el Dedicated frame functions
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
75 ;; calendar.el This file
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
76 ;; diary-lib.el Diary functions
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
77 ;; holidays.el Holiday functions
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
78 ;; lunar.el Phases of the moon
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
79 ;; solar.el Sunrise/sunset, equinoxes/solstices
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
80
20462
d179de7ad92e Add reference to new Calendrical Calculations book.
Paul Eggert <eggert@twinsun.com>
parents: 20429
diff changeset
81 ;; Technical details of all the calendrical calculations can be found in
61148
7f7db25577d9 Update reference to "Calendrical Calculations" book; there's a new edition.
Paul Eggert <eggert@twinsun.com>
parents: 60922
diff changeset
82 ;; ``Calendrical Calculations: The Millennium Edition'' by Edward M. Reingold
7f7db25577d9 Update reference to "Calendrical Calculations" book; there's a new edition.
Paul Eggert <eggert@twinsun.com>
parents: 60922
diff changeset
83 ;; and Nachum Dershowitz, Cambridge University Press (2001).
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
84
20462
d179de7ad92e Add reference to new Calendrical Calculations book.
Paul Eggert <eggert@twinsun.com>
parents: 20429
diff changeset
85 ;; An earlier version of the technical details appeared in
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
86 ;; ``Calendrical Calculations'' by Nachum Dershowitz and Edward M. Reingold,
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
87 ;; Software--Practice and Experience, Volume 20, Number 9 (September, 1990),
61148
7f7db25577d9 Update reference to "Calendrical Calculations" book; there's a new edition.
Paul Eggert <eggert@twinsun.com>
parents: 60922
diff changeset
88 ;; pages 899-928, and in ``Calendrical Calculations, Part II: Three Historical
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
89 ;; Calendars'' by E. M. Reingold, N. Dershowitz, and S. M. Clamen,
2640
fc7b8160bcc9 * calendar.el: Update reference to the papers in S-P&E.
Jim Blandy <jimb@redhat.com>
parents: 2347
diff changeset
90 ;; Software--Practice and Experience, Volume 23, Number 4 (April, 1993),
fc7b8160bcc9 * calendar.el: Update reference to the papers in S-P&E.
Jim Blandy <jimb@redhat.com>
parents: 2347
diff changeset
91 ;; pages 383-404.
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
92
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
93 ;; Hard copies of these two papers can be obtained by sending email to
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
94 ;; reingold@cs.uiuc.edu with the SUBJECT "send-paper-cal" (no quotes) and
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
95 ;; the message BODY containing your mailing address (snail).
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
96
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
97
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
98 ;; A note on free variables:
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
99
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
100 ;; The calendar passes around a few dynamically bound variables, which
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
101 ;; unfortunately have rather common names. They are meant to be
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
102 ;; available for external functions, so the names can't be changed.
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
103
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
104 ;; displayed-month, displayed-year: bound in generate-calendar, the
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
105 ;; central month of the 3 month calendar window
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
106 ;; original-date, number: bound in diary-list-entries, the arguments
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
107 ;; with which that function was called.
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
108 ;; date, entry: bound in list-sexp-diary-entries (qv)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
109
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
110 ;; Bound in diary-list-entries:
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
111 ;; diary-entries-list: use in d-l, appt.el, and by add-to-diary-list
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
112 ;; diary-saved-point: only used in diary-lib.el, passed to the display func
92988
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
113 ;; date-string: only used in diary-lib.el
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
114 ;; list-only: don't modify the diary-buffer, just return a list of entries
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
115 ;; file-glob-attrs: yuck
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
116
811
e694e0879463 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 732
diff changeset
117 ;;; Code:
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118
92716
95741880e710 (top-level): Load cal-loaddefs when compiling.
Glenn Morris <rgm@gnu.org>
parents: 92708
diff changeset
119 ;; (elisp) Eval During Compile: "Effectively `require' is
95741880e710 (top-level): Load cal-loaddefs when compiling.
Glenn Morris <rgm@gnu.org>
parents: 92708
diff changeset
120 ;; automatically `eval-and-compile'" [but `load' is not]
95741880e710 (top-level): Load cal-loaddefs when compiling.
Glenn Morris <rgm@gnu.org>
parents: 92708
diff changeset
121 (eval-and-compile
95741880e710 (top-level): Load cal-loaddefs when compiling.
Glenn Morris <rgm@gnu.org>
parents: 92708
diff changeset
122 (load "cal-loaddefs" nil 'quiet))
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
123
93227
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
124 ;; Avoid recursive load of calendar when loading cal-menu.
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
125 (provide 'calendar)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
126 (require 'cal-menu)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
127
31669
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
128
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
129 (defgroup calendar nil
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
130 "Calendar and time management support."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
131 :group 'applications)
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
132
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
133 (defgroup calendar-hooks nil
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
134 "Calendar hooks."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
135 :prefix "calendar-"
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
136 :group 'calendar)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
137
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
138 (defgroup diary nil
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
139 "Emacs diary."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
140 :group 'calendar)
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
141
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
142 (defgroup holidays nil
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
143 "Holidays support in calendar."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
144 :group 'calendar
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
145 :prefix "calendar-"
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
146 :group 'local)
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
147
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
148
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
149 (defcustom calendar-offset 0
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
150 "The offset of the principal month from the center of the calendar window.
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
151 0 means the principal month is in the center (default), -1 means on the left,
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
152 +1 means on the right. Larger (or smaller) values push the principal month off
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
153 the screen."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
154 :type 'integer
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
155 :group 'calendar)
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
156
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
157 (defcustom calendar-setup nil
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
158 "The frame setup of the calendar.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
159 The choices are: `one-frame' (calendar and diary together in one separate,
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
160 dedicated frame); `two-frames' (calendar and diary in separate, dedicated
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
161 frames); `calendar-only' (calendar in a separate, dedicated frame); with
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
162 any other value the current frame is used. Using any of the first
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
163 three options overrides the value of `view-diary-entries-initially'."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
164 :type '(choice
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
165 (const :tag "calendar and diary in separate frame" one-frame)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
166 (const :tag "calendar and diary each in own frame" two-frames)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
167 (const :tag "calendar in separate frame" calendar-only)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
168 (const :tag "use current frame" nil))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
169 :group 'calendar)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
170
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
171 (defcustom calendar-minimum-window-height 8
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
172 "Minimum height `generate-calendar-window' should use for calendar window."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
173 :type 'integer
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
174 :version "22.1"
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
175 :group 'calendar)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
176
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
177 (defcustom calendar-week-start-day 0
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
178 "The day of the week on which a week in the calendar begins.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
179 0 means Sunday (default), 1 means Monday, and so on.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
180
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
181 If you change this variable directly (without using customize)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
182 after starting `calendar', you should call `redraw-calendar' to
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
183 update the calendar display to reflect the change, otherwise
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
184 movement commands will not work correctly."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
185 :type 'integer
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
186 ;; Change the initialize so that if you reload calendar.el, it will not
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
187 ;; cause a redraw (which may fail, e.g. with "invalid byte-code in
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
188 ;; calendar.elc" because of the "byte-compile-dynamic").
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
189 :initialize 'custom-initialize-default
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
190 :set (lambda (sym val)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
191 (set sym val)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
192 (redraw-calendar))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
193 :group 'calendar)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
194
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
195 (defcustom view-diary-entries-initially nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
196 "Non-nil means display current date's diary entries on entry to calendar.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
197 The diary is displayed in another window when the calendar is first displayed,
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
198 if the current date is visible. The number of days of diary entries displayed
53559
ba8b837c072c Update copyright.
Glenn Morris <rgm@gnu.org>
parents: 52723
diff changeset
199 is governed by the variable `number-of-diary-entries'. This variable can
ba8b837c072c Update copyright.
Glenn Morris <rgm@gnu.org>
parents: 52723
diff changeset
200 be overridden by the value of `calendar-setup'."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
201 :type 'boolean
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
202 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
203
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
204 (defcustom mark-diary-entries-in-calendar nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
205 "Non-nil means mark dates with diary entries, in the calendar window.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
206 The marking symbol is specified by the variable `diary-entry-marker'."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
207 :type 'boolean
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
208 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
209
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
210 (defcustom calendar-remove-frame-by-deleting t
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
211 "Determine how the calendar mode removes a frame no longer needed.
26427
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
212 If nil, make an icon of the frame. If non-nil, delete the frame."
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
213 :type 'boolean
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
214 :version "23.1" ; changed from nil to t
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
215 :group 'view
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
216 :group 'calendar)
26427
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
217
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
218 (defface calendar-today
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
219 '((t (:underline t)))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
220 "Face for indicating today's date."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
221 :group 'diary)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
222 ;; Backward-compatibility alias. FIXME make obsolete.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
223 (put 'calendar-today-face 'face-alias 'calendar-today)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
224
63221
6e968f79cfbc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-385
Miles Bader <miles@gnu.org>
parents: 62779
diff changeset
225 (defface diary
61394
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 61148
diff changeset
226 '((((min-colors 88) (class color) (background light))
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 61148
diff changeset
227 :foreground "red1")
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 61148
diff changeset
228 (((class color) (background light))
33208
4360c704c17f Revoke the change.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents: 33205
diff changeset
229 :foreground "red")
61394
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 61148
diff changeset
230 (((min-colors 88) (class color) (background dark))
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 61148
diff changeset
231 :foreground "yellow1")
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
232 (((class color) (background dark))
33208
4360c704c17f Revoke the change.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents: 33205
diff changeset
233 :foreground "yellow")
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
234 (t
42456
8a4077ab418c (various face definitions): Use :weight, not :bold.
Richard M. Stallman <rms@gnu.org>
parents: 41577
diff changeset
235 :weight bold))
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
236 "Face for highlighting diary entries."
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
237 :group 'diary)
92988
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
238 ;; Backward-compatibility alias. FIXME make obsolete.
63221
6e968f79cfbc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-385
Miles Bader <miles@gnu.org>
parents: 62779
diff changeset
239 (put 'diary-face 'face-alias 'diary)
6e968f79cfbc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-385
Miles Bader <miles@gnu.org>
parents: 62779
diff changeset
240
6e968f79cfbc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-385
Miles Bader <miles@gnu.org>
parents: 62779
diff changeset
241 (defface holiday
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
242 '((((class color) (background light))
33208
4360c704c17f Revoke the change.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents: 33205
diff changeset
243 :background "pink")
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
244 (((class color) (background dark))
33208
4360c704c17f Revoke the change.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents: 33205
diff changeset
245 :background "chocolate4")
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
246 (t
33208
4360c704c17f Revoke the change.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents: 33205
diff changeset
247 :inverse-video t))
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
248 "Face for indicating dates that have holidays."
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
249 :group 'diary)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
250 ;; Backward-compatibility alias. FIXME make obsolete.
63221
6e968f79cfbc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-385
Miles Bader <miles@gnu.org>
parents: 62779
diff changeset
251 (put 'holiday-face 'face-alias 'holiday)
19059
06cb7a02a079 (diary-face, calendar-today-face, holiday-face):
Richard M. Stallman <rms@gnu.org>
parents: 18940
diff changeset
252
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
253 (defcustom diary-entry-marker (if (display-color-p) 'diary "+")
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
254 "How to mark dates that have diary entries.
19059
06cb7a02a079 (diary-face, calendar-today-face, holiday-face):
Richard M. Stallman <rms@gnu.org>
parents: 18940
diff changeset
255 The value can be either a single-character string or a face."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
256 :type '(choice string face)
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
257 :group 'diary)
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
258
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
259 (defcustom calendar-today-marker (if (display-color-p) 'calendar-today "=")
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
260 "How to mark today's date in the calendar.
19059
06cb7a02a079 (diary-face, calendar-today-face, holiday-face):
Richard M. Stallman <rms@gnu.org>
parents: 18940
diff changeset
261 The value can be either a single-character string or a face.
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
262 Used by `calendar-mark-today'."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
263 :type '(choice string face)
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
264 :group 'calendar)
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
265
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
266 (defcustom calendar-holiday-marker (if (display-color-p) 'holiday "*")
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
267 "How to mark notable dates in the calendar.
19059
06cb7a02a079 (diary-face, calendar-today-face, holiday-face):
Richard M. Stallman <rms@gnu.org>
parents: 18940
diff changeset
268 The value can be either a single-character string or a face."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
269 :type '(choice string face)
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
270 :group 'calendar)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
271
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
272 (defcustom view-calendar-holidays-initially nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
273 "Non-nil means display holidays for current three month period on entry.
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
274 The holidays are displayed in another window when the calendar is first
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
275 displayed."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
276 :type 'boolean
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
277 :group 'holidays)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
278
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
279 (defcustom mark-holidays-in-calendar nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
280 "Non-nil means mark dates of holidays in the calendar window.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
281 The marking symbol is specified by the variable `calendar-holiday-marker'."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
282 :type 'boolean
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
283 :group 'holidays)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
284
76752
f6dad15ba551 (calendar-mode-hook): Declare it.
Glenn Morris <rgm@gnu.org>
parents: 76641
diff changeset
285 (defcustom calendar-mode-hook nil
f6dad15ba551 (calendar-mode-hook): Declare it.
Glenn Morris <rgm@gnu.org>
parents: 76641
diff changeset
286 "Hook run when entering `calendar-mode'."
f6dad15ba551 (calendar-mode-hook): Declare it.
Glenn Morris <rgm@gnu.org>
parents: 76641
diff changeset
287 :type 'hook
f6dad15ba551 (calendar-mode-hook): Declare it.
Glenn Morris <rgm@gnu.org>
parents: 76641
diff changeset
288 :group 'calendar-hooks)
f6dad15ba551 (calendar-mode-hook): Declare it.
Glenn Morris <rgm@gnu.org>
parents: 76641
diff changeset
289
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
290 (defcustom calendar-load-hook nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
291 "List of functions to be called after the calendar is first loaded.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
292 This is the place to add key bindings to `calendar-mode-map'."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
293 :type 'hook
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
294 :group 'calendar-hooks)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
295
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
296 (defcustom initial-calendar-window-hook nil
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
297 "List of functions to be called when the calendar window is created.
93043
0e73f340ef25 (initial-calendar-window-hook, today-visible-calendar-hook): Doc fixes.
Glenn Morris <rgm@gnu.org>
parents: 93026
diff changeset
298 Quitting the calendar and re-entering it will cause these functions
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
299 to be called again."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
300 :type 'hook
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
301 :group 'calendar-hooks)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
302
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
303 (defcustom today-visible-calendar-hook nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
304 "List of functions called whenever the current date is visible.
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
305 To mark today's date, add the function `calendar-mark-today'.
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
306 To replace the date with asterisks, add the function `calendar-star-date'.
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
307 See also `today-invisible-calendar-hook'.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
308
93043
0e73f340ef25 (initial-calendar-window-hook, today-visible-calendar-hook): Doc fixes.
Glenn Morris <rgm@gnu.org>
parents: 93026
diff changeset
309 In general, be careful about changing characters in the calendar buffer,
0e73f340ef25 (initial-calendar-window-hook, today-visible-calendar-hook): Doc fixes.
Glenn Morris <rgm@gnu.org>
parents: 93026
diff changeset
310 since it may cause the movement commands to fail."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
311 :type 'hook
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
312 :options '(calendar-mark-today calendar-star-date)
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
313 :group 'calendar-hooks)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
314
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
315 (defcustom today-invisible-calendar-hook nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
316 "List of functions called whenever the current date is not visible.
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
317 See also `today-visible-calendar-hook'."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
318 :type 'hook
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
319 :group 'calendar-hooks)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
320
25410
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
321 (defcustom calendar-move-hook nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
322 "List of functions called whenever the cursor moves in the calendar.
26427
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
323 For example,
25410
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
324
65477
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
325 (add-hook 'calendar-move-hook (lambda () (diary-view-entries 1)))
25410
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
326
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
327 redisplays the diary for whatever date the cursor is moved to."
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
328 :type 'hook
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
329 :group 'calendar-hooks)
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
330
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
331 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
332 (defcustom diary-file "~/diary"
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
333 "Name of the file in which one's personal diary of dates is kept.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
334
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
335 The file's entries are lines beginning with any of the forms
93278
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
336 specified by the variable `diary-date-forms', which by default
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
337 uses the forms of `american-date-diary-pattern':
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
338
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
339 MONTH/DAY
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
340 MONTH/DAY/YEAR
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
341 MONTHNAME DAY
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
342 MONTHNAME DAY, YEAR
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
343 DAYNAME
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
344
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
345 with the remainder of the line being the diary entry string for
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
346 that date. MONTH and DAY are one or two digit numbers, YEAR is a
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
347 number and may be written in full or abbreviated to the final two
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
348 digits (if `abbreviated-calendar-year' is non-nil). MONTHNAME
92895
379d912c3710 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 92858
diff changeset
349 and DAYNAME can be spelled in full (as specified by the variables
93278
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
350 `calendar-month-name-array' and `calendar-day-name-array'), or
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
351 abbreviated (as specified by `calendar-month-abbrev-array' and
93278
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
352 `calendar-day-abbrev-array') with or without a period. Case is
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
353 ignored. Any of DAY, MONTH, or MONTHNAME, YEAR can be `*' which
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
354 matches any day, month, or year, respectively. If the date does
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
355 not contain a year, it is generic and applies to any year. A
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
356 DAYNAME entry applies to the appropriate day of the week in every week.
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
357
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
358 You can customize `diary-date-forms' to your preferred format.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
359 Three default styles are provided: `american-date-diary-pattern',
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
360 `european-date-diary-pattern', and `iso-date-diary-pattern'.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
361 You can choose between these by setting `calendar-date-style' in your
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
362 .emacs file, or by using `calendar-set-date-style' when in the calendar.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
363
93278
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
364 A diary entry can be preceded by the character `diary-nonmarking-symbol'
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
365 \(ordinarily `&') to make that entry nonmarking--that is, it will not be
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
366 marked on dates in the calendar window but will appear in a diary window.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
367
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
368 Multiline diary entries are made by indenting lines after the first with
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
369 either a TAB or one or more spaces.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
370
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
371 Lines not in one the above formats are ignored. Here are some sample diary
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
372 entries (in the default American style):
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
373
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
374 12/22/1988 Twentieth wedding anniversary!!
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
375 &1/1. Happy New Year!
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
376 10/22 Ruth's birthday.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
377 21: Payday
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
378 Tuesday--weekly meeting with grad students at 10am
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
379 Supowit, Shen, Bitner, and Kapoor to attend.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
380 1/13/89 Friday the thirteenth!!
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
381 &thu 4pm squash game with Lloyd.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
382 mar 16 Dad's birthday
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
383 April 15, 1989 Income tax due.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
384 &* 15 time cards due.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
385
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
386 If the first line of a diary entry consists only of the date or day name with
6737
a3ef1108b7ff Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 6672
diff changeset
387 no trailing blanks or punctuation, then that line is not displayed in the
a3ef1108b7ff Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 6672
diff changeset
388 diary window; only the continuation lines is shown. For example, the
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
389 single diary entry
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
390
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
391 02/11/1989
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
392 Bill Blattner visits Princeton today
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
393 2pm Cognitive Studies Committee meeting
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
394 2:30-5:30 Lizzie at Lawrenceville for `Group Initiative'
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
395 4:00pm Jamie Tappenden
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
396 7:30pm Dinner at George and Ed's for Alan Ryan
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
397 7:30-10:00pm dance at Stewart Country Day School
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
398
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
399 will appear in the diary window without the date line at the beginning. This
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
400 facility allows the diary window to look neater, but can cause confusion if
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
401 used with more than one day's entries displayed.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
402
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
403 Diary entries can be based on Lisp sexps. For example, the diary entry
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
404
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
405 %%(diary-block 11 1 1990 11 10 1990) Vacation
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
406
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
407 causes the diary entry \"Vacation\" to appear from November 1 through
93278
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
408 November 10, 1990. See the documentation for the function
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
409 `list-sexp-diary-entries' for more details.
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
410
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
411 Diary entries based on the Hebrew, the Islamic and/or the Baha'i
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
412 calendar are also possible, but because these are somewhat slow, they
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
413 are ignored unless you set the `nongregorian-diary-listing-hook' and
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
414 the `nongregorian-diary-marking-hook' appropriately. See the
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
415 documentation of these hooks for details.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
416
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
417 Diary files can contain directives to include the contents of other files; for
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
418 details, see the documentation for the variable `list-diary-entries-hook'."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
419 :type 'file
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
420 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
421
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
422 ;; FIXME do these have to be single characters?
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
423 (defcustom diary-nonmarking-symbol "&"
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
424 "Symbol indicating that a diary entry is not to be marked in the calendar."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
425 :type 'string
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
426 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
427
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
428 (defcustom hebrew-diary-entry-symbol "H"
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
429 "Symbol indicating a diary entry according to the Hebrew calendar."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
430 :type 'string
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
431 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
432
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
433 (defcustom islamic-diary-entry-symbol "I"
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
434 "Symbol indicating a diary entry according to the Islamic calendar."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
435 :type 'string
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
436 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
437
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
438 (defcustom bahai-diary-entry-symbol "B"
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
439 "Symbol indicating a diary entry according to the Baha'i calendar."
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
440 :type 'string
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
441 :group 'diary)
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
442
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
443 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
444 (defcustom european-calendar-style nil
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
445 "Non-nil means use the European style of dates in the diary and display.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
446 In this case, a date like 1/2/1990 would be interpreted as
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
447 February 1, 1990. See `european-date-diary-pattern' for the
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
448 default European diary date styles.
73176
3dbfd59b44b5 (european-calendar-style): Call european-calendar or american-calendar
Glenn Morris <rgm@gnu.org>
parents: 71569
diff changeset
449
3dbfd59b44b5 (european-calendar-style): Call european-calendar or american-calendar
Glenn Morris <rgm@gnu.org>
parents: 71569
diff changeset
450 Setting this variable directly does not take effect (if the
3dbfd59b44b5 (european-calendar-style): Call european-calendar or american-calendar
Glenn Morris <rgm@gnu.org>
parents: 71569
diff changeset
451 calendar package is already loaded). Rather, use either
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
452 \\[customize] or the function `calendar-set-date-style'."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
453 :type 'boolean
73176
3dbfd59b44b5 (european-calendar-style): Call european-calendar or american-calendar
Glenn Morris <rgm@gnu.org>
parents: 71569
diff changeset
454 ;; Without :initialize (require 'calendar) throws an error because
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
455 ;; calendar-set-date-style is undefined at this point.
73176
3dbfd59b44b5 (european-calendar-style): Call european-calendar or american-calendar
Glenn Morris <rgm@gnu.org>
parents: 71569
diff changeset
456 :initialize 'custom-initialize-default
73181
97319c05f531 (european-calendar-style): Tweak previous fix.
Glenn Morris <rgm@gnu.org>
parents: 73176
diff changeset
457 :set (lambda (symbol value)
97319c05f531 (european-calendar-style): Tweak previous fix.
Glenn Morris <rgm@gnu.org>
parents: 73176
diff changeset
458 (if value
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
459 (calendar-set-date-style 'european)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
460 (calendar-set-date-style 'american)))
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
461 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
462
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
463 ;;;###autoload
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
464 (make-obsolete-variable 'european-calendar-style 'calendar-date-style "23.1")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
465
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
466 ;; Used by various other packages.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
467 ;;;###autoload
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
468 (defcustom calendar-date-style (if european-calendar-style 'european
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
469 'american)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
470 "Your preferred style for writing dates.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
471 The options are:
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
472 `american' - month/day/year
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
473 `european' - day/month/year
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
474 `iso' - year/month/day
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
475 This affects how dates written in your diary are interpreted.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
476 It also affects date display, as well as those calendar and diary
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
477 functions that take a date as an argument, e.g. `diary-date', by
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
478 changing the order in which the arguments are interpreted.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
479
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
480 Setting this variable directly does not take effect (if the
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
481 calendar package is already loaded). Rather, use either
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
482 \\[customize] or the function `calendar-set-date-style'."
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
483 :version "23.1"
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
484 :type '(choice (const american :tag "Month/Day/Year")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
485 (const european :tag "Day/Month/Year")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
486 (const iso :tag "Year/Month/Day"))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
487 :initialize 'custom-initialize-default
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
488 :set (lambda (symbol value)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
489 (calendar-set-date-style value))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
490 :group 'calendar)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
491
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
492 ;; Next three are provided to aid in setting diary-date-forms.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
493 (defcustom iso-date-diary-pattern
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
494 '((month "[-/]" day "[^-/0-9]")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
495 (year "[-/]" month "[-/]" day "[^0-9]")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
496 (monthname "-" day "[^-0-9]")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
497 (year "-" monthname "-" day "[^0-9]")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
498 (dayname "\\W"))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
499 "List of pseudo-patterns describing the ISO style of dates.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
500 The defaults are: MONTH[-/]DAY; YEAR[-/]MONTH[-/]DAY; MONTHNAME-DAY;
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
501 YEAR-MONTHNAME-DAY; DAYNAME. Normally you should not customize this,
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
502 but `diary-date-forms' (which see)."
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
503 :version "23.1"
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
504 :type '(repeat (choice (cons :tag "Backup"
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
505 :value (backup . nil)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
506 (const backup)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
507 (repeat (list :inline t :format "%v"
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
508 (symbol :tag "Keyword")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
509 (choice symbol regexp))))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
510 (repeat (list :inline t :format "%v"
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
511 (symbol :tag "Keyword")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
512 (choice symbol regexp)))))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
513 :group 'diary)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
514
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
515 (defcustom american-date-diary-pattern
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
516 '((month "/" day "[^/0-9]")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
517 (month "/" day "/" year "[^0-9]")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
518 (monthname " *" day "[^,0-9]")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
519 (monthname " *" day ", *" year "[^0-9]")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
520 (dayname "\\W"))
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
521 "List of pseudo-patterns describing the American style of dates.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
522 The defaults are: MONTH/DAY; MONTH/DAY/YEAR; MONTHNAME DAY;
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
523 MONTHNAME DAY, YEAR; DAYNAME. Normally you should not customize this,
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
524 but `diary-date-forms' (which see)."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
525 :type '(repeat (choice (cons :tag "Backup"
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
526 :value (backup . nil)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
527 (const backup)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
528 (repeat (list :inline t :format "%v"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
529 (symbol :tag "Keyword")
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
530 (choice symbol regexp))))
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
531 (repeat (list :inline t :format "%v"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
532 (symbol :tag "Keyword")
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
533 (choice symbol regexp)))))
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
534 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
535
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
536 (defcustom european-date-diary-pattern
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
537 '((day "/" month "[^/0-9]")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
538 (day "/" month "/" year "[^0-9]")
25154
4c873bb645d8 (european-date-diary-pattern): Fix pattern so it
Richard M. Stallman <rms@gnu.org>
parents: 24891
diff changeset
539 (backup day " *" monthname "\\W+\\<\\([^*0-9]\\|\\([0-9]+[:aApP]\\)\\)")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
540 (day " *" monthname " *" year "[^0-9]")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
541 (dayname "\\W"))
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
542 "List of pseudo-patterns describing the European style of dates.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
543 The defaults are: DAY/MONTH; DAY/MONTH/YEAR; DAY MONTHNAME;
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
544 DAY MONTHNAME YEAR; DAYNAME. Normally you should not customize this, but
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
545 `diary-date-forms' (which see)."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
546 :type '(repeat (choice (cons :tag "Backup"
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
547 :value (backup . nil)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
548 (const backup)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
549 (repeat (list :inline t :format "%v"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
550 (symbol :tag "Keyword")
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
551 (choice symbol regexp))))
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
552 (repeat (list :inline t :format "%v"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
553 (symbol :tag "Keyword")
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
554 (choice symbol regexp)))))
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
555 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
556
77044
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
557 (defvar diary-font-lock-keywords)
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
558
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
559 (defcustom diary-date-forms (cond ((eq calendar-date-style 'iso)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
560 iso-date-diary-pattern)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
561 ((eq calendar-date-style 'european)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
562 european-date-diary-pattern)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
563 (t american-date-diary-pattern))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
564 "List of pseudo-patterns describing the forms of date used in the diary.
44371
aefe45855309 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 44369
diff changeset
565 The patterns on the list must be MUTUALLY EXCLUSIVE and should not match
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
566 any portion of the diary entry itself, just the date component.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
567
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
568 A pseudo-pattern is a list of regular expressions and the keywords `month',
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
569 `day', `year', `monthname', and `dayname'. The keyword `monthname' will
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
570 match the name of the month (see `calendar-month-name-array'), capitalized
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
571 or not, or its user-specified abbreviation (see `calendar-month-abbrev-array'),
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
572 followed by a period or not; it will also match `*'. Similarly, `dayname'
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
573 will match the name of the day (see `calendar-day-name-array'), capitalized or
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
574 not, or its user-specified abbreviation (see `calendar-day-abbrev-array'),
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
575 followed by a period or not. The keywords `month', `day', and `year' will
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
576 match those numerical values, preceded by arbitrarily many zeros; they will
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
577 also match `*'.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
578
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
579 The matching of the diary entries with the date forms is done with the
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
580 standard syntax table from Fundamental mode, but with the `*' changed so
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
581 that it is a word constituent.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
582
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
583 If, to be mutually exclusive, a pseudo-pattern must match a portion of the
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
584 diary entry itself, the first element of the pattern MUST be `backup'. This
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
585 directive causes the date recognizer to back up to the beginning of the
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
586 current word of the diary entry, so in no case can the pattern match more than
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
587 a portion of the first word of the diary entry.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
588
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
589 For examples of three common styles, see `american-date-diary-pattern',
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
590 `european-date-diary-pattern', and `iso-date-diary-pattern'."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
591 :type '(repeat (choice (cons :tag "Backup"
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
592 :value (backup . nil)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
593 (const backup)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
594 (repeat (list :inline t :format "%v"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
595 (symbol :tag "Keyword")
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
596 (choice symbol regexp))))
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
597 (repeat (list :inline t :format "%v"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
598 (symbol :tag "Keyword")
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
599 (choice symbol regexp)))))
77044
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
600 :initialize 'custom-initialize-default
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
601 :set (lambda (symbol value)
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
602 (unless (equal value (eval symbol))
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
603 (custom-set-default symbol value)
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
604 (setq diary-font-lock-keywords (diary-font-lock-keywords))
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
605 ;; Need to redraw not just to get new font-locking, but also
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
606 ;; to pick up any newly recognized entries.
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
607 (and (diary-live-p)
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
608 (diary))))
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
609 :group 'diary)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
610
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
611 ;; Next three are provided to aid in setting calendar-date-display-form.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
612 (defcustom iso-calendar-display-form '((format "%s-%.2d-%.2d" year
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
613 (string-to-number month)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
614 (string-to-number day)))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
615 "Pseudo-pattern governing the way a date appears in the ISO style.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
616 Normally you should not customize this, but `calendar-date-display-form'
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
617 \(which see)."
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
618 :type 'sexp
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
619 :version "23.1"
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
620 :group 'calendar)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
621
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
622 (defcustom european-calendar-display-form
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
623 '((if dayname (concat dayname ", ")) day " " monthname " " year)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
624 "Pseudo-pattern governing the way a date appears in the European style.
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
625 Normally you should not customize this, but `calendar-date-display-form'
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
626 \(which see)."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
627 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
628 :group 'calendar)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
629
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
630 (defcustom american-calendar-display-form
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
631 '((if dayname (concat dayname ", ")) monthname " " day ", " year)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
632 "Pseudo-pattern governing the way a date appears in the American style.
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
633 Normally you should not customize this, but `calendar-date-display-form'
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
634 \(which see)."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
635 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
636 :group 'calendar)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
637
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
638 (defcustom calendar-date-display-form (cond ((eq calendar-date-style 'iso)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
639 iso-calendar-display-form)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
640 ((eq calendar-date-style 'european)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
641 european-calendar-display-form)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
642 (t american-calendar-display-form))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
643 "Pseudo-pattern governing the way a calendar date appears.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
644 Used by the function `calendar-date-string' (which see), a pseudo-pattern
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
645 is a list of expressions that can involve the keywords `month', `day',
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
646 and `year' (all numbers in string form), and `monthname' and `dayname'
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
647 \(both alphabetic strings). For example, a typical American form would be
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
648
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
649 '(month \"/\" day \"/\" (substring year -2))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
650
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
651 whereas
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
652
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
653 '((format \"%9s, %9s %2s, %4s\" dayname monthname day year))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
654
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
655 would give the usual American style in fixed-length fields. The variables
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
656 `iso-calendar-display-form', `european-calendar-display-form', and
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
657 `american-calendar-display-form' provide some defaults for three common
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
658 styles."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
659 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
660 :group 'calendar)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
661
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
662 (defun calendar-set-date-style (style)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
663 "Set the style of calendar and diary dates to STYLE (a symbol).
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
664 The valid styles are described in the documentation of `calendar-date-style'."
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
665 (interactive (list (intern
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
666 (completing-read "Date style: "
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
667 '("american" "european" "iso") nil t
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
668 nil nil "american"))))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
669 (or (memq style '(american european iso))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
670 (setq style 'american))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
671 (setq calendar-date-style style
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
672 calendar-date-display-form
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
673 (symbol-value (intern-soft (format "%s-calendar-display-form" style)))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
674 diary-date-forms
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
675 (symbol-value (intern-soft (format "%s-date-diary-pattern" style))))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
676 (update-calendar-mode-line))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
677
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
678 (defun european-calendar ()
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
679 "Set the interpretation and display of dates to the European style."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
680 (interactive)
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
681 (calendar-set-date-style 'european))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
682
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
683 (make-obsolete 'european-calendar 'calendar-set-date-style "23.1")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
684
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
685 (defun american-calendar ()
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
686 "Set the interpretation and display of dates to the American style."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
687 (interactive)
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
688 (calendar-set-date-style 'american))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
689
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
690 (make-obsolete 'american-calendar 'calendar-set-date-style "23.1")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
691
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
692 ;; FIXME move to diary-lib and adjust appt.
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
693 ;; Add appt-make-list as an option?
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
694 (defcustom diary-hook nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
695 "List of functions called after the display of the diary.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
696 Can be used for appointment notification."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
697 :type 'hook
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
698 :group 'diary)
4453
7f41b3648380 (diary-display-hook): Change default and fix doc string.
Richard M. Stallman <rms@gnu.org>
parents: 4339
diff changeset
699
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
700 (defcustom diary-display-hook nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
701 "List of functions that handle the display of the diary.
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
702 If nil (the default), `simple-diary-display' is used. Use
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
703 `ignore' for no diary display.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
704
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
705 Ordinarily, this just displays the diary buffer (with holidays
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
706 indicated in the mode line), if there are any relevant entries.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
707 At the time these functions are called, the variable
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
708 `diary-entries-list' is a list, in order by date, of all relevant
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
709 diary entries in the form of ((MONTH DAY YEAR) STRING), where
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
710 string is the diary entry for the given date. This can be used,
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
711 for example, a different buffer for display (perhaps combined
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
712 with holidays), or produce hard copy output.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
713
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
714 A function `fancy-diary-display' is provided for use with this
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
715 hook; this function prepares a special noneditable diary buffer
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
716 with the relevant diary entries that has neat day-by-day
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
717 arrangement with headings. The fancy diary buffer will show the
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
718 holidays unless the variable `holidays-in-diary-buffer' is set to
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
719 nil. Ordinarily, the fancy diary buffer will not show days for
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
720 which there are no diary entries, even if that day is a holiday;
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
721 if you want such days to be shown in the fancy diary buffer, set
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
722 the variable `diary-list-include-blanks' non-nil."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
723 :type 'hook
52160
833b56d6e12d (list-diary-entries-hook, diary-display-hook, nongregorian-diary-listing-hook)
Glenn Morris <rgm@gnu.org>
parents: 52115
diff changeset
724 :options '(fancy-diary-display)
76641
6d2ab8b45146 (diary-set-maybe-redraw): Autoload it.
Glenn Morris <rgm@gnu.org>
parents: 76477
diff changeset
725 :initialize 'custom-initialize-default
6d2ab8b45146 (diary-set-maybe-redraw): Autoload it.
Glenn Morris <rgm@gnu.org>
parents: 76477
diff changeset
726 :set 'diary-set-maybe-redraw
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
727 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
728
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
729 (defcustom holidays-in-diary-buffer t
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
730 "Non-nil means include holidays in the diary display.
6737
a3ef1108b7ff Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 6672
diff changeset
731 The holidays appear in the mode line of the diary buffer, or in the
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
732 fancy diary buffer next to the date. This slows down the diary functions
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
733 somewhat; setting it to nil makes the diary display faster."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
734 :type 'boolean
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
735 :group 'holidays)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
736
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
737 (defcustom calendar-debug-sexp nil
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
738 "Turn debugging on when evaluating a sexp in the diary or holiday list."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
739 :type 'boolean
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
740 :group 'calendar)
3448
b7d345eaae47 (calendar-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 2997
diff changeset
741
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
742 ;; The various holiday variables are autoloaded because people
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
743 ;; are used to using them to set calendar-holidays without having to
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
744 ;; explicitly load this file.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
745
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
746 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
747 (defcustom general-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
748 '((holiday-fixed 1 1 "New Year's Day")
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
749 (holiday-float 1 1 3 "Martin Luther King Day")
20821
18188475b33b Fix mispelling.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 20638
diff changeset
750 (holiday-fixed 2 2 "Groundhog Day")
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
751 (holiday-fixed 2 14 "Valentine's Day")
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
752 (holiday-float 2 1 3 "President's Day")
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
753 (holiday-fixed 3 17 "St. Patrick's Day")
14937
a2cc3eb1633b Spelling fix.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 14915
diff changeset
754 (holiday-fixed 4 1 "April Fools' Day")
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
755 (holiday-float 5 0 2 "Mother's Day")
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
756 (holiday-float 5 1 -1 "Memorial Day")
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
757 (holiday-fixed 6 14 "Flag Day")
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
758 (holiday-float 6 0 3 "Father's Day")
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
759 (holiday-fixed 7 4 "Independence Day")
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
760 (holiday-float 9 1 1 "Labor Day")
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
761 (holiday-float 10 1 2 "Columbus Day")
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
762 (holiday-fixed 10 31 "Halloween")
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
763 (holiday-fixed 11 11 "Veteran's Day")
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
764 (holiday-float 11 4 4 "Thanksgiving"))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
765 "General holidays. Default value is for the United States.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
766 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
767 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
768 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
769 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
770 (put 'general-holidays 'risky-local-variable t)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
771
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
772 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
773 (defcustom oriental-holidays
93227
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
774 '((holiday-chinese-new-year))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
775 "Oriental holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
776 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
777 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
778 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
779 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
780 (put 'oriental-holidays 'risky-local-variable t)
13042
03ef030c9e75 Many functions moved to other files, some rewritten. See ChangeLog entry.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 12061
diff changeset
781
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
782 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
783 (defcustom local-holidays nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
784 "Local holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
785 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
786 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
787 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
788 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
789 (put 'local-holidays 'risky-local-variable t)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
790
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
791 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
792 (defcustom other-holidays nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
793 "User defined holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
794 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
795 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
796 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
797 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
798 (put 'other-holidays 'risky-local-variable t)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
799
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
800 (defcustom all-hebrew-calendar-holidays nil
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
801 "If nil, show only major holidays from the Hebrew calendar.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
802 This means only those Jewish holidays that appear on secular calendars.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
803 Otherwise, show all the holidays that would appear in a complete Hebrew
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
804 calendar."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
805 :type 'boolean
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
806 :group 'holidays)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
807
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
808 ;;;###autoload
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
809 (defvar hebrew-holidays-1
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
810 '((holiday-rosh-hashanah-etc)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
811 (if all-hebrew-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
812 (holiday-julian
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
813 11
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
814 (let ((m displayed-month)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
815 (y displayed-year)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
816 year)
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
817 (increment-calendar-month m y -1)
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
818 (setq year (extract-calendar-year
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
819 (calendar-julian-from-absolute
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
820 (calendar-absolute-from-gregorian (list m 1 y)))))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
821 (if (zerop (% (1+ year) 4))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
822 22
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
823 21)) "\"Tal Umatar\" (evening)")))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
824 "Component of the default value of `hebrew-holidays'.")
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
825 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
826 (put 'hebrew-holidays-1 'risky-local-variable t)
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
827
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
828 ;;;###autoload
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
829 (defvar hebrew-holidays-2
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
830 '((if all-hebrew-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
831 (holiday-hanukkah)
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
832 (holiday-hebrew 9 25 "Hanukkah"))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
833 (if all-hebrew-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
834 (holiday-hebrew
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
835 10
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
836 (let ((h-year (extract-calendar-year
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
837 (calendar-hebrew-from-absolute
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
838 (calendar-absolute-from-gregorian
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
839 (list displayed-month 28 displayed-year))))))
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
840 (if (= 6 (% (calendar-absolute-from-hebrew (list 10 10 h-year))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
841 7))
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
842 11 10))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
843 "Tzom Teveth"))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
844 (if all-hebrew-calendar-holidays
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
845 (holiday-hebrew 11 15 "Tu B'Shevat")))
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
846 "Component of the default value of `hebrew-holidays'.")
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
847 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
848 (put 'hebrew-holidays-2 'risky-local-variable t)
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
849
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
850 ;;;###autoload
4530
c14a75fce9c9 (hebrew-holidays-3): Fix misspelling in var name.
Richard M. Stallman <rms@gnu.org>
parents: 4453
diff changeset
851 (defvar hebrew-holidays-3
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
852 '((if all-hebrew-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
853 (holiday-hebrew
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
854 11
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
855 (let ((m displayed-month)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
856 (y displayed-year))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
857 (increment-calendar-month m y 1)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
858 (let* ((h-year (extract-calendar-year
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
859 (calendar-hebrew-from-absolute
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
860 (calendar-absolute-from-gregorian
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
861 (list m
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
862 (calendar-last-day-of-month m y)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
863 y)))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
864 (s-s
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
865 (calendar-hebrew-from-absolute
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
866 (if (= 6
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
867 (% (calendar-absolute-from-hebrew
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
868 (list 7 1 h-year))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
869 7))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
870 (calendar-dayname-on-or-before
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
871 6 (calendar-absolute-from-hebrew
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
872 (list 11 17 h-year)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
873 (calendar-dayname-on-or-before
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
874 6 (calendar-absolute-from-hebrew
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
875 (list 11 16 h-year))))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
876 (day (extract-calendar-day s-s)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
877 day))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
878 "Shabbat Shirah")))
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
879 "Component of the default value of `hebrew-holidays'.")
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
880 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
881 (put 'hebrew-holidays-3 'risky-local-variable t)
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
882
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
883 ;;;###autoload
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
884 (defvar hebrew-holidays-4
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
885 '((holiday-passover-etc)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
886 (if (and all-hebrew-calendar-holidays
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
887 (let ((m displayed-month)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
888 (y displayed-year)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
889 year)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
890 (increment-calendar-month m y -1)
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
891 (setq year (extract-calendar-year
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
892 (calendar-julian-from-absolute
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
893 (calendar-absolute-from-gregorian
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
894 (list m 1 y)))))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
895 (= 21 (% year 28))))
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
896 (holiday-julian 3 26 "Kiddush HaHamah"))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
897 (if all-hebrew-calendar-holidays
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
898 (holiday-tisha-b-av-etc)))
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
899 "Component of the default value of `hebrew-holidays'.")
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
900 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
901 (put 'hebrew-holidays-4 'risky-local-variable t)
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
902
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
903 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
904 (defcustom hebrew-holidays (append hebrew-holidays-1 hebrew-holidays-2
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
905 hebrew-holidays-3 hebrew-holidays-4)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
906 "Jewish holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
907 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
908 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
909 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
910 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
911 (put 'hebrew-holidays 'risky-local-variable t)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
912
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
913 (defcustom all-christian-calendar-holidays nil
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
914 "If nil, show only major holidays from the Christian calendar.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
915 This means only those Christian holidays that appear on secular calendars.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
916 Otherwise, show all the holidays that would appear in a complete Christian
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
917 calendar."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
918 :type 'boolean
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
919 :group 'holidays)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
920
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
921 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
922 (defcustom christian-holidays
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
923 '((if all-christian-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
924 (holiday-fixed 1 6 "Epiphany"))
57198
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
925 (holiday-easter-etc 0 "Easter Sunday")
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
926 (holiday-easter-etc -2 "Good Friday")
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
927 (holiday-easter-etc -46 "Ash Wednesday")
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
928 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
929 (holiday-easter-etc -63 "Septuagesima Sunday"))
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
930 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
931 (holiday-easter-etc -56 "Sexagesima Sunday"))
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
932 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
933 (holiday-easter-etc -49 "Shrove Sunday"))
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
934 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
935 (holiday-easter-etc -48 "Shrove Monday"))
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
936 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
937 (holiday-easter-etc -47 "Shrove Tuesday"))
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
938 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
939 (holiday-easter-etc -14 "Passion Sunday"))
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
940 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
941 (holiday-easter-etc -7 "Palm Sunday"))
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
942 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
943 (holiday-easter-etc -3 "Maundy Thursday"))
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
944 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
945 (holiday-easter-etc 35 "Rogation Sunday"))
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
946 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
947 (holiday-easter-etc 39 "Ascension Day"))
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
948 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
949 (holiday-easter-etc 49 "Pentecost (Whitsunday)"))
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
950 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
951 (holiday-easter-etc 50 "Whitmonday"))
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
952 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
953 (holiday-easter-etc 56 "Trinity Sunday"))
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
954 (if all-christian-calendar-holidays
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
955 (holiday-easter-etc 60 "Corpus Christi"))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
956 (if all-christian-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
957 (holiday-greek-orthodox-easter))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
958 (if all-christian-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
959 (holiday-fixed 8 15 "Assumption"))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
960 (if all-christian-calendar-holidays
57198
2f22c25f37c2 Update maintainer.
Glenn Morris <rgm@gnu.org>
parents: 55431
diff changeset
961 (holiday-advent 0 "Advent"))
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
962 (holiday-fixed 12 25 "Christmas")
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
963 (if all-christian-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
964 (holiday-julian 12 25 "Eastern Orthodox Christmas")))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
965 "Christian holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
966 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
967 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
968 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
969 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
970 (put 'christian-holidays 'risky-local-variable t)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
971
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
972 (defcustom all-islamic-calendar-holidays nil
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
973 "If nil, show only major holidays from the Islamic calendar.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
974 This means only those Islamic holidays that appear on secular calendars.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
975 Otherwise, show all the holidays that would appear in a complete Islamic
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
976 calendar."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
977 :type 'boolean
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
978 :group 'holidays)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
979
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
980 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
981 (defcustom islamic-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
982 '((holiday-islamic
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
983 1 1
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
984 (format "Islamic New Year %d"
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
985 (let ((m displayed-month)
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
986 (y displayed-year))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
987 (increment-calendar-month m y 1)
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
988 (extract-calendar-year
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
989 (calendar-islamic-from-absolute
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
990 (calendar-absolute-from-gregorian
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
991 (list
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
992 m (calendar-last-day-of-month m y) y)))))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
993 (if all-islamic-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
994 (holiday-islamic 1 10 "Ashura"))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
995 (if all-islamic-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
996 (holiday-islamic 3 12 "Mulad-al-Nabi"))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
997 (if all-islamic-calendar-holidays
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
998 (holiday-islamic 7 26 "Shab-e-Mi'raj"))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
999 (if all-islamic-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1000 (holiday-islamic 8 15 "Shab-e-Bara't"))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1001 (holiday-islamic 9 1 "Ramadan Begins")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1002 (if all-islamic-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1003 (holiday-islamic 9 27 "Shab-e Qadr"))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1004 (if all-islamic-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1005 (holiday-islamic 10 1 "Id-al-Fitr"))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1006 (if all-islamic-calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1007 (holiday-islamic 12 10 "Id-al-Adha")))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1008 "Islamic holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1009 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1010 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1011 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1012 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1013 (put 'islamic-holidays 'risky-local-variable t)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1014
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1015 (defcustom all-bahai-calendar-holidays nil
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1016 "If nil, show only major holidays from the Baha'i calendar.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1017 These are the days on which work and school must be suspended.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1018 Otherwise, show all the holidays that would appear in a complete Baha'i
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1019 calendar."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1020 :type 'boolean
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1021 :group 'holidays)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1022
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
1023 ;;;###autoload
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1024 (defcustom bahai-holidays
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1025 '((holiday-fixed
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1026 3 21
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1027 (format "Baha'i New Year (Naw-Ruz) %d" (- displayed-year (1- 1844))))
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1028 (holiday-fixed 4 21 "First Day of Ridvan")
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1029 (if all-bahai-calendar-holidays
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1030 (holiday-fixed 4 22 "Second Day of Ridvan"))
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1031 (if all-bahai-calendar-holidays
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1032 (holiday-fixed 4 23 "Third Day of Ridvan"))
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1033 (if all-bahai-calendar-holidays
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1034 (holiday-fixed 4 24 "Fourth Day of Ridvan"))
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1035 (if all-bahai-calendar-holidays
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1036 (holiday-fixed 4 25 "Fifth Day of Ridvan"))
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1037 (if all-bahai-calendar-holidays
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1038 (holiday-fixed 4 26 "Sixth Day of Ridvan"))
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1039 (if all-bahai-calendar-holidays
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1040 (holiday-fixed 4 27 "Seventh Day of Ridvan"))
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1041 (if all-bahai-calendar-holidays
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1042 (holiday-fixed 4 28 "Eighth Day of Ridvan"))
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1043 (holiday-fixed 4 29 "Ninth Day of Ridvan")
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1044 (if all-bahai-calendar-holidays
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1045 (holiday-fixed 4 30 "Tenth Day of Ridvan"))
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1046 (if all-bahai-calendar-holidays
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1047 (holiday-fixed 5 1 "Eleventh Day of Ridvan"))
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1048 (holiday-fixed 5 2 "Twelfth Day of Ridvan")
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1049 (holiday-fixed 5 23 "Declaration of the Bab")
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1050 (holiday-fixed 5 29 "Ascension of Baha'u'llah")
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1051 (holiday-fixed 7 9 "Martyrdom of the Bab")
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1052 (holiday-fixed 10 20 "Birth of the Bab")
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1053 (holiday-fixed 11 12 "Birth of Baha'u'llah")
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1054 (if all-bahai-calendar-holidays
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1055 (holiday-fixed 11 26 "Day of the Covenant"))
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1056 (if all-bahai-calendar-holidays
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1057 (holiday-fixed 11 28 "Ascension of `Abdu'l-Baha")))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1058 "Baha'i holidays.
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1059 See the documentation for `calendar-holidays' for details."
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1060 :type 'sexp
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1061 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1062 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1063 (put 'bahai-holidays 'risky-local-variable t)
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1064
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
1065 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1066 (defcustom solar-holidays
93227
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1067 '((solar-equinoxes-solstices)
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1068 (holiday-sexp calendar-daylight-savings-starts
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1069 (format "Daylight Saving Time Begins %s"
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1070 (solar-time-string
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1071 (/ calendar-daylight-savings-starts-time (float 60))
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1072 calendar-standard-time-zone-name)))
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1073 (holiday-sexp calendar-daylight-savings-ends
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1074 (format "Daylight Saving Time Ends %s"
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1075 (solar-time-string
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1076 (/ calendar-daylight-savings-ends-time (float 60))
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1077 calendar-daylight-time-zone-name))))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1078 "Sun-related holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1079 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1080 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1081 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1082 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1083 (put 'solar-holidays 'risky-local-variable t)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1084
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
1085 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1086 (defcustom calendar-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1087 (append general-holidays local-holidays other-holidays
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1088 christian-holidays hebrew-holidays islamic-holidays
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1089 bahai-holidays oriental-holidays solar-holidays)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1090 "List of notable days for the command \\[holidays].
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1091
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1092 Additional holidays are easy to add to the list, just put them in the
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1093 list `other-holidays' in your .emacs file. Similarly, by setting any
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1094 of `general-holidays', `local-holidays' `christian-holidays',
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1095 `hebrew-holidays', `islamic-holidays', `bahai-holidays',
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1096 `oriental-holidays', or `solar-holidays' to nil in your .emacs file,
69183
08af43fa19d8 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 68655
diff changeset
1097 you can eliminate unwanted categories of holidays.
08af43fa19d8 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 68655
diff changeset
1098
69351
86b7b0805645 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 69183
diff changeset
1099 The aforementioned variables control the holiday choices offered
84554
5bd5d06e4cf2 Rename all list-calendar-holidays callers to calendar-list-holidays,
Glenn Morris <rgm@gnu.org>
parents: 82365
diff changeset
1100 by the function `holiday-list' when it is called interactively.
69351
86b7b0805645 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 69183
diff changeset
1101
69356
53ca33e3b6a5 (calendar-holidays): Make previous doc-fix less passive.
Glenn Morris <rgm@gnu.org>
parents: 69351
diff changeset
1102 They also initialize the default value of `calendar-holidays',
53ca33e3b6a5 (calendar-holidays): Make previous doc-fix less passive.
Glenn Morris <rgm@gnu.org>
parents: 69351
diff changeset
1103 which is the default list of holidays used by the function
84554
5bd5d06e4cf2 Rename all list-calendar-holidays callers to calendar-list-holidays,
Glenn Morris <rgm@gnu.org>
parents: 82365
diff changeset
1104 `holiday-list' in the non-interactive case. Note that these
69356
53ca33e3b6a5 (calendar-holidays): Make previous doc-fix less passive.
Glenn Morris <rgm@gnu.org>
parents: 69351
diff changeset
1105 variables have no effect on `calendar-holidays' after it has been
53ca33e3b6a5 (calendar-holidays): Make previous doc-fix less passive.
Glenn Morris <rgm@gnu.org>
parents: 69351
diff changeset
1106 set (e.g. after the calendar is loaded). In that case, customize
53ca33e3b6a5 (calendar-holidays): Make previous doc-fix less passive.
Glenn Morris <rgm@gnu.org>
parents: 69351
diff changeset
1107 `calendar-holidays' directly.
69183
08af43fa19d8 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 68655
diff changeset
1108
08af43fa19d8 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 68655
diff changeset
1109 The intention is that (in the US) `local-holidays' be set in
08af43fa19d8 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 68655
diff changeset
1110 site-init.el and `other-holidays' be set by the user.
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1111
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1112 Entries on the list are expressions that return (possibly empty) lists of
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1113 items of the form ((month day year) string) of a holiday in the in the
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1114 three-month period centered around `displayed-month' of `displayed-year'.
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1115 Several basic functions are provided for this purpose:
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1116
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1117 (holiday-fixed MONTH DAY STRING) is a fixed date on the Gregorian calendar
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1118 (holiday-float MONTH DAYNAME K STRING &optional day) is the Kth DAYNAME in
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1119 MONTH on the Gregorian calendar (0 for Sunday,
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1120 etc.); K<0 means count back from the end of the
31730
719a230f8091 Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31671
diff changeset
1121 month. An optional parameter DAY means the Kth
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1122 DAYNAME after/before MONTH DAY.
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1123 (holiday-hebrew MONTH DAY STRING) a fixed date on the Hebrew calendar
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1124 (holiday-islamic MONTH DAY STRING) a fixed date on the Islamic calendar
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1125 (holiday-bahai MONTH DAY STRING) a fixed date on the Baha'i calendar
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1126 (holiday-julian MONTH DAY STRING) a fixed date on the Julian calendar
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1127 (holiday-sexp SEXP STRING) SEXP is a Gregorian-date-valued expression
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1128 in the variable `year'; if it evaluates to
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1129 a visible date, that's the holiday; if it
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1130 evaluates to nil, there's no holiday. STRING
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1131 is an expression in the variable `date'.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1132
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1133 For example, to add Bastille Day, celebrated in France on July 14, add
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1134
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1135 (holiday-fixed 7 14 \"Bastille Day\")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1136
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1137 to the list. To add Hurricane Supplication Day, celebrated in the Virgin
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1138 Islands on the fourth Monday in August, add
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1139
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1140 (holiday-float 8 1 4 \"Hurricane Supplication Day\")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1141
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1142 to the list (the last Monday would be specified with `-1' instead of `4').
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1143 To add the last day of Hanukkah to the list, use
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1144
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1145 (holiday-hebrew 10 2 \"Last day of Hanukkah\")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1146
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1147 since the Hebrew months are numbered with 1 starting from Nisan, while to
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1148 add the Islamic feast celebrating Mohammed's birthday use
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1149
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1150 (holiday-islamic 3 12 \"Mohammed's Birthday\")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1151
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1152 since the Islamic months are numbered from 1 starting with Muharram. To
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1153 add an entry for the Baha'i festival of Ridvan, use
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1154
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1155 (holiday-bahai 2 13 \"Festival of Ridvan\")
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1156
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1157 since the Baha'i months are numbered from 1 starting with Baha. To
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1158 add Thomas Jefferson's birthday, April 2, 1743 (Julian), use
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1159
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1160 (holiday-julian 4 2 \"Jefferson's Birthday\")
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1161
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1162 To include a holiday conditionally, use the sexp form or a conditional. For
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1163 example, to include American presidential elections, which occur on the first
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1164 Tuesday after the first Monday in November of years divisible by 4, add
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1165
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1166 (holiday-sexp
54071
8089fbb082b9 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 53559
diff changeset
1167 '(if (zerop (% year 4))
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1168 (calendar-gregorian-from-absolute
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1169 (1+ (calendar-dayname-on-or-before
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1170 1 (+ 6 (calendar-absolute-from-gregorian
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1171 (list 11 1 year)))))))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1172 \"US Presidential Election\")
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1173
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1174 or
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1175
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1176 (if (zerop (% displayed-year 4))
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1177 (holiday-fixed 11
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1178 (extract-calendar-day
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1179 (calendar-gregorian-from-absolute
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1180 (1+ (calendar-dayname-on-or-before
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1181 1 (+ 6 (calendar-absolute-from-gregorian
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1182 (list 11 1 displayed-year)))))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1183 \"US Presidential Election\"))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1184
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1185 to the list. To include the phases of the moon, add
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1186
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1187 (lunar-phases)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1188
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1189 to the holiday list, where `lunar-phases' is an Emacs-Lisp function that
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1190 you've written to return a (possibly empty) list of the relevant VISIBLE dates
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1191 with descriptive strings such as
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1192
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1193 (((2 6 1989) \"New Moon\") ((2 12 1989) \"First Quarter Moon\") ... )."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1194 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1195 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1196 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1197 (put 'calendar-holidays 'risky-local-variable t)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1198
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1199 ;;; End of user options.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1200
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1201 (defconst calendar-buffer "*Calendar*"
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1202 "Name of the buffer used for the calendar.")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1203
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1204 (defconst holiday-buffer "*Holidays*"
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1205 "Name of the buffer used for the displaying the holidays.")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1206
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1207 (defconst fancy-diary-buffer "*Fancy Diary Entries*"
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1208 "Name of the buffer used for the optional fancy display of the diary.")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1209
22261
329f546a73ec Add function to show equivalent date on all available calendars (in parallel
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 22028
diff changeset
1210 (defconst other-calendars-buffer "*Other Calendars*"
329f546a73ec Add function to show equivalent date on all available calendars (in parallel
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 22028
diff changeset
1211 "Name of the buffer used for the display of date on other calendars.")
329f546a73ec Add function to show equivalent date on all available calendars (in parallel
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 22028
diff changeset
1212
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1213 (defconst lunar-phases-buffer "*Phases of Moon*"
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1214 "Name of the buffer used for the lunar phases.")
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1215
92823
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1216 (defconst cal-hebrew-yahrzeit-buffer "*Yahrzeits*"
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1217 "Name of the buffer used by `list-yahrzeit-dates'.")
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1218
93464
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1219 (defmacro increment-calendar-month (mon yr n &optional nmonths)
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1220 "Increment the variables MON and YR by N months.
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1221 Forward if N is positive or backward if N is negative.
93449
64521597b7dd (increment-calendar-month): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93374
diff changeset
1222 A negative YR is interpreted as BC; -1 being 1 BC, and so on.
93464
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1223 Optional NMONTHS is the number of months per year (default 12)."
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1224 ;; Can view this as a form of base-nmonths arithmetic, in which "a
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1225 ;; year" = "ten", and we never bother to use hundreds.
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1226 `(let ((nmonths (or ,nmonths 12))
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1227 macro-y)
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1228 (if (< ,yr 0) (setq ,yr (1+ ,yr))) ; -1 BC -> 0 AD, etc
93464
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1229 (setq macro-y (+ (* ,yr nmonths) ,mon -1 ,n)
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1230 ,mon (1+ (mod macro-y nmonths))
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1231 ,yr (/ macro-y nmonths))
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1232 ;; Alternative:
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1233 ;;; (setq macro-y (+ (* ,yr nmonths) ,mon -1 ,n)
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1234 ;;; ,yr (/ macro-y nmonths)
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1235 ;;; ,mon (- macro-y (* ,yr nmonths)))
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1236 (and (< macro-y 0) (> ,mon 1) (setq ,yr (1- ,yr)))
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1237 (if (< ,yr 1) (setq ,yr (1- ,yr))))) ; 0 AD -> -1 BC, etc
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1238
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1239 (defvar displayed-month)
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1240 (defvar displayed-year)
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1241
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1242 (defun calendar-increment-month (n &optional mon yr)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1243 "Return the Nth month after MON/YR.
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1244 The return value is a pair (MONTH . YEAR).
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1245 MON defaults to `displayed-month'. YR defaults to `displayed-year'."
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1246 (unless mon (setq mon displayed-month))
68655
3d624f4184ec (calendar-increment-month): Typo in last change.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68366
diff changeset
1247 (unless yr (setq yr displayed-year))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1248 (increment-calendar-month mon yr n)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1249 (cons mon yr))
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1250
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1251 (defmacro calendar-for-loop (var from init to final do &rest body)
82086
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1252 "Execute a for loop.
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1253 Evaluate BODY with VAR bound to successive integers from INIT to FINAL,
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1254 inclusive. The standard macro `dotimes' is preferable in most cases."
92988
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
1255 (declare (debug (symbolp "from" form "to" form "do" body))
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
1256 (indent defun))
26427
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1257 `(let ((,var (1- ,init)))
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1258 (while (>= ,final (setq ,var (1+ ,var)))
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1259 ,@body)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1260
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1261 (defmacro calendar-sum (index initial condition expression)
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1262 "For INDEX = INITIAL, +1, ... (as long as CONDITION holds), sum EXPRESSION."
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1263 (declare (debug (symbolp form form form)))
26427
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1264 `(let ((,index ,initial)
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1265 (sum 0))
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1266 (while ,condition
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1267 (setq sum (+ sum ,expression)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1268 ,index (1+ ,index)))
26427
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1269 sum))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1270
93449
64521597b7dd (increment-calendar-month): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93374
diff changeset
1271 ;; FIXME bind q to bury-buffer?
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1272 (defmacro calendar-in-read-only-buffer (buffer &rest body)
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1273 "Switch to BUFFER and executes the forms in BODY.
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1274 First creates or erases BUFFER as needed. Leaves BUFFER read-only,
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1275 with disabled undo. Leaves point at point-min, displays BUFFER."
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1276 (declare (indent 1) (debug t))
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1277 `(progn
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1278 (set-buffer (get-buffer-create ,buffer))
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1279 (setq buffer-read-only nil
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1280 buffer-undo-list t)
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1281 (erase-buffer)
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1282 ,@body
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1283 (goto-char (point-min))
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1284 (set-buffer-modified-p nil)
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1285 (setq buffer-read-only t)
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1286 (display-buffer ,buffer)))
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1287
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1288 ;; The following are in-line for speed; they can be called thousands of times
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1289 ;; when looking up holidays or processing the diary. Here, for example, are
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1290 ;; the numbers of calls to calendar/diary/holiday functions in preparing the
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1291 ;; fancy diary display, for a moderately complex diary file, with functions
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1292 ;; used instead of macros. There were a total of 10000 such calls:
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1293 ;;
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1294 ;; 1934 extract-calendar-month
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1295 ;; 1852 extract-calendar-year
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1296 ;; 1819 extract-calendar-day
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1297 ;; 845 calendar-leap-year-p
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1298 ;; 837 calendar-day-number
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1299 ;; 775 calendar-absolute-from-gregorian
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1300 ;; 346 calendar-last-day-of-month
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1301 ;; 286 hebrew-calendar-last-day-of-month
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1302 ;; 188 hebrew-calendar-leap-year-p
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1303 ;; 180 hebrew-calendar-elapsed-days
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1304 ;; 163 hebrew-calendar-last-month-of-year
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1305 ;; 66 calendar-date-compare
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1306 ;; 65 hebrew-calendar-days-in-year
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1307 ;; 60 calendar-absolute-from-julian
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1308 ;; 50 calendar-absolute-from-hebrew
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1309 ;; 43 calendar-date-equal
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1310 ;; 38 calendar-gregorian-from-absolute
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1311 ;; .
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1312 ;;
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1313 ;; The use of these seven macros eliminates the overhead of 92% of the function
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1314 ;; calls; it's faster this way.
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1315
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1316 (defsubst extract-calendar-month (date)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1317 "Extract the month part of DATE which has the form (month day year)."
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1318 (car date))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1319
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1320 ;; Note gives wrong answer for result of (calendar-read-date 'noday),
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1321 ;; but that is only used by `calendar-other-month'.
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1322 (defsubst extract-calendar-day (date)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1323 "Extract the day part of DATE which has the form (month day year)."
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1324 (cadr date))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1325
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1326 (defsubst extract-calendar-year (date)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1327 "Extract the year part of DATE which has the form (month day year)."
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1328 (nth 2 date))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1329
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1330 (defsubst calendar-leap-year-p (year)
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1331 "Return t if YEAR is a Gregorian leap year.
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1332 A negative year is interpreted as BC; -1 being 1 BC, and so on."
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1333 ;; 1 BC = 0 AD, 2 BC acts like 1 AD, etc.
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1334 (if (< year 0) (setq year (1- (abs year))))
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1335 (and (zerop (% year 4))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1336 (or (not (zerop (% year 100)))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1337 (zerop (% year 400)))))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1338
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1339 ;; The foregoing is a bit faster, but not as clear as the following:
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1340 ;;
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1341 ;;(defsubst calendar-leap-year-p (year)
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1342 ;; "Return t if YEAR is a Gregorian leap year."
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1343 ;; (or
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1344 ;; (and (zerop (% year 4))
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1345 ;; (not (zerop (% year 100))))
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1346 ;; (zerop (% year 400)))
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1347
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1348 (defsubst calendar-last-day-of-month (month year)
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1349 "The last day in MONTH during YEAR."
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1350 (if (and (= month 2) (calendar-leap-year-p year))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1351 29
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1352 (aref [31 28 31 30 31 30 31 31 30 31 30 31] (1- month))))
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1353
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1354 ;; An explanation of the calculation can be found in PascAlgorithms by
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1355 ;; Edward and Ruth Reingold, Scott-Foresman/Little, Brown, 1988.
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1356
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1357 (defsubst calendar-day-number (date)
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1358 "Return the day number within the year of the date DATE.
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1359 For example, (calendar-day-number '(1 1 1987)) returns the value 1,
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1360 while (calendar-day-number '(12 31 1980)) returns 366."
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1361 (let* ((month (extract-calendar-month date))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1362 (day (extract-calendar-day date))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1363 (year (extract-calendar-year date))
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1364 (day-of-year (+ day (* 31 (1- month)))))
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1365 (when (> month 2)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1366 (setq day-of-year (- day-of-year (/ (+ 23 (* 4 month)) 10)))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1367 (if (calendar-leap-year-p year)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1368 (setq day-of-year (1+ day-of-year))))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1369 day-of-year))
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1370
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1371 (defsubst calendar-absolute-from-gregorian (date)
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1372 "The number of days elapsed between the Gregorian date 12/31/1 BC and DATE.
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1373 The Gregorian date Sunday, December 31, 1 BC is imaginary.
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1374 DATE is a list of the form (month day year). A negative year is
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1375 interpreted as BC; -1 being 1 BC, and so on. Dates before 12/31/1 BC
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1376 return negative results."
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1377 (let ((year (extract-calendar-year date))
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1378 offset-years)
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1379 (cond ((zerop year)
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1380 (error "There was no year zero"))
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1381 ((> year 0)
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1382 (setq offset-years (1- year))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1383 (+ (calendar-day-number date) ; days this year
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1384 (* 365 offset-years) ; + days in prior years
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1385 (/ offset-years 4) ; + Julian leap years
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1386 (- (/ offset-years 100)) ; - century years
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1387 (/ offset-years 400))) ; + Gregorian leap years
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1388 (t
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1389 ;; Years between date and 1 BC, excluding 1 BC (1 for 2 BC, etc).
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1390 (setq offset-years (abs (1+ year)))
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1391 (- (calendar-day-number date)
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1392 (* 365 offset-years)
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1393 (/ offset-years 4)
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1394 (- (/ offset-years 100))
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1395 (/ offset-years 400)
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1396 (calendar-day-number '(12 31 -1))))))) ; days in year 1 BC
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1397
675
85fd29f25c75 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 628
diff changeset
1398 ;;;###autoload
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1399 (defun calendar (&optional arg)
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1400 "Display a three-month Gregorian calendar.
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1401 The three months appear side by side, with the current month in
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1402 the middle surrounded by the previous and next months. The
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1403 cursor is put on today's date. If optional prefix argument ARG
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1404 is non-nil, prompts for the central month and year.
13042
03ef030c9e75 Many functions moved to other files, some rewritten. See ChangeLog entry.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 12061
diff changeset
1405
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1406 Once in the calendar window, future or past months can be moved
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1407 into view. Arbitrary months can be displayed, or the calendar
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1408 can be scrolled forward or backward. The cursor can be moved
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1409 forward or backward by one day, one week, one month, or one year.
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1410 All of these commands take prefix arguments which, when negative,
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1411 cause movement in the opposite direction. For convenience, the
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1412 digit keys and the minus sign are automatically prefixes. Use
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1413 \\[describe-mode] for details of the key bindings in the calendar
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1414 window.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1415
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1416 Displays the calendar in a separate window, or optionally in a
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1417 separate frame, depending on the value of `calendar-setup'.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1418
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1419 If `view-diary-entries-initially' is non-nil, also displays the
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1420 diary entries for the current date (or however many days
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1421 `number-of-diary-entries' specifies). This variable can be
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1422 overridden by `calendar-setup'. As well as being displayed,
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1423 diary entries can also be marked on the calendar (see
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1424 `mark-diary-entries-in-calendar').
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1425
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1426 Runs the following hooks:
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1427
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1428 `calendar-load-hook' - after loading calendar.el
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1429 `today-visible-calendar-hook', `today-invisible-calendar-hook' - after
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1430 generating a calendar, if today's date is visible or not, respectively
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1431 `initial-calendar-window-hook' - after first creating a calendar
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1432
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1433 This function is suitable for execution in a .emacs file."
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1434 (interactive "P")
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1435 ;; Avoid loading cal-x unless it will be used.
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1436 (if (and (memq calendar-setup '(one-frame two-frames calendar-only))
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1437 (display-multi-frame-p))
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1438 (calendar-frame-setup calendar-setup arg)
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1439 (calendar-basic-setup arg)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1440
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1441 (defun calendar-basic-setup (&optional arg nodisplay)
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1442 "Create a three-month calendar.
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1443 If optional prefix argument ARG is non-nil, prompts for the month
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1444 and year, else uses the current date. If NODISPLAY is non-nil, don't
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1445 display the generated calendar."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1446 (interactive "P")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1447 (set-buffer (get-buffer-create calendar-buffer))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1448 (calendar-mode)
9747
5586959f3393 Redo the noday option for calendar-read-date.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9709
diff changeset
1449 (let* ((pop-up-windows t)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1450 (split-height-threshold 1000)
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1451 (date (if arg (calendar-read-date t)
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1452 (calendar-current-date)))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1453 (month (extract-calendar-month date))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1454 (year (extract-calendar-year date)))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1455 (increment-calendar-month month year (- calendar-offset))
82203
3d0d3af343ac (calendar-mode): Make sure displayed-(month|year) are set.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82151
diff changeset
1456 ;; Display the buffer before calling generate-calendar-window so that it
3d0d3af343ac (calendar-mode): Make sure displayed-(month|year) are set.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82151
diff changeset
1457 ;; can get a chance to adjust the window sizes to the frame size.
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1458 (or nodisplay (pop-to-buffer calendar-buffer))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1459 (generate-calendar-window month year)
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1460 (if (and view-diary-entries-initially (calendar-date-is-visible-p date))
65477
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
1461 (diary-view-entries)))
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1462 (if view-calendar-holidays-initially
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1463 (let* ((diary-buffer (get-file-buffer diary-file))
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1464 (diary-window (if diary-buffer (get-buffer-window diary-buffer)))
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1465 (split-height-threshold (if diary-window 2 1000)))
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1466 ;; FIXME display buffer?
84554
5bd5d06e4cf2 Rename all list-calendar-holidays callers to calendar-list-holidays,
Glenn Morris <rgm@gnu.org>
parents: 82365
diff changeset
1467 (calendar-list-holidays)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1468 (run-hooks 'initial-calendar-window-hook))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1469
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1470 (defun generate-calendar-window (&optional mon yr)
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1471 "Generate the calendar window for the current date.
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1472 Optional integers MON and YR are used instead of today's date."
82203
3d0d3af343ac (calendar-mode): Make sure displayed-(month|year) are set.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82151
diff changeset
1473 (let* ((inhibit-read-only t)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1474 (today (calendar-current-date))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1475 (month (extract-calendar-month today))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1476 (day (extract-calendar-day today))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1477 (year (extract-calendar-year today))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1478 (today-visible
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1479 (or (not mon)
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1480 (let ((offset (calendar-interval mon yr month year)))
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1481 (and (<= offset 1) (>= offset -1)))))
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1482 (day-in-week (calendar-day-of-week today))
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1483 (in-calendar-window (eq (window-buffer (selected-window))
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1484 (get-buffer calendar-buffer))))
82203
3d0d3af343ac (calendar-mode): Make sure displayed-(month|year) are set.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82151
diff changeset
1485 (generate-calendar (or mon month) (or yr year))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1486 (update-calendar-mode-line)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1487 (calendar-cursor-to-visible-date
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1488 (if today-visible today (list displayed-month 1 displayed-year)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1489 (set-buffer-modified-p nil)
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1490 ;; Don't do any window-related stuff if we weren't called from a
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1491 ;; window displaying the calendar.
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1492 (when in-calendar-window
78464
7819402a9963 Use window-full-width-p instead of comparing frame-width and
Martin Rudalics <rudalics@gmx.at>
parents: 78216
diff changeset
1493 (if (or (one-window-p t) (not (window-full-width-p)))
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1494 ;; Don't mess with the window size, but ensure that the first
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1495 ;; line is fully visible.
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1496 (set-window-vscroll nil 0)
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1497 ;; Adjust the window to exactly fit the displayed calendar.
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1498 (fit-window-to-buffer nil nil calendar-minimum-window-height))
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1499 (sit-for 0))
49736
dd8404d4fed8 (diary-face-attrs): New custom.
Juanma Barranquero <lekktu@gmail.com>
parents: 49350
diff changeset
1500 (if (and (boundp 'font-lock-mode)
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1501 font-lock-mode)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1502 (font-lock-fontify-buffer))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1503 (and mark-holidays-in-calendar
92530
04183df0b71f (calendar-date-is-legal-p): New obsolete alias.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
1504 ;;; (calendar-date-is-valid-p today) ; useful for BC dates
92844
f5f51a11e3da Remove explicit autoloads now in cal-loaddefs.
Glenn Morris <rgm@gnu.org>
parents: 92823
diff changeset
1505 (calendar-mark-holidays)
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1506 (and in-calendar-window (sit-for 0)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1507 (unwind-protect
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1508 (if mark-diary-entries-in-calendar (mark-diary-entries))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1509 (if today-visible
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1510 (run-hooks 'today-visible-calendar-hook)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1511 (run-hooks 'today-invisible-calendar-hook)))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1512
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1513 (defun generate-calendar (month year)
54128
520476f3222d *** empty log message ***
Glenn Morris <rgm@gnu.org>
parents: 54071
diff changeset
1514 "Generate a three-month Gregorian calendar centered around MONTH, YEAR."
82118
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1515 ;; A negative YEAR is interpreted as BC; -1 being 1 BC, and so on.
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1516 ;; Note that while calendars for years BC could be displayed as it
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1517 ;; stands, almost all other calendar functions (eg holidays) would
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1518 ;; at best have unpredictable results for such dates.
54128
520476f3222d *** empty log message ***
Glenn Morris <rgm@gnu.org>
parents: 54071
diff changeset
1519 (if (< (+ month (* 12 (1- year))) 2)
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1520 (error "Months before January, 1 AD cannot be displayed"))
54128
520476f3222d *** empty log message ***
Glenn Morris <rgm@gnu.org>
parents: 54071
diff changeset
1521 (setq displayed-month month
520476f3222d *** empty log message ***
Glenn Morris <rgm@gnu.org>
parents: 54071
diff changeset
1522 displayed-year year)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1523 (erase-buffer)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1524 (increment-calendar-month month year -1)
82086
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1525 (dotimes (i 3)
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1526 (generate-calendar-month month year (+ 5 (* 25 i)))
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1527 (increment-calendar-month month year 1)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1528
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1529 (defun generate-calendar-month (month year indent)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1530 "Produce a calendar for MONTH, YEAR on the Gregorian calendar.
43010
f3f6fc83e6d1 (generate-calendar-month): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 42924
diff changeset
1531 The calendar is inserted at the top of the buffer in which point is currently
f3f6fc83e6d1 (generate-calendar-month): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 42924
diff changeset
1532 located, but indented INDENT spaces. The indentation is done from the first
f3f6fc83e6d1 (generate-calendar-month): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 42924
diff changeset
1533 character on the line and does not disturb the first INDENT characters on the
54128
520476f3222d *** empty log message ***
Glenn Morris <rgm@gnu.org>
parents: 54071
diff changeset
1534 line."
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1535 (let ((blank-days ; at start of month
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1536 (mod
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1537 (- (calendar-day-of-week (list month 1 year))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1538 calendar-week-start-day)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1539 7))
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1540 (last (calendar-last-day-of-month month year)))
4861
924486090b27 (calendar-week-start-day): New var (autoloaded) to
Richard M. Stallman <rms@gnu.org>
parents: 4658
diff changeset
1541 (goto-char (point-min))
924486090b27 (calendar-week-start-day): New var (autoloaded) to
Richard M. Stallman <rms@gnu.org>
parents: 4658
diff changeset
1542 (calendar-insert-indented
924486090b27 (calendar-week-start-day): New var (autoloaded) to
Richard M. Stallman <rms@gnu.org>
parents: 4658
diff changeset
1543 (calendar-string-spread
12061
017af11017a0 Fixed calendar-string-spread to allow 0 or 1 string; this simplified several
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 10459
diff changeset
1544 (list (format "%s %d" (calendar-month-name month) year)) ? 20)
4861
924486090b27 (calendar-week-start-day): New var (autoloaded) to
Richard M. Stallman <rms@gnu.org>
parents: 4658
diff changeset
1545 indent t)
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1546 (calendar-insert-indented "" indent) ; go to proper spot
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
1547 ;; Use the first two characters of each day to head the columns.
82086
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1548 (dotimes (i 7)
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1549 (insert
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1550 (let ((string
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1551 (calendar-day-name (mod (+ calendar-week-start-day i) 7) nil t)))
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1552 (if enable-multibyte-characters
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1553 (truncate-string-to-width string 2)
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1554 (substring string 0 2)))
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1555 " "))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1556 (calendar-insert-indented "" 0 t) ; force onto following line
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1557 (calendar-insert-indented "" indent) ; go to proper spot
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1558 ;; Add blank days before the first of the month.
82086
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1559 (dotimes (idummy blank-days) (insert " "))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1560 ;; Put in the days of the month.
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1561 (dotimes (i last)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1562 (insert (format "%2d " (1+ i)))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1563 (add-text-properties
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1564 (- (point) 3) (1- (point))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1565 '(mouse-face highlight
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1566 help-echo "mouse-2: menu of operations for this date"))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1567 (and (zerop (mod (+ i 1 blank-days) 7))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1568 (/= i (1- last))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1569 (calendar-insert-indented "" 0 t) ; force onto following line
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1570 (calendar-insert-indented "" indent))))) ; go to proper spot
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1571
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1572 (defun calendar-insert-indented (string indent &optional newline)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1573 "Insert STRING at column INDENT.
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1574 If the optional parameter NEWLINE is non-nil, leave point at start of next
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1575 line, inserting a newline if there was no next line; otherwise, leave point
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1576 after the inserted text. Returns t."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1577 ;; Try to move to that column.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1578 (move-to-column indent)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1579 ;; If line is too short, indent out to that column.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1580 (if (< (current-column) indent)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1581 (indent-to indent))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1582 (insert string)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1583 ;; Advance to next line, if requested.
92602
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1584 (when newline
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1585 (end-of-line)
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1586 (if (eobp)
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1587 (newline)
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1588 (forward-line 1)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1589 t)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1590
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1591 (defun redraw-calendar ()
60322
ae2850fc74dc (redraw-calendar): Work from any buffer, not just the calendar.
Glenn Morris <rgm@gnu.org>
parents: 60292
diff changeset
1592 "Redraw the calendar display, if `calendar-buffer' is live."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1593 (interactive)
60322
ae2850fc74dc (redraw-calendar): Work from any buffer, not just the calendar.
Glenn Morris <rgm@gnu.org>
parents: 60292
diff changeset
1594 (if (get-buffer calendar-buffer)
60568
e2cd8a11381a (calendar-redrawing): New internal variable.
Glenn Morris <rgm@gnu.org>
parents: 60528
diff changeset
1595 (with-current-buffer calendar-buffer
60649
3a754b1548d3 (calendar-redrawing): Delete.
Glenn Morris <rgm@gnu.org>
parents: 60568
diff changeset
1596 (let ((cursor-date (calendar-cursor-to-nearest-date)))
60568
e2cd8a11381a (calendar-redrawing): New internal variable.
Glenn Morris <rgm@gnu.org>
parents: 60528
diff changeset
1597 (generate-calendar-window displayed-month displayed-year)
e2cd8a11381a (calendar-redrawing): New internal variable.
Glenn Morris <rgm@gnu.org>
parents: 60528
diff changeset
1598 (calendar-cursor-to-visible-date cursor-date)))))
60528
952103a61e35 (redraw-calendar): Preserve point. Reported by Matt Hodges
Glenn Morris <rgm@gnu.org>
parents: 60322
diff changeset
1599
82118
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1600 (defvar calendar-mode-map
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1601 (let ((map (make-keymap)))
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1602 (suppress-keymap map)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1603 (dolist (c '(narrow-to-region mark-word mark-sexp mark-paragraph
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1604 mark-defun mark-whole-buffer mark-page
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1605 downcase-region upcase-region kill-region
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1606 copy-region-as-kill capitalize-region write-region))
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1607 (define-key map (vector 'remap c) 'calendar-not-implemented))
82151
7b6bc42d5f2c (calendar-mode-map): Use new calendar-scroll-* names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82140
diff changeset
1608 (define-key map "<" 'calendar-scroll-right)
7b6bc42d5f2c (calendar-mode-map): Use new calendar-scroll-* names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82140
diff changeset
1609 (define-key map "\C-x<" 'calendar-scroll-right)
7b6bc42d5f2c (calendar-mode-map): Use new calendar-scroll-* names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82140
diff changeset
1610 (define-key map [prior] 'calendar-scroll-right-three-months)
7b6bc42d5f2c (calendar-mode-map): Use new calendar-scroll-* names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82140
diff changeset
1611 (define-key map "\ev" 'calendar-scroll-right-three-months)
7b6bc42d5f2c (calendar-mode-map): Use new calendar-scroll-* names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82140
diff changeset
1612 (define-key map ">" 'calendar-scroll-left)
7b6bc42d5f2c (calendar-mode-map): Use new calendar-scroll-* names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82140
diff changeset
1613 (define-key map "\C-x>" 'calendar-scroll-left)
7b6bc42d5f2c (calendar-mode-map): Use new calendar-scroll-* names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82140
diff changeset
1614 (define-key map [next] 'calendar-scroll-left-three-months)
7b6bc42d5f2c (calendar-mode-map): Use new calendar-scroll-* names.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82140
diff changeset
1615 (define-key map "\C-v" 'calendar-scroll-left-three-months)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1616 (define-key map "\C-b" 'calendar-backward-day)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1617 (define-key map "\C-p" 'calendar-backward-week)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1618 (define-key map "\e{" 'calendar-backward-month)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1619 (define-key map "\C-x[" 'calendar-backward-year)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1620 (define-key map "\C-f" 'calendar-forward-day)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1621 (define-key map "\C-n" 'calendar-forward-week)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1622 (define-key map [left] 'calendar-backward-day)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1623 (define-key map [up] 'calendar-backward-week)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1624 (define-key map [right] 'calendar-forward-day)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1625 (define-key map [down] 'calendar-forward-week)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1626 (define-key map "\e}" 'calendar-forward-month)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1627 (define-key map "\C-x]" 'calendar-forward-year)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1628 (define-key map "\C-a" 'calendar-beginning-of-week)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1629 (define-key map "\C-e" 'calendar-end-of-week)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1630 (define-key map "\ea" 'calendar-beginning-of-month)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1631 (define-key map "\ee" 'calendar-end-of-month)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1632 (define-key map "\e<" 'calendar-beginning-of-year)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1633 (define-key map "\e>" 'calendar-end-of-year)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1634 (define-key map "\C-@" 'calendar-set-mark)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1635 ;; Many people are used to typing C-SPC and getting C-@.
82118
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1636 (define-key map [?\C-\s] 'calendar-set-mark)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1637 (define-key map "\C-x\C-x" 'calendar-exchange-point-and-mark)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1638 (define-key map "\e=" 'calendar-count-days-region)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1639 (define-key map "gd" 'calendar-goto-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1640 (define-key map "gD" 'calendar-goto-day-of-year)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1641 (define-key map "gj" 'calendar-goto-julian-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1642 (define-key map "ga" 'calendar-goto-astro-day-number)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1643 (define-key map "gh" 'calendar-goto-hebrew-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1644 (define-key map "gi" 'calendar-goto-islamic-date)
84593
6a5b534dceee Following cal-bahai renaming, update all
Glenn Morris <rgm@gnu.org>
parents: 84554
diff changeset
1645 (define-key map "gb" 'calendar-bahai-goto-date)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1646 (define-key map "gC" 'calendar-goto-chinese-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1647 (define-key map "gk" 'calendar-goto-coptic-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1648 (define-key map "ge" 'calendar-goto-ethiopic-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1649 (define-key map "gp" 'calendar-goto-persian-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1650 (define-key map "gc" 'calendar-goto-iso-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1651 (define-key map "gw" 'calendar-goto-iso-week)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1652 (define-key map "gf" 'calendar-goto-french-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1653 (define-key map "gml" 'calendar-goto-mayan-long-count-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1654 (define-key map "gmpc" 'calendar-previous-calendar-round-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1655 (define-key map "gmnc" 'calendar-next-calendar-round-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1656 (define-key map "gmph" 'calendar-previous-haab-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1657 (define-key map "gmnh" 'calendar-next-haab-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1658 (define-key map "gmpt" 'calendar-previous-tzolkin-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1659 (define-key map "gmnt" 'calendar-next-tzolkin-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1660 (define-key map "Aa" 'appt-add)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1661 (define-key map "Ad" 'appt-delete)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1662 (define-key map "S" 'calendar-sunrise-sunset)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1663 (define-key map "M" 'calendar-phases-of-moon)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1664 (define-key map " " 'scroll-other-window)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1665 (define-key map (kbd "DEL") 'scroll-other-window-down)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1666 (define-key map "\C-c\C-l" 'redraw-calendar)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1667 (define-key map "." 'calendar-goto-today)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1668 (define-key map "o" 'calendar-other-month)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1669 (define-key map "q" 'exit-calendar)
84554
5bd5d06e4cf2 Rename all list-calendar-holidays callers to calendar-list-holidays,
Glenn Morris <rgm@gnu.org>
parents: 82365
diff changeset
1670 (define-key map "a" 'calendar-list-holidays)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1671 (define-key map "h" 'calendar-cursor-holidays)
93492
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
1672 (define-key map "x" 'calendar-mark-holidays)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1673 (define-key map "u" 'calendar-unmark)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1674 (define-key map "m" 'mark-diary-entries)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1675 (define-key map "d" 'diary-view-entries)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1676 (define-key map "D" 'view-other-diary-entries)
70632
2c9ec59f776a (calendar-mode-map): Refer to diary-show-all-entries rather than alias
Glenn Morris <rgm@gnu.org>
parents: 70600
diff changeset
1677 (define-key map "s" 'diary-show-all-entries)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1678 (define-key map "pd" 'calendar-print-day-of-year)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1679 (define-key map "pC" 'calendar-print-chinese-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1680 (define-key map "pk" 'calendar-print-coptic-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1681 (define-key map "pe" 'calendar-print-ethiopic-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1682 (define-key map "pp" 'calendar-print-persian-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1683 (define-key map "pc" 'calendar-print-iso-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1684 (define-key map "pj" 'calendar-print-julian-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1685 (define-key map "pa" 'calendar-print-astro-day-number)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1686 (define-key map "ph" 'calendar-print-hebrew-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1687 (define-key map "pi" 'calendar-print-islamic-date)
84593
6a5b534dceee Following cal-bahai renaming, update all
Glenn Morris <rgm@gnu.org>
parents: 84554
diff changeset
1688 (define-key map "pb" 'calendar-bahai-print-date)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1689 (define-key map "pf" 'calendar-print-french-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1690 (define-key map "pm" 'calendar-print-mayan-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1691 (define-key map "po" 'calendar-print-other-dates)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1692 (define-key map "id" 'insert-diary-entry)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1693 (define-key map "iw" 'insert-weekly-diary-entry)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1694 (define-key map "im" 'insert-monthly-diary-entry)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1695 (define-key map "iy" 'insert-yearly-diary-entry)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1696 (define-key map "ia" 'insert-anniversary-diary-entry)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1697 (define-key map "ib" 'insert-block-diary-entry)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1698 (define-key map "ic" 'insert-cyclic-diary-entry)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1699 (define-key map "ihd" 'insert-hebrew-diary-entry)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1700 (define-key map "ihm" 'insert-monthly-hebrew-diary-entry)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1701 (define-key map "ihy" 'insert-yearly-hebrew-diary-entry)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1702 (define-key map "iid" 'insert-islamic-diary-entry)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1703 (define-key map "iim" 'insert-monthly-islamic-diary-entry)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1704 (define-key map "iiy" 'insert-yearly-islamic-diary-entry)
84593
6a5b534dceee Following cal-bahai renaming, update all
Glenn Morris <rgm@gnu.org>
parents: 84554
diff changeset
1705 (define-key map "iBd" 'diary-bahai-insert-entry)
6a5b534dceee Following cal-bahai renaming, update all
Glenn Morris <rgm@gnu.org>
parents: 84554
diff changeset
1706 (define-key map "iBm" 'diary-bahai-insert-monthly-entry)
6a5b534dceee Following cal-bahai renaming, update all
Glenn Morris <rgm@gnu.org>
parents: 84554
diff changeset
1707 (define-key map "iBy" 'diary-bahai-insert-yearly-entry)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1708 (define-key map "?" 'calendar-goto-info-node)
73518
099deb7b2cbd (cal-html-cursor-month, cal-html-cursor-year): Add autoloads for this
Glenn Morris <rgm@gnu.org>
parents: 73181
diff changeset
1709 (define-key map "Hm" 'cal-html-cursor-month)
099deb7b2cbd (cal-html-cursor-month, cal-html-cursor-year): Add autoloads for this
Glenn Morris <rgm@gnu.org>
parents: 73181
diff changeset
1710 (define-key map "Hy" 'cal-html-cursor-year)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1711 (define-key map "tm" 'cal-tex-cursor-month)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1712 (define-key map "tM" 'cal-tex-cursor-month-landscape)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1713 (define-key map "td" 'cal-tex-cursor-day)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1714 (define-key map "tw1" 'cal-tex-cursor-week)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1715 (define-key map "tw2" 'cal-tex-cursor-week2)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1716 (define-key map "tw3" 'cal-tex-cursor-week-iso)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1717 (define-key map "tw4" 'cal-tex-cursor-week-monday)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1718 (define-key map "tfd" 'cal-tex-cursor-filofax-daily)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1719 (define-key map "tfw" 'cal-tex-cursor-filofax-2week)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1720 (define-key map "tfW" 'cal-tex-cursor-filofax-week)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1721 (define-key map "tfy" 'cal-tex-cursor-filofax-year)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1722 (define-key map "ty" 'cal-tex-cursor-year)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1723 (define-key map "tY" 'cal-tex-cursor-year-landscape)
82118
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1724
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1725 (define-key map [menu-bar edit] 'undefined)
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1726 (define-key map [menu-bar search] 'undefined)
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1727 ;; This ignores the mouse-up event after the mouse-down that pops up the
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1728 ;; context menu. It should not be necessary because the mouse-up event
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1729 ;; should be eaten up by the menu-handling toolkit.
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1730 ;; (define-key map [mouse-2] 'ignore)
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1731
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1732 (easy-menu-define nil map nil cal-menu-moon-menu)
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1733 (easy-menu-define nil map nil cal-menu-diary-menu)
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1734 (easy-menu-define nil map nil cal-menu-holidays-menu)
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1735 (easy-menu-define nil map nil cal-menu-goto-menu)
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1736 (easy-menu-define nil map nil cal-menu-scroll-menu)
92530
04183df0b71f (calendar-date-is-legal-p): New obsolete alias.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
1737
82118
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1738 (define-key map [down-mouse-3]
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1739 (easy-menu-binding cal-menu-context-mouse-menu))
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1740 (define-key map [down-mouse-2]
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1741 (easy-menu-binding cal-menu-global-mouse-menu))
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1742
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1743 map)
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1744 "Keymap for `calendar-mode'.")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1745
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1746 (defun describe-calendar-mode ()
48366
9dad713d153a Patch of Alan Shutko <ats@acm.org> by way of rms.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47333
diff changeset
1747 "Create a help buffer with a brief description of the `calendar-mode'."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1748 (interactive)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1749 (help-setup-xref (list #'describe-calendar-mode) (interactive-p))
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1750 (with-output-to-temp-buffer (help-buffer)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1751 (princ
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1752 (format
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1753 "Calendar Mode:\nFor a complete description, type %s\n%s\n"
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1754 (substitute-command-keys
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1755 "\\<calendar-mode-map>\\[describe-mode] from within the calendar")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1756 (substitute-command-keys "\\{calendar-mode-map}")))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1757 (print-help-return-message)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1758
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1759 ;; Calendar mode is suitable only for specially formatted data.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1760 (put 'calendar-mode 'mode-class 'special)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1761
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1762 ;; After calendar-mode-map.
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1763 (defcustom calendar-mode-line-format
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1764 (list
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1765 (propertize "<"
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1766 'help-echo "mouse-1: previous month"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1767 'mouse-face 'mode-line-highlight
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1768 'keymap (make-mode-line-mouse-map 'mouse-1
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1769 'calendar-scroll-right))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1770 "Calendar"
31669
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1771 (concat
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1772 (propertize
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1773 (substitute-command-keys
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1774 "\\<calendar-mode-map>\\[calendar-goto-info-node] info")
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1775 'help-echo "mouse-1: read Info on Calendar"
62779
c3dbcfe29c9e (calendar-mode-line-format): Use mode-line-highlight as mouse-face.
Luc Teirlinck <teirllm@auburn.edu>
parents: 62402
diff changeset
1776 'mouse-face 'mode-line-highlight
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1777 'keymap (make-mode-line-mouse-map 'mouse-1 'calendar-goto-info-node))
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1778 " / "
31669
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1779 (propertize
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1780 (substitute-command-keys
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1781 " \\<calendar-mode-map>\\[calendar-other-month] other")
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1782 'help-echo "mouse-1: choose another month"
62779
c3dbcfe29c9e (calendar-mode-line-format): Use mode-line-highlight as mouse-face.
Luc Teirlinck <teirllm@auburn.edu>
parents: 62402
diff changeset
1783 'mouse-face 'mode-line-highlight
39785
5c56451d877f (calendar-mode-line-format): do not use #' on undefined functions
Sam Steingold <sds@gnu.org>
parents: 39523
diff changeset
1784 'keymap (make-mode-line-mouse-map
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1785 'mouse-1 'mouse-calendar-other-month))
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1786 " / "
31669
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1787 (propertize
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1788 (substitute-command-keys
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1789 "\\<calendar-mode-map>\\[calendar-goto-today] today")
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1790 'help-echo "mouse-1: go to today's date"
62779
c3dbcfe29c9e (calendar-mode-line-format): Use mode-line-highlight as mouse-face.
Luc Teirlinck <teirllm@auburn.edu>
parents: 62402
diff changeset
1791 'mouse-face 'mode-line-highlight
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1792 'keymap (make-mode-line-mouse-map 'mouse-1 #'calendar-goto-today)))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1793 '(calendar-date-string (calendar-current-date) t)
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1794 (propertize ">"
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1795 'help-echo "mouse-1: next month"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1796 'mouse-face 'mode-line-highlight
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1797 'keymap (make-mode-line-mouse-map
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1798 'mouse-1 'calendar-scroll-left)))
44369
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1799 "The mode line of the calendar buffer.
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1800
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1801 This must be a list of items that evaluate to strings--those strings are
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1802 evaluated and concatenated together, evenly separated by blanks. The variable
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1803 `date' is available for use as the date under (or near) the cursor; `date'
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1804 defaults to the current date if it is otherwise undefined. Here is an example
44371
aefe45855309 Fix typos.
Juanma Barranquero <lekktu@gmail.com>
parents: 44369
diff changeset
1805 value that has the Hebrew date, the day number/days remaining in the year,
82118
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1806 and the ISO week/year numbers in the mode. When `calendar-move-hook' is set
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1807 to `update-calendar-mode-line', the mode line shows these values for the date
44369
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1808 under the cursor:
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1809
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1810 (list
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1811 \"\"
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1812 '(calendar-hebrew-date-string date)
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1813 '(let* ((year (extract-calendar-year date))
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1814 (d (calendar-day-number date))
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1815 (days-remaining
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1816 (- (calendar-day-number (list 12 31 year)) d)))
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1817 (format \"%d/%d\" d days-remaining))
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1818 '(let* ((d (calendar-absolute-from-gregorian date))
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1819 (iso-date (calendar-iso-from-absolute d)))
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1820 (format \"ISO week %d of %d\"
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1821 (extract-calendar-month iso-date)
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1822 (extract-calendar-year iso-date)))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1823 \"\"))"
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1824 :type 'sexp
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1825 :group 'calendar)
47333
79920a7d8018 (mouse-scroll-calendar-left)
Richard M. Stallman <rms@gnu.org>
parents: 44371
diff changeset
1826
79920a7d8018 (mouse-scroll-calendar-left)
Richard M. Stallman <rms@gnu.org>
parents: 44371
diff changeset
1827 (defun mouse-calendar-other-month (event)
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1828 "Display a three-month calendar centered around a specified month and year.
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1829 EVENT is the last mouse event."
47333
79920a7d8018 (mouse-scroll-calendar-left)
Richard M. Stallman <rms@gnu.org>
parents: 44371
diff changeset
1830 (interactive "e")
79920a7d8018 (mouse-scroll-calendar-left)
Richard M. Stallman <rms@gnu.org>
parents: 44371
diff changeset
1831 (save-selected-window
79920a7d8018 (mouse-scroll-calendar-left)
Richard M. Stallman <rms@gnu.org>
parents: 44371
diff changeset
1832 (select-window (posn-window (event-start event)))
79920a7d8018 (mouse-scroll-calendar-left)
Richard M. Stallman <rms@gnu.org>
parents: 44371
diff changeset
1833 (call-interactively 'calendar-other-month)))
79920a7d8018 (mouse-scroll-calendar-left)
Richard M. Stallman <rms@gnu.org>
parents: 44371
diff changeset
1834
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1835 (defun calendar-goto-info-node ()
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1836 "Go to the info node for the calendar."
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1837 (interactive)
92551
a9c1d203dd4a (calendar-version): Use emacs-version and make it obsolete. Move to end.
Glenn Morris <rgm@gnu.org>
parents: 92530
diff changeset
1838 (info "(emacs)Calendar/Diary"))
48366
9dad713d153a Patch of Alan Shutko <ats@acm.org> by way of rms.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47333
diff changeset
1839
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1840 (defvar calendar-mark-ring nil
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1841 "Used by `calendar-set-mark'.")
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1842
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1843 (defun calendar-mode ()
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1844 "A major mode for the calendar window.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1845
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1846 For a complete description, type \
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1847 \\<calendar-mode-map>\\[calendar-goto-info-node] from within the calendar.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1848
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1849 \\<calendar-mode-map>\\{calendar-mode-map}"
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1850 (kill-all-local-variables)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1851 (setq major-mode 'calendar-mode
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1852 mode-name "Calendar"
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1853 buffer-read-only t
93492
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
1854 buffer-undo-list t
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1855 indent-tabs-mode nil)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1856 (use-local-map calendar-mode-map)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1857 (update-calendar-mode-line)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1858 (make-local-variable 'calendar-mark-ring)
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1859 (make-local-variable 'displayed-month) ; month in middle of window
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1860 (make-local-variable 'displayed-year) ; year in middle of window
82203
3d0d3af343ac (calendar-mode): Make sure displayed-(month|year) are set.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82151
diff changeset
1861 ;; Most functions only work if displayed-month and displayed-year are set,
3d0d3af343ac (calendar-mode): Make sure displayed-(month|year) are set.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82151
diff changeset
1862 ;; so let's make sure they're always set. Most likely, this will be reset
3d0d3af343ac (calendar-mode): Make sure displayed-(month|year) are set.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82151
diff changeset
1863 ;; soon in generate-calendar, but better safe than sorry.
3d0d3af343ac (calendar-mode): Make sure displayed-(month|year) are set.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82151
diff changeset
1864 (unless (boundp 'displayed-month) (setq displayed-month 1))
3d0d3af343ac (calendar-mode): Make sure displayed-(month|year) are set.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82151
diff changeset
1865 (unless (boundp 'displayed-year) (setq displayed-year 2001))
48366
9dad713d153a Patch of Alan Shutko <ats@acm.org> by way of rms.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47333
diff changeset
1866 (set (make-local-variable 'font-lock-defaults)
63334
e3610cf31194 (calendar-mode): Use run-mode-hooks.
Lute Kamstra <lute@gnu.org>
parents: 63221
diff changeset
1867 '(calendar-font-lock-keywords t))
e3610cf31194 (calendar-mode): Use run-mode-hooks.
Lute Kamstra <lute@gnu.org>
parents: 63221
diff changeset
1868 (run-mode-hooks 'calendar-mode-hook))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1869
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1870 (defun calendar-string-spread (strings char length)
12061
017af11017a0 Fixed calendar-string-spread to allow 0 or 1 string; this simplified several
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 10459
diff changeset
1871 "Concatenate list of STRINGS separated with copies of CHAR to fill LENGTH.
017af11017a0 Fixed calendar-string-spread to allow 0 or 1 string; this simplified several
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 10459
diff changeset
1872 The effect is like mapconcat but the separating pieces are as balanced as
017af11017a0 Fixed calendar-string-spread to allow 0 or 1 string; this simplified several
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 10459
diff changeset
1873 possible. Each item of STRINGS is evaluated before concatenation so it can
017af11017a0 Fixed calendar-string-spread to allow 0 or 1 string; this simplified several
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 10459
diff changeset
1874 actually be an expression that evaluates to a string. If LENGTH is too short,
017af11017a0 Fixed calendar-string-spread to allow 0 or 1 string; this simplified several
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 10459
diff changeset
1875 the STRINGS are just concatenated and the result truncated."
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1876 ;; The algorithm is based on equation (3.25) on page 85 of Concrete
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1877 ;; Mathematics by Ronald L. Graham, Donald E. Knuth, and Oren Patashnik,
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1878 ;; Addison-Wesley, Reading, MA, 1989.
12061
017af11017a0 Fixed calendar-string-spread to allow 0 or 1 string; this simplified several
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 10459
diff changeset
1879 (let* ((strings (mapcar 'eval
017af11017a0 Fixed calendar-string-spread to allow 0 or 1 string; this simplified several
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 10459
diff changeset
1880 (if (< (length strings) 2)
017af11017a0 Fixed calendar-string-spread to allow 0 or 1 string; this simplified several
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 10459
diff changeset
1881 (append (list "") strings (list ""))
017af11017a0 Fixed calendar-string-spread to allow 0 or 1 string; this simplified several
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 10459
diff changeset
1882 strings)))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1883 (n (- length (length (apply 'concat strings))))
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1884 (m (1- (length strings)))
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1885 (s (car strings))
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1886 (strings (cdr strings))
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1887 (i 0))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1888 (dolist (string strings)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1889 (setq s (concat s
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1890 (make-string (max 0 (/ (+ n i) m)) char)
92988
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
1891 string)
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
1892 i (1+ i)))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1893 (substring s 0 length)))
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1894
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1895 (defun update-calendar-mode-line ()
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1896 "Update the calendar mode line with the current date and date style."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1897 (if (bufferp (get-buffer calendar-buffer))
65477
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
1898 (with-current-buffer calendar-buffer
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1899 (setq mode-line-format
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1900 (calendar-string-spread
44369
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1901 (let ((date (condition-case nil
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1902 (calendar-cursor-to-nearest-date)
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1903 (error (calendar-current-date)))))
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1904 (mapcar 'eval calendar-mode-line-format))
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1905 ? (frame-width)))
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1906 (force-mode-line-update))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1907
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1908 (defun calendar-window-list ()
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1909 "List of all calendar-related windows."
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1910 (let ((calendar-buffers (calendar-buffer-list))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1911 list)
31669
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1912 (walk-windows (lambda (w)
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1913 (if (memq (window-buffer w) calendar-buffers)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1914 (push w list)))
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1915 nil t)
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1916 list))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1917
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1918 (defun calendar-buffer-list ()
92895
379d912c3710 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 92858
diff changeset
1919 "List of all calendar-related buffers (as buffers, not strings)."
92823
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1920 (let (buffs)
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1921 (dolist (b (list cal-hebrew-yahrzeit-buffer lunar-phases-buffer
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1922 holiday-buffer fancy-diary-buffer
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1923 (get-file-buffer diary-file)
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1924 calendar-buffer other-calendars-buffer))
92895
379d912c3710 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 92858
diff changeset
1925 (and b (setq b (get-buffer b))
92823
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1926 (push b buffs)))
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1927 buffs))
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1928
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1929 (defun exit-calendar ()
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1930 "Get out of the calendar window and hide it and related buffers."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1931 (interactive)
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1932 (let ((diary-buffer (get-file-buffer diary-file)))
22028
639be14b80ef On exiting, don't signal error when user changes mind.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 22027
diff changeset
1933 (if (or (not diary-buffer)
639be14b80ef On exiting, don't signal error when user changes mind.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 22027
diff changeset
1934 (not (buffer-modified-p diary-buffer))
639be14b80ef On exiting, don't signal error when user changes mind.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 22027
diff changeset
1935 (yes-or-no-p
639be14b80ef On exiting, don't signal error when user changes mind.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 22027
diff changeset
1936 "Diary modified; do you really want to exit the calendar? "))
92602
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1937 ;; Need to do this multiple times because one time can replace some
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1938 ;; calendar-related buffers with other calendar-related buffers.
92602
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1939 (mapc (lambda (x)
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1940 (mapc 'calendar-hide-window (calendar-window-list)))
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1941 (calendar-window-list)))))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1942
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1943 (defun calendar-hide-window (window)
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1944 "Hide WINDOW if it is calendar-related."
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1945 (let ((buffer (if (window-live-p window) (window-buffer window))))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1946 (if (memq buffer (calendar-buffer-list))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1947 (cond
37430
a0e805e3a7f1 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker): Use
Eli Zaretskii <eliz@gnu.org>
parents: 37001
diff changeset
1948 ((and (display-multi-frame-p)
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1949 (eq 'icon (cdr (assoc 'visibility
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1950 (frame-parameters
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1951 (window-frame window))))))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1952 nil)
37430
a0e805e3a7f1 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker): Use
Eli Zaretskii <eliz@gnu.org>
parents: 37001
diff changeset
1953 ((and (display-multi-frame-p) (window-dedicated-p window))
26427
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1954 (if calendar-remove-frame-by-deleting
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1955 (delete-frame (window-frame window))
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1956 (iconify-frame (window-frame window))))
9709
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1957 ((not (and (select-window window) (one-window-p window)))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1958 (delete-window window))
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1959 (t (set-buffer buffer)
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1960 (bury-buffer))))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1961
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1962 (defun calendar-current-date ()
31730
719a230f8091 Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31671
diff changeset
1963 "Return the current date in a list (month day year)."
16099
e3b0c3bf4451 (calendar-current-date): Simplify by using decode-time instead
Richard M. Stallman <rms@gnu.org>
parents: 15317
diff changeset
1964 (let ((now (decode-time)))
e3b0c3bf4451 (calendar-current-date): Simplify by using decode-time instead
Richard M. Stallman <rms@gnu.org>
parents: 15317
diff changeset
1965 (list (nth 4 now) (nth 3 now) (nth 5 now))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1966
5829
d266967cc1cc (calendar-mode-line-format): Change "current" to "today".
Richard M. Stallman <rms@gnu.org>
parents: 5771
diff changeset
1967 (defun calendar-cursor-to-date (&optional error)
31730
719a230f8091 Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31671
diff changeset
1968 "Return a list (month day year) of current cursor position.
5829
d266967cc1cc (calendar-mode-line-format): Change "current" to "today".
Richard M. Stallman <rms@gnu.org>
parents: 5771
diff changeset
1969 If cursor is not on a specific date, signals an error if optional parameter
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1970 ERROR is non-nil, otherwise just returns nil."
6037
324bb3410cfb Fix calendar-cursor-to-date to handle starred days correctly.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 6025
diff changeset
1971 (let* ((segment (/ (current-column) 25))
324bb3410cfb Fix calendar-cursor-to-date to handle starred days correctly.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 6025
diff changeset
1972 (month (% (+ displayed-month segment -1) 12))
92602
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1973 (month (if (zerop month) 12 month))
6037
324bb3410cfb Fix calendar-cursor-to-date to handle starred days correctly.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 6025
diff changeset
1974 (year
324bb3410cfb Fix calendar-cursor-to-date to handle starred days correctly.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 6025
diff changeset
1975 (cond
92602
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1976 ((and (= 12 month) (zerop segment)) (1- displayed-year))
6037
324bb3410cfb Fix calendar-cursor-to-date to handle starred days correctly.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 6025
diff changeset
1977 ((and (= 1 month) (= segment 2)) (1+ displayed-year))
324bb3410cfb Fix calendar-cursor-to-date to handle starred days correctly.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 6025
diff changeset
1978 (t displayed-year))))
13042
03ef030c9e75 Many functions moved to other files, some rewritten. See ChangeLog entry.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 12061
diff changeset
1979 (if (and (looking-at "[ 0-9]?[0-9][^0-9]")
6037
324bb3410cfb Fix calendar-cursor-to-date to handle starred days correctly.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 6025
diff changeset
1980 (< 2 (count-lines (point-min) (point))))
324bb3410cfb Fix calendar-cursor-to-date to handle starred days correctly.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 6025
diff changeset
1981 (save-excursion
13042
03ef030c9e75 Many functions moved to other files, some rewritten. See ChangeLog entry.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 12061
diff changeset
1982 (if (not (looking-at " "))
82118
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1983 (re-search-backward "[^0-9]"))
6037
324bb3410cfb Fix calendar-cursor-to-date to handle starred days correctly.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 6025
diff changeset
1984 (list month
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 61394
diff changeset
1985 (string-to-number (buffer-substring (1+ (point)) (+ 4 (point))))
6037
324bb3410cfb Fix calendar-cursor-to-date to handle starred days correctly.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 6025
diff changeset
1986 year))
93492
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
1987 (if error (error "Not on a date!")))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1988
65477
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
1989 (add-to-list 'debug-ignored-errors "Not on a date!")
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
1990
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1991 ;; The following version of calendar-gregorian-from-absolute is preferred for
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1992 ;; reasons of clarity, BUT it's much slower than the version that follows it.
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1993
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1994 ;;(defun calendar-gregorian-from-absolute (date)
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1995 ;; "Compute the list (month day year) corresponding to the absolute DATE.
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1996 ;;The absolute date is the number of days elapsed since the (imaginary)
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1997 ;;Gregorian date Sunday, December 31, 1 BC."
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1998 ;; (let* ((approx (/ date 366)) ; approximation from below
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1999 ;; (year ; search forward from the approximation
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2000 ;; (+ approx
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2001 ;; (calendar-sum y approx
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2002 ;; (>= date (calendar-absolute-from-gregorian (list 1 1 (1+ y))))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2003 ;; 1)))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2004 ;; (month ; search forward from January
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2005 ;; (1+ (calendar-sum m 1
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2006 ;; (> date
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2007 ;; (calendar-absolute-from-gregorian
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2008 ;; (list m (calendar-last-day-of-month m year) year)))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2009 ;; 1)))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2010 ;; (day ; calculate the day by subtraction
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2011 ;; (- date
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2012 ;; (1- (calendar-absolute-from-gregorian (list month 1 year))))))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2013 ;; (list month day year)))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2014
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2015 (defun calendar-gregorian-from-absolute (date)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2016 "Compute the list (month day year) corresponding to the absolute DATE.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2017 The absolute date is the number of days elapsed since the (imaginary)
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
2018 Gregorian date Sunday, December 31, 1 BC. This function does not
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
2019 handle dates in years BC."
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2020 ;; See the footnote on page 384 of ``Calendrical Calculations, Part II:
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2021 ;; Three Historical Calendars'' by E. M. Reingold, N. Dershowitz, and S. M.
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2022 ;; Clamen, Software--Practice and Experience, Volume 23, Number 4
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2023 ;; (April, 1993), pages 383-404 for an explanation.
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2024 (let* ((d0 (1- date))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2025 (n400 (/ d0 146097))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2026 (d1 (% d0 146097))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2027 (n100 (/ d1 36524))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2028 (d2 (% d1 36524))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2029 (n4 (/ d2 1461))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2030 (d3 (% d2 1461))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2031 (n1 (/ d3 365))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2032 (day (1+ (% d3 365)))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2033 (year (+ (* 400 n400) (* 100 n100) (* n4 4) n1)))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2034 (if (or (= n100 4) (= n1 4))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2035 (list 12 31 year)
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2036 (let ((year (1+ year))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2037 (month 1))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2038 (while (let ((mdays (calendar-last-day-of-month month year)))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2039 (and (< mdays day)
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2040 (setq day (- day mdays))))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2041 (setq month (1+ month)))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2042 (list month day year)))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2043
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2044 (defun calendar-other-month (month year)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2045 "Display a three-month calendar centered around MONTH and YEAR."
9747
5586959f3393 Redo the noday option for calendar-read-date.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9709
diff changeset
2046 (interactive (calendar-read-date 'noday))
92988
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
2047 (unless (and (= month displayed-month)
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
2048 (= year displayed-year))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2049 (let ((old-date (calendar-cursor-to-date))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2050 (today (calendar-current-date)))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
2051 (generate-calendar-window month year)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2052 (calendar-cursor-to-visible-date
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2053 (cond
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2054 ((calendar-date-is-visible-p old-date) old-date)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2055 ((calendar-date-is-visible-p today) today)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2056 (t (list month 1 year)))))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2057
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2058 (defun calendar-set-mark (arg)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2059 "Mark the date under the cursor, or jump to marked date.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2060 With no prefix argument, push current date onto marked date ring.
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2061 With argument ARG, jump to mark, pop it, and put point at end of ring."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2062 (interactive "P")
5829
d266967cc1cc (calendar-mode-line-format): Change "current" to "today".
Richard M. Stallman <rms@gnu.org>
parents: 5771
diff changeset
2063 (let ((date (calendar-cursor-to-date t)))
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2064 (if arg
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2065 (if (null calendar-mark-ring)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2066 (error "No mark set in this buffer")
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2067 (calendar-goto-date (car calendar-mark-ring))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2068 (setq calendar-mark-ring
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2069 (cdr (nconc calendar-mark-ring (list date)))))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2070 (push date calendar-mark-ring)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2071 ;; Since the top of the mark ring is the marked date in the
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2072 ;; calendar, the mark ring in the calendar is one longer than
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2073 ;; in other buffers to get the same effect.
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2074 (if (> (length calendar-mark-ring) (1+ mark-ring-max))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2075 (setcdr (nthcdr mark-ring-max calendar-mark-ring) nil))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2076 (message "Mark set"))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2077
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2078 (defun calendar-exchange-point-and-mark ()
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2079 "Exchange the current cursor position with the marked date."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2080 (interactive)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2081 (let ((mark (car calendar-mark-ring))
5829
d266967cc1cc (calendar-mode-line-format): Change "current" to "today".
Richard M. Stallman <rms@gnu.org>
parents: 5771
diff changeset
2082 (date (calendar-cursor-to-date t)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2083 (if (null mark)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2084 (error "No mark set in this buffer")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2085 (setq calendar-mark-ring (cons date (cdr calendar-mark-ring)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2086 (calendar-goto-date mark))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2087
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2088 (defun calendar-count-days-region ()
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2089 "Count the number of days (inclusive) between point and the mark."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2090 (interactive)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2091 (let* ((days (- (calendar-absolute-from-gregorian
5829
d266967cc1cc (calendar-mode-line-format): Change "current" to "today".
Richard M. Stallman <rms@gnu.org>
parents: 5771
diff changeset
2092 (calendar-cursor-to-date t))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2093 (calendar-absolute-from-gregorian
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2094 (or (car calendar-mark-ring)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2095 (error "No mark set in this buffer")))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2096 (days (1+ (if (> days 0) days (- days)))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2097 (message "Region has %d day%s (inclusive)"
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2098 days (if (> days 1) "s" ""))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2099
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2100 (defun calendar-not-implemented ()
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2101 "Not implemented."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2102 (interactive)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2103 (error "%s not available in the calendar"
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2104 (global-key-binding (this-command-keys))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2105
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2106 (defun calendar-read (prompt acceptable &optional initial-contents)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2107 "Return an object read from the minibuffer.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2108 Prompt with the string PROMPT and use the function ACCEPTABLE to decide if
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2109 entered item is acceptable. If non-nil, optional third arg INITIAL-CONTENTS
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2110 is a string to insert in the minibuffer before reading."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2111 (let ((value (read-minibuffer prompt initial-contents)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2112 (while (not (funcall acceptable value))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2113 (setq value (read-minibuffer prompt initial-contents)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2114 value))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2115
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2116
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2117 (defvar calendar-abbrev-length 3
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2118 "*Length of abbreviations to be used for day and month names.
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2119 See also `calendar-day-abbrev-array' and `calendar-month-abbrev-array'.")
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2120
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2121 ;; FIXME does it have to start from Sunday?
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2122 (defcustom calendar-day-name-array
23531
37ae25c77df0 Add doc strings CORRECTLY!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 23498
diff changeset
2123 ["Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"]
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2124 "Array of capitalized strings giving, in order, the day names.
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2125 The first two characters of each string will be used to head the
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2126 day columns in the calendar. See also the variable
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2127 `calendar-day-abbrev-array'."
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2128 :group 'calendar
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2129 :type '(vector (string :tag "Sunday")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2130 (string :tag "Monday")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2131 (string :tag "Tuesday")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2132 (string :tag "Wednesday")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2133 (string :tag "Thursday")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2134 (string :tag "Friday")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2135 (string :tag "Saturday")))
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2136
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2137 (defvar calendar-day-abbrev-array
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2138 [nil nil nil nil nil nil nil]
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2139 "*Array of capitalized strings giving the abbreviated day names.
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2140 The order should be the same as that of the full names specified
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2141 in `calendar-day-name-array'. These abbreviations may be used
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2142 instead of the full names in the diary file. Do not include a
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2143 trailing `.' in the strings specified in this variable, though
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2144 you may use such in the diary file. If any element of this array
61148
7f7db25577d9 Update reference to "Calendrical Calculations" book; there's a new edition.
Paul Eggert <eggert@twinsun.com>
parents: 60922
diff changeset
2145 is nil, then the abbreviation will be constructed as the first
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2146 `calendar-abbrev-length' characters of the corresponding full name.")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2147
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2148 (defcustom calendar-month-name-array
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2149 ["January" "February" "March" "April" "May" "June"
23531
37ae25c77df0 Add doc strings CORRECTLY!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 23498
diff changeset
2150 "July" "August" "September" "October" "November" "December"]
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2151 "Array of capitalized strings giving, in order, the month names.
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2152 See also the variable `calendar-month-abbrev-array'."
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2153 :group 'calendar
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2154 :type '(vector (string :tag "January")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2155 (string :tag "February")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2156 (string :tag "March")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2157 (string :tag "April")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2158 (string :tag "May")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2159 (string :tag "June")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2160 (string :tag "July")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2161 (string :tag "August")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2162 (string :tag "September")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2163 (string :tag "October")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2164 (string :tag "November")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2165 (string :tag "December")))
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2166
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2167 (defvar calendar-month-abbrev-array
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2168 [nil nil nil nil nil nil nil nil nil nil nil nil]
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2169 "*Array of capitalized strings giving the abbreviated month names.
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2170 The order should be the same as that of the full names specified
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2171 in `calendar-month-name-array'. These abbreviations are used in
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2172 the calendar menu entries, and can also be used in the diary
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2173 file. Do not include a trailing `.' in the strings specified in
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2174 this variable, though you may use such in the diary file. If any
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2175 element of this array is nil, then the abbreviation will be
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2176 constructed as the first `calendar-abbrev-length' characters of the
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2177 corresponding full name.")
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2178
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2179 (defun calendar-make-alist (sequence &optional start-index filter abbrevs)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2180 "Make an assoc list corresponding to SEQUENCE.
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2181 Each element of sequence will be associated with an integer, starting
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2182 from 1, or from START-INDEX if that is non-nil. If a sequence ABBREVS
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2183 is supplied, the function `calendar-abbrev-construct' is used to
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2184 construct abbreviations corresponding to the elements in SEQUENCE.
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2185 Each abbreviation is entered into the alist with the same
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2186 association index as the full name it represents.
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2187 If FILTER is provided, apply it to each key in the alist."
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2188 (let ((index 0)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2189 (offset (or start-index 1))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2190 (aseq (if abbrevs (calendar-abbrev-construct abbrevs sequence)))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2191 (aseqp (if abbrevs (calendar-abbrev-construct abbrevs sequence
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2192 'period)))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2193 alist elem)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2194 (dotimes (i (length sequence) (reverse alist))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2195 (setq index (+ i offset)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2196 elem (elt sequence i)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2197 alist
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2198 (cons (cons (if filter (funcall filter elem) elem) index) alist))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2199 (if aseq
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2200 (setq elem (elt aseq i)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2201 alist (cons (cons (if filter (funcall filter elem) elem)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2202 index) alist)))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2203 (if aseqp
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2204 (setq elem (elt aseqp i)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2205 alist (cons (cons (if filter (funcall filter elem) elem)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2206 index) alist))))))
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2207
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2208 (defun calendar-read-date (&optional noday)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2209 "Prompt for Gregorian date. Return a list (month day year).
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2210 If optional NODAY is t, does not ask for day, but just returns
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2211 \(month 1 year); if NODAY is any other non-nil value the value returned is
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2212 \(month year)"
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2213 (let* ((year (calendar-read
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2214 "Year (>0): "
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2215 (lambda (x) (> x 0))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2216 (int-to-string (extract-calendar-year
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2217 (calendar-current-date)))))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2218 (month-array calendar-month-name-array)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2219 (completion-ignore-case t)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2220 (month (cdr (assoc-string
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2221 (completing-read
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2222 "Month name: "
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2223 (mapcar 'list (append month-array nil))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2224 nil t)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2225 (calendar-make-alist month-array 1) t)))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2226 (last (calendar-last-day-of-month month year)))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2227 (if noday
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2228 (if (eq noday t)
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2229 (list month 1 year)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2230 (list month year))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2231 (list month
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2232 (calendar-read (format "Day (1-%d): " last)
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2233 (lambda (x) (and (< 0 x) (<= x last))))
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2234 year))))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2235
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2236 (defun calendar-interval (mon1 yr1 mon2 yr2)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2237 "The number of months difference between MON1, YR1 and MON2, YR2.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2238 The result is positive if the second date is later than the first.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2239 Negative years are interpreted as years BC; -1 being 1 BC, and so on."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2240 (if (< yr1 0) (setq yr1 (1+ yr1))) ; -1 BC -> 0 AD, etc
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2241 (if (< yr2 0) (setq yr2 (1+ yr2)))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2242 (+ (* 12 (- yr2 yr1))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2243 (- mon2 mon1)))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2244
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2245 (defun calendar-abbrev-construct (abbrev full &optional period)
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2246 "Internal calendar function to return a complete abbreviation array.
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2247 ABBREV is an array of abbreviations, FULL the corresponding array
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2248 of full names. The return value is the ABBREV array, with any nil
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2249 elements replaced by the first three characters taken from the
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2250 corresponding element of FULL. If optional argument PERIOD is non-nil,
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2251 each element returned has a final `.' character."
52160
833b56d6e12d (list-diary-entries-hook, diary-display-hook, nongregorian-diary-listing-hook)
Glenn Morris <rgm@gnu.org>
parents: 52115
diff changeset
2252 (let (elem array name)
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2253 (dotimes (i (length full))
52160
833b56d6e12d (list-diary-entries-hook, diary-display-hook, nongregorian-diary-listing-hook)
Glenn Morris <rgm@gnu.org>
parents: 52115
diff changeset
2254 (setq name (aref full i)
833b56d6e12d (list-diary-entries-hook, diary-display-hook, nongregorian-diary-listing-hook)
Glenn Morris <rgm@gnu.org>
parents: 52115
diff changeset
2255 elem (or (aref abbrev i)
833b56d6e12d (list-diary-entries-hook, diary-display-hook, nongregorian-diary-listing-hook)
Glenn Morris <rgm@gnu.org>
parents: 52115
diff changeset
2256 (substring name 0
833b56d6e12d (list-diary-entries-hook, diary-display-hook, nongregorian-diary-listing-hook)
Glenn Morris <rgm@gnu.org>
parents: 52115
diff changeset
2257 (min calendar-abbrev-length (length name))))
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2258 elem (format "%s%s" elem (if period "." ""))
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2259 array (append array (list elem))))
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2260 (vconcat array)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2261
48366
9dad713d153a Patch of Alan Shutko <ats@acm.org> by way of rms.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47333
diff changeset
2262 (defvar calendar-font-lock-keywords
48683
ead34b521994 (facemenu-unlisted-faces): Only update after facemenu was loaded.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 48366
diff changeset
2263 `((,(concat (regexp-opt (mapcar 'identity calendar-month-name-array) t)
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2264 " -?[0-9]+")
48683
ead34b521994 (facemenu-unlisted-faces): Only update after facemenu was loaded.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 48366
diff changeset
2265 . font-lock-function-name-face) ; month and year
ead34b521994 (facemenu-unlisted-faces): Only update after facemenu was loaded.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 48366
diff changeset
2266 (,(regexp-opt
ead34b521994 (facemenu-unlisted-faces): Only update after facemenu was loaded.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 48366
diff changeset
2267 (list (substring (aref calendar-day-name-array 6) 0 2)
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2268 (substring (aref calendar-day-name-array 0) 0 2)))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2269 ;; Saturdays and Sundays are highlighted differently.
48683
ead34b521994 (facemenu-unlisted-faces): Only update after facemenu was loaded.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 48366
diff changeset
2270 . font-lock-comment-face)
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2271 ;; First two chars of each day are used in the calendar.
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2272 (,(regexp-opt (mapcar (lambda (x) (substring x 0 2))
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2273 calendar-day-name-array))
48683
ead34b521994 (facemenu-unlisted-faces): Only update after facemenu was loaded.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 48366
diff changeset
2274 . font-lock-reference-face))
48366
9dad713d153a Patch of Alan Shutko <ats@acm.org> by way of rms.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47333
diff changeset
2275 "Default keywords to highlight in Calendar mode.")
9dad713d153a Patch of Alan Shutko <ats@acm.org> by way of rms.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47333
diff changeset
2276
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2277 (defun calendar-day-name (date &optional abbrev absolute)
48717
b243692710b4 (calendar-day-name): Move defn down.
Richard M. Stallman <rms@gnu.org>
parents: 48683
diff changeset
2278 "Return a string with the name of the day of the week of DATE.
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2279 DATE should be a list in the format (MONTH DAY YEAR), unless the
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2280 optional argument ABSOLUTE is non-nil, in which case DATE should
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2281 be an integer in the range 0 to 6 corresponding to the day of the
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2282 week. Day names are taken from the variable `calendar-day-name-array',
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2283 unless the optional argument ABBREV is non-nil, in which case
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2284 the variable `calendar-day-abbrev-array' is used."
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2285 (aref (if abbrev
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2286 (calendar-abbrev-construct calendar-day-abbrev-array
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2287 calendar-day-name-array)
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2288 calendar-day-name-array)
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2289 (if absolute date (calendar-day-of-week date))))
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2290
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2291 (defun calendar-month-name (month &optional abbrev)
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2292 "Return a string with the name of month number MONTH.
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2293 Months are numbered from one. Month names are taken from the
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2294 variable `calendar-month-name-array', unless the optional
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2295 argument ABBREV is non-nil, in which case
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2296 `calendar-month-abbrev-array' is used."
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2297 (aref (if abbrev
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2298 (calendar-abbrev-construct calendar-month-abbrev-array
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2299 calendar-month-name-array)
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2300 calendar-month-name-array)
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2301 (1- month)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2302
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2303 (defun calendar-day-of-week (date)
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
2304 "Return the day-of-the-week index of DATE, 0 for Sunday, 1 for Monday, etc.
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
2305 DATE is a list of the form (month day year). A negative year is
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
2306 interpreted as BC; -1 being 1 BC, and so on."
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
2307 (mod (calendar-absolute-from-gregorian date) 7))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2308
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2309 (defun calendar-unmark ()
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2310 "Delete all diary/holiday marks/highlighting from the calendar."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2311 (interactive)
92988
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
2312 (setq mark-holidays-in-calendar nil
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
2313 mark-diary-entries-in-calendar nil)
93492
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2314 (with-current-buffer calendar-buffer
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2315 (mapc 'delete-overlay (overlays-in (point-min) (point-max)))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2316
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2317 (defun calendar-date-is-visible-p (date)
93449
64521597b7dd (increment-calendar-month): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93374
diff changeset
2318 "Return non-nil if DATE is valid and is visible in the calendar window."
64521597b7dd (increment-calendar-month): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93374
diff changeset
2319 (and (calendar-date-is-valid-p date)
64521597b7dd (increment-calendar-month): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93374
diff changeset
2320 (< (abs (calendar-interval
64521597b7dd (increment-calendar-month): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93374
diff changeset
2321 displayed-month displayed-year
64521597b7dd (increment-calendar-month): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93374
diff changeset
2322 (extract-calendar-month date) (extract-calendar-year date)))
64521597b7dd (increment-calendar-month): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93374
diff changeset
2323 2)))
92530
04183df0b71f (calendar-date-is-legal-p): New obsolete alias.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
2324
93497
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2325 (defun calendar-nongregorian-visible-p (month day toabs fromabs switch)
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2326 "Return non-nil if MONTH, DAY is visible in the calendar window.
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2327 MONTH and DAY are in some non-Gregorian calendar system. The
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2328 functions TOABS and FROMABS convert that system to and from
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2329 absolute, respectively. SWITCH is a function that takes a single
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2330 argument (a local month number). It applies when the local year
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2331 changes across the calendar window, and returns non-nil if the
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2332 specified month should be associated with the higher year.
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2333 Returns the corresponding Gregorian date."
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2334 ;; We need to choose the local year associated with month and day
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2335 ;; that might make them visible.
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2336 (let* ((m1 displayed-month)
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2337 (y1 displayed-year)
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2338 (m2 displayed-month)
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2339 (y2 displayed-year)
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2340 ;; Absolute date of first/last dates in calendar window.
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2341 (start-date (progn
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2342 (increment-calendar-month m1 y1 -1)
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2343 (calendar-absolute-from-gregorian (list m1 1 y1))))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2344 (end-date (progn
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2345 (increment-calendar-month m2 y2 1)
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2346 (calendar-absolute-from-gregorian
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2347 (list m2 (calendar-last-day-of-month m2 y2) y2))))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2348 ;; Local date of first/last date in calendar window.
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2349 (local-start (funcall fromabs start-date))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2350 (local-end (funcall fromabs end-date))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2351 ;; Local year of first/last dates.
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2352 ;; Can only differ if displayed-month = 12, 1, 2.
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2353 (local-y1 (extract-calendar-year local-start))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2354 (local-y2 (extract-calendar-year local-end))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2355 ;; Choose which year might be visible in the window.
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2356 ;; Obviously it only matters when y1 and y2 differ, ie
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2357 ;; when the _local_ new year is visible.
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2358 (year (if (funcall switch month) local-y2 local-y1))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2359 (date (calendar-gregorian-from-absolute
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2360 (funcall toabs (list month day year)))))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2361 (if (calendar-date-is-visible-p date)
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2362 date)))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2363
92530
04183df0b71f (calendar-date-is-legal-p): New obsolete alias.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
2364 (defun calendar-date-is-valid-p (date)
60922
4e6ed80c0af2 * calendar/calendar.el: Replace `legal' with `valid'.
Werner LEMBERG <wl@gnu.org>
parents: 60649
diff changeset
2365 "Return t if DATE is a valid date."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2366 (let ((month (extract-calendar-month date))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2367 (day (extract-calendar-day date))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2368 (year (extract-calendar-year date)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2369 (and (<= 1 month) (<= month 12)
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2370 ;; (calendar-read-date t) used to return a date with day = nil.
70581
1eaae4fee224 (calendar-basic-setup): Set day to 1 in
Glenn Morris <rgm@gnu.org>
parents: 69356
diff changeset
2371 ;; Should not be valid (?), since many funcs prob assume integer.
1eaae4fee224 (calendar-basic-setup): Set day to 1 in
Glenn Morris <rgm@gnu.org>
parents: 69356
diff changeset
2372 ;; (calendar-read-date 'noday) returns (month year), which
1eaae4fee224 (calendar-basic-setup): Set day to 1 in
Glenn Morris <rgm@gnu.org>
parents: 69356
diff changeset
2373 ;; currently results in extract-calendar-year returning nil.
1eaae4fee224 (calendar-basic-setup): Set day to 1 in
Glenn Morris <rgm@gnu.org>
parents: 69356
diff changeset
2374 day year (<= 1 day) (<= day (calendar-last-day-of-month month year))
60922
4e6ed80c0af2 * calendar/calendar.el: Replace `legal' with `valid'.
Werner LEMBERG <wl@gnu.org>
parents: 60649
diff changeset
2375 ;; BC dates left as non-valid, to suppress errors from
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
2376 ;; complex holiday algorithms not suitable for years BC.
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
2377 ;; Note there are side effects on calendar navigation.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2378 (<= 1 year))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2379
92530
04183df0b71f (calendar-date-is-legal-p): New obsolete alias.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
2380 (define-obsolete-function-alias 'calendar-date-is-legal-p
04183df0b71f (calendar-date-is-legal-p): New obsolete alias.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
2381 'calendar-date-is-valid-p "23.1")
04183df0b71f (calendar-date-is-legal-p): New obsolete alias.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
2382
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2383 (defun calendar-date-equal (date1 date2)
31730
719a230f8091 Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31671
diff changeset
2384 "Return t if the DATE1 and DATE2 are the same."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2385 (and
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2386 (= (extract-calendar-month date1) (extract-calendar-month date2))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2387 (= (extract-calendar-day date1) (extract-calendar-day date2))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2388 (= (extract-calendar-year date1) (extract-calendar-year date2))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2389
93504
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2390 (defun calendar-make-temp-face (attrlist)
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2391 "Return a temporary face based on the attributes in ATTRLIST.
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2392 ATTRLIST is a list with elements of the form :face face :foreground color."
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2393 (let ((temp-face (make-symbol
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2394 (mapconcat (lambda (sym)
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2395 (cond
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2396 ((symbolp sym) (symbol-name sym))
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2397 ((numberp sym) (number-to-string sym))
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2398 (t sym)))
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2399 attrlist "")))
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2400 (faceinfo attrlist))
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2401 (make-face temp-face)
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2402 ;; Remove :face info, copy into temp-face.
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2403 (while (setq faceinfo (memq :face faceinfo))
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2404 ;; FIXME is there any point doing this multiple times, or could we
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2405 ;; just take the last?
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2406 (condition-case nil
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2407 (copy-face (intern-soft (cadr faceinfo)) temp-face)
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2408 (error nil))
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2409 (setq faceinfo (cddr faceinfo)))
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2410 (setq attrlist (delq nil attrlist))
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2411 ;; Apply the font aspects.
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2412 (apply 'set-face-attribute temp-face nil attrlist)
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2413 temp-face))
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2414
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2415 (defun mark-visible-calendar-date (date &optional mark)
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2416 "Mark DATE in the calendar window with MARK.
49736
dd8404d4fed8 (diary-face-attrs): New custom.
Juanma Barranquero <lekktu@gmail.com>
parents: 49350
diff changeset
2417 MARK is a single-character string, a list of face attributes/values, or a face.
48366
9dad713d153a Patch of Alan Shutko <ats@acm.org> by way of rms.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47333
diff changeset
2418 MARK defaults to `diary-entry-marker'."
92530
04183df0b71f (calendar-date-is-legal-p): New obsolete alias.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
2419 (if (calendar-date-is-valid-p date)
65620
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2420 (with-current-buffer calendar-buffer
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2421 (save-excursion
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2422 (calendar-cursor-to-visible-date date)
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2423 (setq mark
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2424 (or (and (stringp mark) (= (length mark) 1) mark) ; single-char
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2425 (and (listp mark) (> (length mark) 0) mark) ; attr list
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2426 (and (facep mark) mark) ; face-name
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2427 diary-entry-marker))
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2428 (cond
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2429 ;; Face or an attr-list that contained a face.
65620
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2430 ((facep mark)
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2431 (overlay-put
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2432 (make-overlay (1- (point)) (1+ (point))) 'face mark))
93492
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2433 ;; Single-character mark, goes after the date.
65620
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2434 ((and (stringp mark) (= (length mark) 1))
93492
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2435 (overlay-put
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2436 (make-overlay (1+ (point)) (+ 2 (point))) 'display mark))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2437 (t ; attr list
93504
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2438 (overlay-put
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2439 (make-overlay (1- (point)) (1+ (point))) 'face
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2440 (calendar-make-temp-face mark))))))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2441
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2442 (defun calendar-star-date ()
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2443 "Replace the date under the cursor in the calendar window with asterisks.
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2444 You might want to add this function to `today-visible-calendar-hook'."
93492
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2445 (unless (catch 'found
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2446 (dolist (ol (overlays-at (point)))
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2447 (and (overlay-get ol 'calendar-star)
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2448 (throw 'found t))))
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2449 (let ((ol (make-overlay (1- (point)) (point))))
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2450 (overlay-put ol 'display "*")
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2451 (overlay-put ol 'calendar-star t)
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2452 ;; Use copy-sequence to avoid merging of identical 'display props.
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2453 ;; Use two overlays so as not to mess up
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2454 ;; calendar-cursor-to-nearest-date (and calendar-forward-day).
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2455 (overlay-put (setq ol (make-overlay (point) (1+ (point))))
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2456 'display (copy-sequence "*"))
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2457 (overlay-put ol 'calendar-star t))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2458
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2459 (defun calendar-mark-today ()
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2460 "Mark the date under the cursor in the calendar window.
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2461 The date is marked with `calendar-today-marker'. You might want to add
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2462 this function to `today-visible-calendar-hook'."
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2463 (mark-visible-calendar-date (calendar-cursor-to-date) calendar-today-marker))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2464
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2465 (defun calendar-date-compare (date1 date2)
31730
719a230f8091 Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31671
diff changeset
2466 "Return t if DATE1 is before DATE2, nil otherwise.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2467 The actual dates are in the car of DATE1 and DATE2."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2468 (< (calendar-absolute-from-gregorian (car date1))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2469 (calendar-absolute-from-gregorian (car date2))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2470
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2471 (defun calendar-date-string (date &optional abbreviate nodayname)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2472 "A string form of DATE, driven by the variable `calendar-date-display-form'.
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2473 An optional parameter ABBREVIATE, when non-nil, causes the month
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2474 and day names to be abbreviated as specified by
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2475 `calendar-month-abbrev-array' and `calendar-day-abbrev-array',
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2476 respectively. An optional parameter NODAYNAME, when t, omits the
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2477 name of the day of the week."
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2478 (let* ((dayname (unless nodayname (calendar-day-name date abbreviate)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2479 (month (extract-calendar-month date))
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2480 (monthname (calendar-month-name month abbreviate))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2481 (day (int-to-string (extract-calendar-day date)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2482 (month (int-to-string month))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2483 (year (int-to-string (extract-calendar-year date))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2484 (mapconcat 'eval calendar-date-display-form "")))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2485
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2486 (defun calendar-dayname-on-or-before (dayname date)
31730
719a230f8091 Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31671
diff changeset
2487 "Return the absolute date of the DAYNAME on or before absolute DATE.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2488 DAYNAME=0 means Sunday, DAYNAME=1 means Monday, and so on.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2489
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2490 Note: Applying this function to d+6 gives us the DAYNAME on or after an
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2491 absolute day d. Similarly, applying it to d+3 gives the DAYNAME nearest to
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2492 absolute date d, applying it to d-1 gives the DAYNAME previous to absolute
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2493 date d, and applying it to d+7 gives the DAYNAME following absolute date d."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2494 (- date (% (- date dayname) 7)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2495
4658
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2496 (defun calendar-nth-named-absday (n dayname month year &optional day)
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2497 "The absolute date of Nth DAYNAME in MONTH, YEAR before/after optional DAY.
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2498 A DAYNAME of 0 means Sunday, 1 means Monday, and so on. If N<0,
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2499 return the Nth DAYNAME before MONTH DAY, YEAR (inclusive).
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2500 If N>0, return the Nth DAYNAME after MONTH DAY, YEAR (inclusive).
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2501
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2502 If DAY is omitted, it defaults to 1 if N>0, and MONTH's last day otherwise."
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2503 (if (> n 0)
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2504 (+ (* 7 (1- n))
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2505 (calendar-dayname-on-or-before
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2506 dayname
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2507 (+ 6 (calendar-absolute-from-gregorian
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2508 (list month (or day 1) year)))))
4658
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2509 (+ (* 7 (1+ n))
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2510 (calendar-dayname-on-or-before
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2511 dayname
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2512 (calendar-absolute-from-gregorian
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2513 (list month
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2514 (or day (calendar-last-day-of-month month year))
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2515 year))))))
4658
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2516
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2517 (defun calendar-nth-named-day (n dayname month year &optional day)
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2518 "The date of Nth DAYNAME in MONTH, YEAR before/after optional DAY.
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2519 A DAYNAME of 0 means Sunday, 1 means Monday, and so on. If N<0,
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2520 return the Nth DAYNAME before MONTH DAY, YEAR (inclusive).
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2521 If N>0, return the Nth DAYNAME after MONTH DAY, YEAR (inclusive).
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2522
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2523 If DAY is omitted, it defaults to 1 if N>0, and MONTH's last day otherwise."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2524 (calendar-gregorian-from-absolute
4658
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2525 (calendar-nth-named-absday n dayname month year day)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2526
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2527 (defun calendar-day-of-year-string (&optional date)
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2528 "String of day number of year of Gregorian DATE.
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2529 Defaults to today's date if DATE is not given."
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2530 (let* ((d (or date (calendar-current-date)))
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2531 (year (extract-calendar-year d))
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2532 (day (calendar-day-number d))
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2533 (days-remaining (- (calendar-day-number (list 12 31 year)) day)))
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2534 (format "Day %d of %d; %d day%s remaining in the year"
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2535 day year days-remaining (if (= days-remaining 1) "" "s"))))
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2536
93091
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2537 (defun calendar-other-dates (date)
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2538 "Return a list of strings giving Gregorian DATE in other calendars.
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2539 DATE is (month day year). Calendars that do not apply are omitted."
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2540 (let (odate)
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2541 (delq nil
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2542 (list
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2543 (calendar-day-of-year-string date)
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2544 (format "ISO date: %s" (calendar-iso-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2545 (format "Julian date: %s"
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2546 (calendar-julian-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2547 (format "Astronomical (Julian) day number (at noon UTC): %s.0"
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2548 (calendar-astro-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2549 (format "Fixed (RD) date: %s"
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2550 (calendar-absolute-from-gregorian date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2551 (format "Hebrew date (before sunset): %s"
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2552 (calendar-hebrew-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2553 (format "Persian date: %s"
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2554 (calendar-persian-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2555 (unless (string-equal
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2556 (setq odate (calendar-islamic-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2557 "")
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2558 (format "Islamic date (before sunset): %s" odate))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2559 (unless (string-equal
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2560 (setq odate (calendar-bahai-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2561 "")
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2562 (format "Baha'i date: %s" odate))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2563 (format "Chinese date: %s"
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2564 (calendar-chinese-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2565 (unless (string-equal
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2566 (setq odate (calendar-coptic-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2567 "")
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2568 (format "Coptic date: %s" odate))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2569 (unless (string-equal
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2570 (setq odate (calendar-ethiopic-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2571 "")
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2572 (format "Ethiopic date: %s" odate))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2573 (unless (string-equal
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2574 (setq odate (calendar-french-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2575 "")
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2576 (format "French Revolutionary date: %s" odate))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2577 (format "Mayan date: %s"
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2578 (calendar-mayan-date-string date))))))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2579
22261
329f546a73ec Add function to show equivalent date on all available calendars (in parallel
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 22028
diff changeset
2580 (defun calendar-print-other-dates ()
329f546a73ec Add function to show equivalent date on all available calendars (in parallel
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 22028
diff changeset
2581 "Show dates on other calendars for date under the cursor."
329f546a73ec Add function to show equivalent date on all available calendars (in parallel
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 22028
diff changeset
2582 (interactive)
93091
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2583 (let ((date (calendar-cursor-to-date t)))
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2584 (calendar-in-read-only-buffer other-calendars-buffer
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2585 (calendar-set-mode-line (format "%s (Gregorian)"
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2586 (calendar-date-string date)))
93091
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2587 (insert (mapconcat 'identity (calendar-other-dates date) "\n")))))
22261
329f546a73ec Add function to show equivalent date on all available calendars (in parallel
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 22028
diff changeset
2588
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
2589 (defun calendar-print-day-of-year ()
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2590 "Show day number in year/days remaining in year for date under the cursor."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2591 (interactive)
87170
e50a2e215441 * erc-stamp.el (erc-echo-timestamp):
David Kastrup <dak@gnu.org>
parents: 86493
diff changeset
2592 (message "%s" (calendar-day-of-year-string (calendar-cursor-to-date t))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2593
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
2594 (defun calendar-set-mode-line (str)
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
2595 "Set mode line to STR, centered, surrounded by dashes."
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
2596 (let* ((edges (window-edges))
54536
934d92d8b496 (calendar-set-mode-line): Use total available mode-line width, rather
Glenn Morris <rgm@gnu.org>
parents: 54128
diff changeset
2597 ;; As per doc of window-width, total visible mode-line length.
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2598 (width (- (nth 2 edges) (car edges))))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
2599 (setq mode-line-format
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
2600 (if buffer-file-name
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
2601 `("-" mode-line-modified
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
2602 ,(calendar-string-spread (list str) ?- (- width 6))
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
2603 "---")
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
2604 (calendar-string-spread (list str) ?- width)))))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
2605
92551
a9c1d203dd4a (calendar-version): Use emacs-version and make it obsolete. Move to end.
Glenn Morris <rgm@gnu.org>
parents: 92530
diff changeset
2606 (defun calendar-version ()
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2607 "Display the Calendar version."
92551
a9c1d203dd4a (calendar-version): Use emacs-version and make it obsolete. Move to end.
Glenn Morris <rgm@gnu.org>
parents: 92530
diff changeset
2608 (interactive)
a9c1d203dd4a (calendar-version): Use emacs-version and make it obsolete. Move to end.
Glenn Morris <rgm@gnu.org>
parents: 92530
diff changeset
2609 (message "GNU Emacs %s" emacs-version))
a9c1d203dd4a (calendar-version): Use emacs-version and make it obsolete. Move to end.
Glenn Morris <rgm@gnu.org>
parents: 92530
diff changeset
2610
a9c1d203dd4a (calendar-version): Use emacs-version and make it obsolete. Move to end.
Glenn Morris <rgm@gnu.org>
parents: 92530
diff changeset
2611 (make-obsolete 'calendar-version 'emacs-version "23.1")
a9c1d203dd4a (calendar-version): Use emacs-version and make it obsolete. Move to end.
Glenn Morris <rgm@gnu.org>
parents: 92530
diff changeset
2612
a9c1d203dd4a (calendar-version): Use emacs-version and make it obsolete. Move to end.
Glenn Morris <rgm@gnu.org>
parents: 92530
diff changeset
2613
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
2614 (run-hooks 'calendar-load-hook)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2615
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2616 (provide 'calendar)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2617
65477
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
2618 ;; Local variables:
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
2619 ;; byte-compile-dynamic: t
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
2620 ;; End:
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
2621
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
2622 ;; arch-tag: 19c61596-c8fb-4c69-bcf1-7dd739919cd8
675
85fd29f25c75 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 628
diff changeset
2623 ;;; calendar.el ends here