annotate lisp/calendar/calendar.el @ 93844:bf9ef749c23e

Replace int-to-string with number-to-string.
author Glenn Morris <rgm@gnu.org>
date Tue, 08 Apr 2008 07:07:17 +0000
parents f25074f90473
children e4a7737b7ba2
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
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
104 ;; displayed-month, displayed-year: bound in calendar-generate, the
92969
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.
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
108 ;; date, entry: bound in diary-list-sexp-entries (qv)
92969
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:
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
111 ;; diary-entries-list: use in d-l, appt.el, and by diary-add-to-list
92969
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
93714
6b2af597432a Require loaddef file rather than loading it.
Glenn Morris <rgm@gnu.org>
parents: 93647
diff changeset
119 (require 'cal-loaddefs)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
120
93714
6b2af597432a Require loaddef file rather than loading it.
Glenn Morris <rgm@gnu.org>
parents: 93647
diff changeset
121 ;; Avoid recursive load of calendar when loading cal-menu. Yuck.
93227
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
122 (provide 'calendar)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
123 (require 'cal-menu)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
124
31669
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
125
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
126 (defgroup calendar nil
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
127 "Calendar and time management support."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
128 :group 'applications)
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
129
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
130 (defgroup calendar-hooks nil
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
131 "Calendar hooks."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
132 :prefix "calendar-"
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
133 :group 'calendar)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
134
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
135 (defgroup diary nil
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
136 "Emacs diary."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
137 :group 'calendar)
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
138
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
139 (defgroup holidays nil
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
140 "Holidays support in calendar."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
141 :group 'calendar
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
142 :prefix "calendar-"
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
143 :group 'local)
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
144
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
145
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
146 (defcustom calendar-offset 0
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
147 "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
148 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
149 +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
150 the screen."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
151 :type 'integer
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
152 :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
153
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
154 (defcustom calendar-setup nil
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
155 "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
156 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
157 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
158 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
159 any other value the current frame is used. Using any of the first
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
160 three options overrides the value of `calendar-view-diary-initially-flag'."
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
161 :type '(choice
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
162 (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
163 (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
164 (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
165 (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
166 :group 'calendar)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
167
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
168 (defcustom calendar-minimum-window-height 8
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
169 "Minimum height `calendar-generate-window' should use for calendar window."
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
170 :type 'integer
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
171 :version "22.1"
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
172 :group 'calendar)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
173
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
174 (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
175 "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
176 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
177
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
178 If you change this variable directly (without using customize)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
179 after starting `calendar', you should call `calendar-redraw' to
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
180 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
181 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
182 :type 'integer
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
183 ;; 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
184 ;; 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
185 ;; 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
186 :initialize 'custom-initialize-default
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
187 :set (lambda (sym val)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
188 (set sym val)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
189 (calendar-redraw))
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
190 :group 'calendar)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
191
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
192 (defcustom calendar-view-diary-initially-flag nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
193 "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
194 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
195 if the current date is visible. The number of days of diary entries displayed
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
196 is governed by the variable `diary-number-of-entries'. This variable can
53559
ba8b837c072c Update copyright.
Glenn Morris <rgm@gnu.org>
parents: 52723
diff changeset
197 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
198 :type 'boolean
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
199 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
200
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
201 (define-obsolete-variable-alias 'view-diary-entries-initially
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
202 'calendar-view-diary-initially-flag "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
203
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
204 (defcustom calendar-mark-diary-entries-flag 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
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
210 (define-obsolete-variable-alias 'mark-diary-entries-in-calendar
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
211 'calendar-mark-diary-entries-flag "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
212
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
213 (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
214 "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
215 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
216 :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
217 :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
218 :group 'view
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
219 :group 'calendar)
26427
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
220
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
221 (defface calendar-today
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
222 '((t (:underline t)))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
223 "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
224 :group 'diary)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
225 ;; 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
226 (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
227
63221
6e968f79cfbc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-385
Miles Bader <miles@gnu.org>
parents: 62779
diff changeset
228 (defface diary
61394
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 61148
diff changeset
229 '((((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
230 :foreground "red1")
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 61148
diff changeset
231 (((class color) (background light))
33208
4360c704c17f Revoke the change.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents: 33205
diff changeset
232 :foreground "red")
61394
31aa9a390538 * mh-customize.el (mh-speedbar-selected-folder-face): Special case
Dan Nicolaescu <dann@ics.uci.edu>
parents: 61148
diff changeset
233 (((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
234 :foreground "yellow1")
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
235 (((class color) (background dark))
33208
4360c704c17f Revoke the change.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents: 33205
diff changeset
236 :foreground "yellow")
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
237 (t
42456
8a4077ab418c (various face definitions): Use :weight, not :bold.
Richard M. Stallman <rms@gnu.org>
parents: 41577
diff changeset
238 :weight bold))
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
239 "Face for highlighting diary entries."
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
240 :group 'diary)
92988
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
241 ;; 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
242 (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
243
6e968f79cfbc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-385
Miles Bader <miles@gnu.org>
parents: 62779
diff changeset
244 (defface holiday
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
245 '((((class color) (background light))
33208
4360c704c17f Revoke the change.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents: 33205
diff changeset
246 :background "pink")
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
247 (((class color) (background dark))
33208
4360c704c17f Revoke the change.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents: 33205
diff changeset
248 :background "chocolate4")
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
249 (t
33208
4360c704c17f Revoke the change.
ShengHuo ZHU <zsh@cs.rochester.edu>
parents: 33205
diff changeset
250 :inverse-video t))
33160
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
251 "Face for indicating dates that have holidays."
8006eaf2db42 (diary-face, calendar-today-face, holiday-face):
Miles Bader <miles@gnu.org>
parents: 33114
diff changeset
252 :group 'diary)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
253 ;; 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
254 (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
255
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
256 ;; These don't respect changes in font-lock-mode after loading.
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
257 (defcustom diary-entry-marker (if (and font-lock-mode (display-color-p))
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
258 'diary
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
259 "+")
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
260 "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
261 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
262 :type '(choice string face)
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
263 :group 'diary)
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
264
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
265 (defcustom calendar-today-marker (if (and font-lock-mode (display-color-p))
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
266 'calendar-today
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
267 "=")
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
268 "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
269 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
270 Used by `calendar-mark-today'."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
271 :type '(choice string face)
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
272 :group 'calendar)
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
273
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
274 (defcustom calendar-holiday-marker (if (and font-lock-mode (display-color-p))
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
275 'holiday
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
276 "*")
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
277 "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
278 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
279 :type '(choice string face)
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
280 :group 'calendar)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
281
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
282 (defcustom calendar-view-holidays-initially-flag nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
283 "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
284 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
285 displayed."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
286 :type 'boolean
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
287 :group 'holidays)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
288
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
289 (define-obsolete-variable-alias 'view-calendar-holidays-initially
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
290 'calendar-view-holidays-initially-flag "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
291
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
292 (defcustom calendar-mark-holidays-flag nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
293 "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
294 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
295 :type 'boolean
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
296 :group 'holidays)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
297
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
298 (define-obsolete-variable-alias 'mark-holidays-in-calendar
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
299 'calendar-mark-holidays-flag "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
300
76752
f6dad15ba551 (calendar-mode-hook): Declare it.
Glenn Morris <rgm@gnu.org>
parents: 76641
diff changeset
301 (defcustom calendar-mode-hook nil
f6dad15ba551 (calendar-mode-hook): Declare it.
Glenn Morris <rgm@gnu.org>
parents: 76641
diff changeset
302 "Hook run when entering `calendar-mode'."
f6dad15ba551 (calendar-mode-hook): Declare it.
Glenn Morris <rgm@gnu.org>
parents: 76641
diff changeset
303 :type 'hook
f6dad15ba551 (calendar-mode-hook): Declare it.
Glenn Morris <rgm@gnu.org>
parents: 76641
diff changeset
304 :group 'calendar-hooks)
f6dad15ba551 (calendar-mode-hook): Declare it.
Glenn Morris <rgm@gnu.org>
parents: 76641
diff changeset
305
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
306 (defcustom calendar-load-hook nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
307 "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
308 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
309 :type 'hook
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
310 :group 'calendar-hooks)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
311
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
312 (defcustom calendar-initial-window-hook nil
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
313 "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
314 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
315 to be called again."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
316 :type 'hook
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
317 :group 'calendar-hooks)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
318
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
319 (define-obsolete-variable-alias 'initial-calendar-window-hook
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
320 'calendar-initial-window-hook "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
321
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
322 (defcustom calendar-today-visible-hook nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
323 "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
324 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
325 To replace the date with asterisks, add the function `calendar-star-date'.
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
326 See also `calendar-today-invisible-hook'.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
327
93043
0e73f340ef25 (initial-calendar-window-hook, today-visible-calendar-hook): Doc fixes.
Glenn Morris <rgm@gnu.org>
parents: 93026
diff changeset
328 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
329 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
330 :type 'hook
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
331 :options '(calendar-mark-today calendar-star-date)
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
332 :group 'calendar-hooks)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
333
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
334 (define-obsolete-variable-alias 'today-visible-calendar-hook
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
335 'calendar-today-visible-hook "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
336
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
337 (defcustom calendar-today-invisible-hook nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
338 "List of functions called whenever the current date is not visible.
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
339 See also `calendar-today-visible-hook'."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
340 :type 'hook
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
341 :group 'calendar-hooks)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
342
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
343 (define-obsolete-variable-alias 'today-invisible-calendar-hook
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
344 'calendar-today-invisible-hook "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
345
25410
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
346 (defcustom calendar-move-hook nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
347 "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
348 For example,
25410
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
349
65477
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
350 (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
351
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
352 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
353 :type 'hook
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
354 :group 'calendar-hooks)
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
355
3ab4413f7549 (calendar-move-hook): New hook.
Richard M. Stallman <rms@gnu.org>
parents: 25154
diff changeset
356 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
357 (defcustom diary-file "~/diary"
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
358 "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
359
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
360 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
361 specified by the variable `diary-date-forms', which by default
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
362 uses the forms of `diary-american-date-forms':
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
363
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
364 MONTH/DAY
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
365 MONTH/DAY/YEAR
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
366 MONTHNAME DAY
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
367 MONTHNAME DAY, YEAR
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
368 DAYNAME
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
369
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
370 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
371 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
372 number and may be written in full or abbreviated to the final two
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
373 digits (if `diary-abbreviated-year-flag' is non-nil). MONTHNAME
92895
379d912c3710 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 92858
diff changeset
374 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
375 `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
376 abbreviated (as specified by `calendar-month-abbrev-array' and
93278
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
377 `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
378 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
379 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
380 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
381 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
382
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
383 You can customize `diary-date-forms' to your preferred format.
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
384 Three default styles are provided: `diary-american-date-forms',
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
385 `diary-european-date-forms', and `diary-iso-date-forms'.
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
386 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
387 .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
388
93278
58366e03a762 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93227
diff changeset
389 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
390 \(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
391 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
392
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
393 Multiline diary entries are made by indenting lines after the first with
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
394 either a TAB or one or more spaces.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
395
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
396 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
397 entries (in the default American style):
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 12/22/1988 Twentieth wedding anniversary!!
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
400 &1/1. Happy New Year!
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
401 10/22 Ruth's birthday.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
402 21: Payday
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
403 Tuesday--weekly meeting with grad students at 10am
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
404 Supowit, Shen, Bitner, and Kapoor to attend.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
405 1/13/89 Friday the thirteenth!!
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
406 &thu 4pm squash game with Lloyd.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
407 mar 16 Dad's birthday
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
408 April 15, 1989 Income tax due.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
409 &* 15 time cards due.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
410
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
411 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
412 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
413 diary window; only the continuation lines is shown. For example, the
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
414 single diary entry
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
415
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
416 02/11/1989
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
417 Bill Blattner visits Princeton today
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
418 2pm Cognitive Studies Committee meeting
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
419 2:30-5:30 Lizzie at Lawrenceville for `Group Initiative'
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
420 4:00pm Jamie Tappenden
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
421 7:30pm Dinner at George and Ed's for Alan Ryan
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
422 7:30-10:00pm dance at Stewart Country Day School
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
423
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
424 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
425 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
426 used with more than one day's entries displayed.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
427
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
428 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
429
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
430 %%(diary-block 11 1 1990 11 10 1990) Vacation
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
431
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
432 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
433 November 10, 1990. See the documentation for the function
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
434 `diary-list-sexp-entries' for more details.
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
435
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
436 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
437 calendar are also possible, but because these are somewhat slow, they
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
438 are ignored unless you set the `diary-nongregorian-listing-hook' and
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
439 the `diary-nongregorian-marking-hook' appropriately. See the
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
440 documentation of these hooks for details.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
441
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
442 Diary files can contain directives to include the contents of other files; for
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
443 details, see the documentation for the variable `diary-list-entries-hook'."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
444 :type 'file
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
445 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
446
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
447 ;; 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
448 (defcustom diary-nonmarking-symbol "&"
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
449 "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
450 :type 'string
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
451 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
452
93730
4228779bdf81 (diary-hebrew-entry-symbol): Rename hebrew-diary-entry-symbol.
Glenn Morris <rgm@gnu.org>
parents: 93719
diff changeset
453 (defcustom diary-hebrew-entry-symbol "H"
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
454 "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
455 :type 'string
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
456 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
457
93730
4228779bdf81 (diary-hebrew-entry-symbol): Rename hebrew-diary-entry-symbol.
Glenn Morris <rgm@gnu.org>
parents: 93719
diff changeset
458 (define-obsolete-variable-alias 'hebrew-diary-entry-symbol
4228779bdf81 (diary-hebrew-entry-symbol): Rename hebrew-diary-entry-symbol.
Glenn Morris <rgm@gnu.org>
parents: 93719
diff changeset
459 'diary-hebrew-entry-symbol "23.1")
4228779bdf81 (diary-hebrew-entry-symbol): Rename hebrew-diary-entry-symbol.
Glenn Morris <rgm@gnu.org>
parents: 93719
diff changeset
460
4228779bdf81 (diary-hebrew-entry-symbol): Rename hebrew-diary-entry-symbol.
Glenn Morris <rgm@gnu.org>
parents: 93719
diff changeset
461 (defcustom diary-islamic-entry-symbol "I"
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
462 "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
463 :type 'string
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
464 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
465
93730
4228779bdf81 (diary-hebrew-entry-symbol): Rename hebrew-diary-entry-symbol.
Glenn Morris <rgm@gnu.org>
parents: 93719
diff changeset
466 (define-obsolete-variable-alias 'islamic-diary-entry-symbol
4228779bdf81 (diary-hebrew-entry-symbol): Rename hebrew-diary-entry-symbol.
Glenn Morris <rgm@gnu.org>
parents: 93719
diff changeset
467 'diary-islamic-entry-symbol "23.1")
4228779bdf81 (diary-hebrew-entry-symbol): Rename hebrew-diary-entry-symbol.
Glenn Morris <rgm@gnu.org>
parents: 93719
diff changeset
468
4228779bdf81 (diary-hebrew-entry-symbol): Rename hebrew-diary-entry-symbol.
Glenn Morris <rgm@gnu.org>
parents: 93719
diff changeset
469 (defcustom diary-bahai-entry-symbol "B"
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
470 "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
471 :type 'string
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
472 :group 'diary)
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
473
93730
4228779bdf81 (diary-hebrew-entry-symbol): Rename hebrew-diary-entry-symbol.
Glenn Morris <rgm@gnu.org>
parents: 93719
diff changeset
474 (define-obsolete-variable-alias 'bahai-diary-entry-symbol
4228779bdf81 (diary-hebrew-entry-symbol): Rename hebrew-diary-entry-symbol.
Glenn Morris <rgm@gnu.org>
parents: 93719
diff changeset
475 'diary-bahai-entry-symbol "23.1")
4228779bdf81 (diary-hebrew-entry-symbol): Rename hebrew-diary-entry-symbol.
Glenn Morris <rgm@gnu.org>
parents: 93719
diff changeset
476
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
477 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
478 (defcustom european-calendar-style nil
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
479 "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
480 In this case, a date like 1/2/1990 would be interpreted as
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
481 February 1, 1990. See `diary-european-date-forms' for the
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
482 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
483
3dbfd59b44b5 (european-calendar-style): Call european-calendar or american-calendar
Glenn Morris <rgm@gnu.org>
parents: 71569
diff changeset
484 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
485 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
486 \\[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
487 :type 'boolean
73176
3dbfd59b44b5 (european-calendar-style): Call european-calendar or american-calendar
Glenn Morris <rgm@gnu.org>
parents: 71569
diff changeset
488 ;; 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
489 ;; 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
490 :initialize 'custom-initialize-default
73181
97319c05f531 (european-calendar-style): Tweak previous fix.
Glenn Morris <rgm@gnu.org>
parents: 73176
diff changeset
491 :set (lambda (symbol value)
97319c05f531 (european-calendar-style): Tweak previous fix.
Glenn Morris <rgm@gnu.org>
parents: 73176
diff changeset
492 (if value
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
493 (calendar-set-date-style 'european)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
494 (calendar-set-date-style 'american)))
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
495 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
496
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
497 ;;;###autoload
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
498 (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
499
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
500 ;; Used by various other packages.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
501 ;;;###autoload
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
502 (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
503 'american)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
504 "Your preferred style for writing dates.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
505 The options are:
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
506 `american' - month/day/year
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
507 `european' - day/month/year
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
508 `iso' - year/month/day
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
509 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
510 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
511 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
512 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
513
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
514 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
515 calendar package is already loaded). Rather, use either
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
516 \\[customize] or the function `calendar-set-date-style'."
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
517 :version "23.1"
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
518 :type '(choice (const american :tag "Month/Day/Year")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
519 (const european :tag "Day/Month/Year")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
520 (const iso :tag "Year/Month/Day"))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
521 :initialize 'custom-initialize-default
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
522 :set (lambda (symbol value)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
523 (calendar-set-date-style value))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
524 :group 'calendar)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
525
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
526 ;; Next three are provided to aid in setting diary-date-forms.
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
527 (defcustom diary-iso-date-forms
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
528 '((month "[-/]" day "[^-/0-9]")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
529 (year "[-/]" month "[-/]" day "[^0-9]")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
530 (monthname "-" day "[^-0-9]")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
531 (year "-" monthname "-" day "[^0-9]")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
532 (dayname "\\W"))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
533 "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
534 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
535 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
536 but `diary-date-forms' (which see)."
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
537 :version "23.1"
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
538 :type '(repeat (choice (cons :tag "Backup"
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
539 :value (backup . nil)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
540 (const backup)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
541 (repeat (list :inline t :format "%v"
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
542 (symbol :tag "Keyword")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
543 (choice symbol regexp))))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
544 (repeat (list :inline t :format "%v"
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
545 (symbol :tag "Keyword")
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
546 (choice symbol regexp)))))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
547 :group 'diary)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
548
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
549 (defcustom diary-american-date-forms
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
550 '((month "/" day "[^/0-9]")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
551 (month "/" day "/" year "[^0-9]")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
552 (monthname " *" day "[^,0-9]")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
553 (monthname " *" day ", *" year "[^0-9]")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
554 (dayname "\\W"))
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
555 "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
556 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
557 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
558 but `diary-date-forms' (which see)."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
559 :type '(repeat (choice (cons :tag "Backup"
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
560 :value (backup . nil)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
561 (const backup)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
562 (repeat (list :inline t :format "%v"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
563 (symbol :tag "Keyword")
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
564 (choice symbol regexp))))
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
565 (repeat (list :inline t :format "%v"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
566 (symbol :tag "Keyword")
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
567 (choice symbol regexp)))))
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
568 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
569
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
570 (define-obsolete-variable-alias 'american-date-diary-pattern
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
571 'diary-american-date-forms "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
572
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
573 (defcustom diary-european-date-forms
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
574 '((day "/" month "[^/0-9]")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
575 (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
576 (backup day " *" monthname "\\W+\\<\\([^*0-9]\\|\\([0-9]+[:aApP]\\)\\)")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
577 (day " *" monthname " *" year "[^0-9]")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
578 (dayname "\\W"))
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
579 "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
580 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
581 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
582 `diary-date-forms' (which see)."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
583 :type '(repeat (choice (cons :tag "Backup"
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
584 :value (backup . nil)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
585 (const backup)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
586 (repeat (list :inline t :format "%v"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
587 (symbol :tag "Keyword")
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
588 (choice symbol regexp))))
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
589 (repeat (list :inline t :format "%v"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
590 (symbol :tag "Keyword")
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
591 (choice symbol regexp)))))
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
592 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
593
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
594 (define-obsolete-variable-alias 'european-date-diary-pattern
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
595 'diary-european-date-forms "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
596
77044
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
597 (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
598
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
599 (defcustom diary-date-forms (cond ((eq calendar-date-style 'iso)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
600 diary-iso-date-forms)
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
601 ((eq calendar-date-style 'european)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
602 diary-european-date-forms)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
603 (t diary-american-date-forms))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
604 "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
605 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
606 any portion of the diary entry itself, just the date component.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
607
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
608 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
609 `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
610 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
611 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
612 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
613 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
614 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
615 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
616 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
617 also match `*'.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
618
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
619 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
620 standard syntax table from Fundamental mode, but with the `*' changed so
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
621 that it is a word constituent.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
622
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
623 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
624 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
625 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
626 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
627 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
628
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
629 For examples of three common styles, see `diary-american-date-forms',
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
630 `diary-european-date-forms', and `diary-iso-date-forms'."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
631 :type '(repeat (choice (cons :tag "Backup"
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
632 :value (backup . nil)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
633 (const backup)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
634 (repeat (list :inline t :format "%v"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
635 (symbol :tag "Keyword")
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
636 (choice symbol regexp))))
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
637 (repeat (list :inline t :format "%v"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
638 (symbol :tag "Keyword")
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
639 (choice symbol regexp)))))
77044
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
640 :initialize 'custom-initialize-default
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
641 :set (lambda (symbol value)
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
642 (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
643 (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
644 (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
645 ;; 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
646 ;; 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
647 (and (diary-live-p)
e0a720fbf325 (diary-font-lock-keywords, diary-live-p): Autoload these functions.
Glenn Morris <rgm@gnu.org>
parents: 76752
diff changeset
648 (diary))))
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
649 :group 'diary)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
650
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
651 ;; Next three are provided to aid in setting calendar-date-display-form.
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
652 (defcustom calendar-iso-date-display-form '((format "%s-%.2d-%.2d" year
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
653 (string-to-number month)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
654 (string-to-number day)))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
655 "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
656 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
657 \(which see)."
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
658 :type 'sexp
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
659 :version "23.1"
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
660 :group 'calendar)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
661
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
662 (defcustom calendar-european-date-display-form
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
663 '((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
664 "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
665 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
666 \(which see)."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
667 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
668 :group 'calendar)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
669
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
670 (define-obsolete-variable-alias 'european-calendar-display-form
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
671 'calendar-european-date-display-form "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
672
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
673 (defcustom calendar-american-date-display-form
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
674 '((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
675 "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
676 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
677 \(which see)."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
678 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
679 :group 'calendar)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
680
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
681 (define-obsolete-variable-alias 'american-calendar-display-form
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
682 'calendar-american-date-display-form "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
683
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
684 (defcustom calendar-date-display-form
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
685 (cond ((eq calendar-date-style 'iso)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
686 calendar-iso-date-display-form)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
687 ((eq calendar-date-style 'european)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
688 calendar-european-date-display-form)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
689 (t calendar-american-date-display-form))
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
690 "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
691 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
692 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
693 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
694 \(both alphabetic strings). For example, a typical American form would be
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
695
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
696 '(month \"/\" day \"/\" (substring year -2))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
697
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
698 whereas
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
699
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
700 '((format \"%9s, %9s %2s, %4s\" dayname monthname day year))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
701
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
702 would give the usual American style in fixed-length fields. The variables
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
703 `calendar-iso-date-display-form', `calendar-european-date-display-form', and
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
704 `calendar-american-date-display-form' provide some defaults for three common
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
705 styles."
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
706 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
707 :group 'calendar)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
708
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
709 (defun calendar-set-date-style (style)
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
710 "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
711 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
712 (interactive (list (intern
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
713 (completing-read "Date style: "
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
714 '("american" "european" "iso") nil t
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
715 nil nil "american"))))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
716 (or (memq style '(american european iso))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
717 (setq style 'american))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
718 (setq calendar-date-style style
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
719 calendar-date-display-form
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
720 (symbol-value (intern-soft
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
721 (format "calendar-%s-date-display-form" style)))
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
722 diary-date-forms
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
723 (symbol-value (intern-soft (format "diary-%s-date-forms" style))))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
724 (calendar-update-mode-line))
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
725
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
726 (defun european-calendar ()
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
727 "Set the interpretation and display of dates to the European style."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
728 (interactive)
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
729 (calendar-set-date-style 'european))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
730
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
731 (make-obsolete 'european-calendar 'calendar-set-date-style "23.1")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
732
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
733 (defun american-calendar ()
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
734 "Set the interpretation and display of dates to the American style."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
735 (interactive)
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
736 (calendar-set-date-style 'american))
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
737
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
738 (make-obsolete 'american-calendar 'calendar-set-date-style "23.1")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
739
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
740 ;; 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
741 ;; Add appt-make-list as an option?
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
742 (defcustom diary-hook nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
743 "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
744 Can be used for appointment notification."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
745 :type 'hook
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
746 :group 'diary)
4453
7f41b3648380 (diary-display-hook): Change default and fix doc string.
Richard M. Stallman <rms@gnu.org>
parents: 4339
diff changeset
747
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
748 (defcustom diary-display-hook nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
749 "List of functions that handle the display of the diary.
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
750 If nil (the default), `diary-simple-display' is used. Use
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
751 `ignore' for no diary display.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
752
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
753 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
754 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
755 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
756 `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
757 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
758 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
759 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
760 with holidays), or produce hard copy output.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
761
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
762 A function `diary-fancy-display' is provided for use with this
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
763 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
764 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
765 arrangement with headings. The fancy diary buffer will show the
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
766 holidays unless the variable `diary-show-holidays-flag' is set to
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
767 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
768 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
769 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
770 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
771 :type 'hook
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
772 :options '(diary-fancy-display)
76641
6d2ab8b45146 (diary-set-maybe-redraw): Autoload it.
Glenn Morris <rgm@gnu.org>
parents: 76477
diff changeset
773 :initialize 'custom-initialize-default
6d2ab8b45146 (diary-set-maybe-redraw): Autoload it.
Glenn Morris <rgm@gnu.org>
parents: 76477
diff changeset
774 :set 'diary-set-maybe-redraw
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
775 :group 'diary)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
776
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
777 (defcustom diary-show-holidays-flag t
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
778 "Non-nil means include holidays in the diary display.
6737
a3ef1108b7ff Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 6672
diff changeset
779 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
780 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
781 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
782 :type 'boolean
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
783 :group 'holidays)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
784
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
785 (define-obsolete-variable-alias 'holidays-in-diary-buffer
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
786 'diary-show-holidays-flag "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
787
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
788 (defcustom calendar-debug-sexp nil
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
789 "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
790 :type 'boolean
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
791 :group 'calendar)
3448
b7d345eaae47 (calendar-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 2997
diff changeset
792
93374
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
793 ;; The various holiday variables are autoloaded because people
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
794 ;; 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
795 ;; explicitly load this file.
4e21455e4410 (diary-file, american-date-diary-pattern)
Glenn Morris <rgm@gnu.org>
parents: 93330
diff changeset
796
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
797 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
798 (defcustom holiday-general-holidays
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
799 '((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
800 (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
801 (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
802 (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
803 (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
804 (holiday-fixed 3 17 "St. Patrick's Day")
14937
a2cc3eb1633b Spelling fix.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 14915
diff changeset
805 (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
806 (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
807 (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
808 (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
809 (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
810 (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
811 (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
812 (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
813 (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
814 (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
815 (holiday-float 11 4 4 "Thanksgiving"))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
816 "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
817 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
818 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
819 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
820 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
821 (put 'holiday-general-holidays 'risky-local-variable t)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
822 ;;;###autoload
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
823 (define-obsolete-variable-alias 'general-holidays
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
824 'holiday-general-holidays "23.1")
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
825
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
826 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
827 (defcustom holiday-oriental-holidays
93227
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
828 '((holiday-chinese-new-year))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
829 "Oriental holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
830 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
831 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
832 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
833 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
834 (put 'holiday-oriental-holidays 'risky-local-variable t)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
835 ;;;###autoload
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
836 (define-obsolete-variable-alias 'oriental-holidays
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
837 'holiday-oriental-holidays "23.1")
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
838
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
839 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
840 (defcustom holiday-local-holidays nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
841 "Local holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
842 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
843 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
844 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
845 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
846 (put 'holiday-local-holidays 'risky-local-variable t)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
847 ;;;###autoload
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
848 (define-obsolete-variable-alias 'local-holidays 'holiday-local-holidays "23.1")
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
849
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
850 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
851 (defcustom holiday-other-holidays nil
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
852 "User defined holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
853 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
854 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
855 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
856 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
857 (put 'holiday-other-holidays 'risky-local-variable t)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
858 ;;;###autoload
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
859 (define-obsolete-variable-alias 'other-holidays 'holiday-other-holidays "23.1")
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
860
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
861 (defcustom calendar-hebrew-all-holidays-flag nil
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
862 "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
863 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
864 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
865 calendar."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
866 :type 'boolean
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
867 :group 'holidays)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
868
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
869 (define-obsolete-variable-alias 'all-hebrew-calendar-holidays
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
870 'calendar-hebrew-all-holidays-flag "23.1")
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
871
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
872 ;;;###autoload
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
873 (defvar hebrew-holidays-1
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
874 '((holiday-hebrew-rosh-hashanah)
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
875 (if calendar-hebrew-all-holidays-flag
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
876 (holiday-julian
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
877 11
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
878 (let ((m displayed-month)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
879 (y displayed-year)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
880 year)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
881 (calendar-increment-month m y -1)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
882 (setq year (calendar-extract-year
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
883 (calendar-julian-from-absolute
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
884 (calendar-absolute-from-gregorian (list m 1 y)))))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
885 (if (zerop (% (1+ year) 4))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
886 22
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
887 21)) "\"Tal Umatar\" (evening)")))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
888 "Component of the old default value of `holiday-hebrew-holidays'.")
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
889 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
890 (put 'hebrew-holidays-1 'risky-local-variable t)
93578
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
891 (make-obsolete-variable 'hebrew-holidays-1 'hebrew-holidays "23.1")
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
892
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
893 ;;;###autoload
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
894 (defvar hebrew-holidays-2
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
895 '((holiday-hebrew-hanukkah) ; respects calendar-hebrew-all-holidays-flag
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
896 (if calendar-hebrew-all-holidays-flag
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
897 (holiday-hebrew
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
898 10
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
899 (let ((h-year (calendar-extract-year
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
900 (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
901 (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
902 (list displayed-month 28 displayed-year))))))
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
903 (if (= 6 (% (calendar-hebrew-to-absolute (list 10 10 h-year))
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
904 7))
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
905 11 10))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
906 "Tzom Teveth"))
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
907 (if calendar-hebrew-all-holidays-flag
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
908 (holiday-hebrew 11 15 "Tu B'Shevat")))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
909 "Component of the old default value of `holiday-hebrew-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-2 'risky-local-variable t)
93578
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
912 (make-obsolete-variable 'hebrew-holidays-2 'hebrew-holidays "23.1")
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
913
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
914 ;;;###autoload
4530
c14a75fce9c9 (hebrew-holidays-3): Fix misspelling in var name.
Richard M. Stallman <rms@gnu.org>
parents: 4453
diff changeset
915 (defvar hebrew-holidays-3
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
916 '((if calendar-hebrew-all-holidays-flag
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
917 (holiday-hebrew
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
918 11
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
919 (let* ((m displayed-month)
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
920 (y displayed-year)
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
921 (h-year (progn
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
922 (calendar-increment-month m y 1)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
923 (calendar-extract-year
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
924 (calendar-hebrew-from-absolute
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
925 (calendar-absolute-from-gregorian
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
926 (list m (calendar-last-day-of-month m y) y))))))
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
927 (s-s
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
928 (calendar-hebrew-from-absolute
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
929 (if (= 6
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
930 (% (calendar-hebrew-to-absolute
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
931 (list 7 1 h-year))
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
932 7))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
933 (calendar-dayname-on-or-before
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
934 6 (calendar-hebrew-to-absolute
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
935 (list 11 17 h-year)))
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
936 (calendar-dayname-on-or-before
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
937 6 (calendar-hebrew-to-absolute
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
938 (list 11 16 h-year))))))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
939 (day (calendar-extract-day s-s)))
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
940 day)
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
941 "Shabbat Shirah")))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
942 "Component of the old default value of `holiday-hebrew-holidays'.")
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
943 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
944 (put 'hebrew-holidays-3 'risky-local-variable t)
93578
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
945 (make-obsolete-variable 'hebrew-holidays-3 'hebrew-holidays "23.1")
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
946
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
947 ;;;###autoload
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
948 (defvar hebrew-holidays-4
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
949 '((holiday-hebrew-passover)
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
950 (and calendar-hebrew-all-holidays-flag
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
951 (let* ((m displayed-month)
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
952 (y displayed-year)
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
953 (year (progn
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
954 (calendar-increment-month m y -1)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
955 (calendar-extract-year
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
956 (calendar-julian-from-absolute
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
957 (calendar-absolute-from-gregorian (list m 1 y)))))))
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
958 (= 21 (% year 28)))
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
959 (holiday-julian 3 26 "Kiddush HaHamah"))
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
960 (if calendar-hebrew-all-holidays-flag
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
961 (holiday-hebrew-tisha-b-av)))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
962 "Component of the old default value of `holiday-hebrew-holidays'.")
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
963 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
964 (put 'hebrew-holidays-4 'risky-local-variable t)
93578
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
965 (make-obsolete-variable 'hebrew-holidays-4 'hebrew-holidays "23.1")
4161
8e236d4ce64b (hebrew-holidays): Split into 4 sub-variables.
Richard M. Stallman <rms@gnu.org>
parents: 4086
diff changeset
966
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
967 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
968 (defcustom holiday-hebrew-holidays
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
969 '((holiday-hebrew-passover)
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
970 (holiday-hebrew-rosh-hashanah)
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
971 (holiday-hebrew-hanukkah)
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
972 (if calendar-hebrew-all-holidays-flag
93578
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
973 (append
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
974 (holiday-hebrew-tisha-b-av)
93578
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
975 (holiday-hebrew-misc))))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
976 "Jewish holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
977 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
978 :type 'sexp
93578
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
979 :version "23.1" ; removed dependency on hebrew-holidays-N
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
980 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
981 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
982 (put 'holiday-hebrew-holidays 'risky-local-variable t)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
983 ;;;###autoload
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
984 (define-obsolete-variable-alias 'hebrew-holidays
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
985 'holiday-hebrew-holidays "23.1")
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
986
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
987 (defcustom calendar-christian-all-holidays-flag nil
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
988 "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
989 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
990 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
991 calendar."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
992 :type 'boolean
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
993 :group 'holidays)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
994
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
995 (define-obsolete-variable-alias 'all-christian-calendar-holidays
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
996 'calendar-christian-all-holidays-flag "23.1")
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
997
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
998 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
999 (defcustom holiday-christian-holidays
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
1000 '((holiday-easter-etc) ; respects calendar-christian-all-holidays-flag
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1001 (holiday-fixed 12 25 "Christmas")
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
1002 (if calendar-christian-all-holidays-flag
93578
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1003 (append
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1004 (holiday-fixed 1 6 "Epiphany")
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1005 (holiday-julian 12 25 "Eastern Orthodox Christmas")
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1006 (holiday-greek-orthodox-easter)
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1007 (holiday-fixed 8 15 "Assumption")
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1008 (holiday-advent 0 "Advent"))))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1009 "Christian holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1010 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1011 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1012 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1013 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1014 (put 'holiday-christian-holidays 'risky-local-variable t)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1015 ;;;###autoload
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1016 (define-obsolete-variable-alias 'christian-holidays
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1017 'holiday-christian-holidays "23.1")
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1018
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
1019 (defcustom calendar-islamic-all-holidays-flag nil
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1020 "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
1021 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
1022 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
1023 calendar."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1024 :type 'boolean
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1025 :group 'holidays)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1026
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
1027 (define-obsolete-variable-alias 'all-islamic-calendar-holidays
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
1028 'calendar-islamic-all-holidays-flag "23.1")
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
1029
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
1030 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1031 (defcustom holiday-islamic-holidays
93578
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1032 '((holiday-islamic-new-year)
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1033 (holiday-islamic 9 1 "Ramadan Begins")
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
1034 (if calendar-islamic-all-holidays-flag
93578
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1035 (append
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1036 (holiday-islamic 1 10 "Ashura")
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1037 (holiday-islamic 3 12 "Mulad-al-Nabi")
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1038 (holiday-islamic 7 26 "Shab-e-Mi'raj")
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1039 (holiday-islamic 8 15 "Shab-e-Bara't")
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1040 (holiday-islamic 9 27 "Shab-e Qadr")
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1041 (holiday-islamic 10 1 "Id-al-Fitr")
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1042 (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
1043 "Islamic holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1044 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1045 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1046 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1047 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1048 (put 'holiday-islamic-holidays 'risky-local-variable t)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1049 ;;;###autoload
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1050 (define-obsolete-variable-alias 'islamic-holidays
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1051 'holiday-islamic-holidays "23.1")
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1052
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
1053 (defcustom calendar-bahai-all-holidays-flag nil
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1054 "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
1055 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
1056 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
1057 calendar."
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1058 :type 'boolean
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1059 :group 'holidays)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1060
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
1061 (define-obsolete-variable-alias 'all-bahai-calendar-holidays
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
1062 'calendar-bahai-all-holidays-flag "23.1")
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
1063
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
1064 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1065 (defcustom holiday-bahai-holidays
93578
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1066 '((holiday-bahai-new-year)
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
1067 (holiday-bahai-ridvan) ; respects calendar-bahai-all-holidays-flag
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1068 (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
1069 (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
1070 (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
1071 (holiday-fixed 10 20 "Birth of the Bab")
93585
156256220c12 (bahai-holidays): Re-order.
Glenn Morris <rgm@gnu.org>
parents: 93583
diff changeset
1072 (holiday-fixed 11 12 "Birth of Baha'u'llah")
93630
8f16c93afd23 (calendar-hebrew-all-holidays-flag):
Glenn Morris <rgm@gnu.org>
parents: 93585
diff changeset
1073 (if calendar-bahai-all-holidays-flag
93585
156256220c12 (bahai-holidays): Re-order.
Glenn Morris <rgm@gnu.org>
parents: 93583
diff changeset
1074 (append
156256220c12 (bahai-holidays): Re-order.
Glenn Morris <rgm@gnu.org>
parents: 93583
diff changeset
1075 (holiday-fixed 11 26 "Day of the Covenant")
156256220c12 (bahai-holidays): Re-order.
Glenn Morris <rgm@gnu.org>
parents: 93583
diff changeset
1076 (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
1077 "Baha'i holidays.
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1078 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
1079 :type 'sexp
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1080 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1081 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1082 (put 'holiday-bahai-holidays 'risky-local-variable t)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1083 ;;;###autoload
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1084 (define-obsolete-variable-alias 'bahai-holidays 'holiday-bahai-holidays "23.1")
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1085
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
1086 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1087 (defcustom holiday-solar-holidays
93227
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1088 '((solar-equinoxes-solstices)
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1089 (holiday-sexp calendar-daylight-savings-starts
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1090 (format "Daylight Saving Time Begins %s"
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1091 (solar-time-string
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1092 (/ calendar-daylight-savings-starts-time (float 60))
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1093 calendar-standard-time-zone-name)))
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1094 (holiday-sexp calendar-daylight-savings-ends
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1095 (format "Daylight Saving Time Ends %s"
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1096 (solar-time-string
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1097 (/ calendar-daylight-savings-ends-time (float 60))
940127da5863 Provide calendar before requiring cal-menu.
Glenn Morris <rgm@gnu.org>
parents: 93187
diff changeset
1098 calendar-daylight-time-zone-name))))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1099 "Sun-related holidays.
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1100 See the documentation for `calendar-holidays' for details."
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1101 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1102 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1103 ;;;###autoload
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1104 (put 'holiday-solar-holidays 'risky-local-variable t)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1105 ;;;###autoload
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1106 (define-obsolete-variable-alias 'solar-holidays 'holiday-solar-holidays "23.1")
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1107
92681
28746000b6be (general-holidays, oriental-holidays)
Glenn Morris <rgm@gnu.org>
parents: 92602
diff changeset
1108 ;;;###autoload
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1109 (defcustom calendar-holidays
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1110 (append holiday-general-holidays holiday-local-holidays
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1111 holiday-other-holidays holiday-christian-holidays
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1112 holiday-hebrew-holidays holiday-islamic-holidays
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1113 holiday-bahai-holidays holiday-oriental-holidays
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1114 holiday-solar-holidays)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1115 "List of notable days for the command \\[holidays].
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1116
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1117 Additional holidays are easy to add to the list, just put them in the
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1118 list `holiday-other-holidays' in your .emacs file. Similarly, by setting
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1119 any of `holiday-general-holidays', `holiday-local-holidays',
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1120 `holiday-christian-holidays', `holiday-hebrew-holidays',
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1121 `holiday-islamic-holidays', `holiday-bahai-holidays',
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1122 `holiday-oriental-holidays', or `holiday-solar-holidays' to nil in your
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1123 .emacs file, you can eliminate unwanted categories of holidays.
69183
08af43fa19d8 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 68655
diff changeset
1124
69351
86b7b0805645 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 69183
diff changeset
1125 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
1126 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
1127
69356
53ca33e3b6a5 (calendar-holidays): Make previous doc-fix less passive.
Glenn Morris <rgm@gnu.org>
parents: 69351
diff changeset
1128 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
1129 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
1130 `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
1131 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
1132 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
1133 `calendar-holidays' directly.
69183
08af43fa19d8 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 68655
diff changeset
1134
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1135 The intention is that (in the US) `holiday-local-holidays' be set in
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1136 site-init.el and `holiday-other-holidays' be set by the user.
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1137
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1138 Entries on the list are expressions that return (possibly empty) lists of
93583
073990831f47 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93578
diff changeset
1139 items of the form ((month day year) string) of a holiday in the
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1140 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
1141 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
1142
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1143 (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
1144 (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
1145 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
1146 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
1147 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
1148 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
1149 (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
1150 (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
1151 (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
1152 (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
1153 (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
1154 in the variable `year'; if it evaluates to
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1155 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
1156 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
1157 is an expression in the variable `date'.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1158
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1159 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
1160
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1161 (holiday-fixed 7 14 \"Bastille Day\")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1162
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1163 to the list. To add Hurricane Supplication Day, celebrated in the Virgin
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1164 Islands on the fourth Monday in August, add
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1165
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1166 (holiday-float 8 1 4 \"Hurricane Supplication Day\")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1167
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1168 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
1169 To add the last day of Hanukkah to the list, use
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1170
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1171 (holiday-hebrew 10 2 \"Last day of Hanukkah\")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1172
93583
073990831f47 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93578
diff changeset
1173 since the Hebrew months are numbered with 1 starting from Nisan.
073990831f47 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93578
diff changeset
1174 To add the Islamic feast celebrating Mohammed's birthday, use
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1175
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1176 (holiday-islamic 3 12 \"Mohammed's Birthday\")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1177
93583
073990831f47 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93578
diff changeset
1178 since the Islamic months are numbered from 1 starting with Muharram.
073990831f47 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93578
diff changeset
1179 To add an entry for the Baha'i festival of Ridvan, use
55431
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1180
b278cb498cc8 2004-05-08 John Wiegley <johnw@newartisans.com>
John Wiegley <johnw@newartisans.com>
parents: 54536
diff changeset
1181 (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
1182
93583
073990831f47 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93578
diff changeset
1183 since the Baha'i months are numbered from 1 starting with Baha.
073990831f47 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93578
diff changeset
1184 To add Thomas Jefferson's birthday, April 2, 1743 (Julian), use
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1185
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1186 (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
1187
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1188 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
1189 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
1190 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
1191
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1192 (holiday-sexp
54071
8089fbb082b9 (calendar-holidays): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 53559
diff changeset
1193 '(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
1194 (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
1195 (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
1196 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
1197 (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
1198 \"US Presidential Election\")
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1199
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1200 or
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1201
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1202 (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
1203 (holiday-fixed 11
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1204 (calendar-extract-day
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1205 (calendar-gregorian-from-absolute
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1206 (1+ (calendar-dayname-on-or-before
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1207 1 (+ 6 (calendar-absolute-from-gregorian
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1208 (list 11 1 displayed-year)))))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1209 \"US Presidential Election\"))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1210
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1211 to the list. To include the phases of the moon, add
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1212
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1213 (lunar-phases)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1214
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1215 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
1216 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
1217 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
1218
17625
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1219 (((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
1220 :type 'sexp
321afd5b0bc5 Add defgroups, and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents: 16099
diff changeset
1221 :group 'holidays)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1222 ;;;###autoload
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1223 (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
1224
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1225 ;;; End of user options.
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1226
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1227 (defconst calendar-buffer "*Calendar*"
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1228 "Name of the buffer used for the calendar.")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1229
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1230 (defconst holiday-buffer "*Holidays*"
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1231 "Name of the buffer used for the displaying the holidays.")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1232
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1233 (defconst diary-fancy-buffer "*Fancy Diary Entries*"
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1234 "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
1235
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1236 (define-obsolete-variable-alias 'fancy-diary-buffer 'diary-fancy-buffer "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1237
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1238 (defconst calendar-other-calendars-buffer "*Other Calendars*"
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
1239 "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
1240
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
1241 (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
1242 "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
1243
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1244 (defconst calendar-hebrew-yahrzeit-buffer "*Yahrzeits*"
92823
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1245 "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
1246
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1247 (defmacro calendar-increment-month (mon yr n &optional nmonths)
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1248 "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
1249 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
1250 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
1251 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
1252 ;; 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
1253 ;; 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
1254 `(let ((nmonths (or ,nmonths 12))
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1255 macro-y)
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1256 (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
1257 (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
1258 ,mon (1+ (mod macro-y nmonths))
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1259 ,yr (/ macro-y nmonths))
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1260 ;; Alternative:
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1261 ;;; (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
1262 ;;; ,yr (/ macro-y nmonths)
4d4a9542d49c (increment-calendar-month): Optionally handle systems without 12
Glenn Morris <rgm@gnu.org>
parents: 93449
diff changeset
1263 ;;; ,mon (- macro-y (* ,yr nmonths)))
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1264 (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
1265 (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
1266
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1267 (define-obsolete-function-alias 'increment-calendar-month
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1268 'calendar-increment-month "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1269
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1270 (defvar displayed-month)
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1271 (defvar displayed-year)
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1272
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1273 (defun calendar-increment-month-cons (n &optional mon yr)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1274 "Return the Nth month after MON/YR.
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1275 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
1276 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
1277 (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
1278 (unless yr (setq yr displayed-year))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1279 (calendar-increment-month mon yr n)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1280 (cons mon yr))
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1281
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1282 (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
1283 "Execute a for loop.
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1284 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
1285 inclusive. The standard macro `dotimes' is preferable in most cases."
92988
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
1286 (declare (debug (symbolp "from" form "to" form "do" body))
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
1287 (indent defun))
26427
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1288 `(let ((,var (1- ,init)))
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1289 (while (>= ,final (setq ,var (1+ ,var)))
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1290 ,@body)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1291
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
1292 (make-obsolete 'calendar-for-loop "use `dotimes' or `while' instead." "23.1")
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
1293
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1294 (defmacro calendar-sum (index initial condition expression)
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1295 "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
1296 (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
1297 `(let ((,index ,initial)
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1298 (sum 0))
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1299 (while ,condition
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1300 (setq sum (+ sum ,expression)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1301 ,index (1+ ,index)))
26427
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
1302 sum))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1303
93449
64521597b7dd (increment-calendar-month): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93374
diff changeset
1304 ;; FIXME bind q to bury-buffer?
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1305 (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
1306 "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
1307 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
1308 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
1309 (declare (indent 1) (debug t))
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1310 `(progn
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1311 (set-buffer (get-buffer-create ,buffer))
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1312 (setq buffer-read-only nil
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1313 buffer-undo-list t)
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1314 (erase-buffer)
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1315 ,@body
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1316 (goto-char (point-min))
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1317 (set-buffer-modified-p nil)
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1318 (setq buffer-read-only t)
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1319 (display-buffer ,buffer)))
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1320
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
1321 ;; 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
1322 ;; 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
1323 ;; 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
1324 ;; fancy diary display, for a moderately complex diary file, with functions
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1325 ;; 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
1326 ;;
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1327 ;; 1934 calendar-extract-month
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1328 ;; 1852 calendar-extract-year
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1329 ;; 1819 calendar-extract-day
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1330 ;; 845 calendar-leap-year-p
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1331 ;; 837 calendar-day-number
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1332 ;; 775 calendar-absolute-from-gregorian
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1333 ;; 346 calendar-last-day-of-month
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
1334 ;; 286 calendar-hebrew-last-day-of-month
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
1335 ;; 188 calendar-hebrew-leap-year-p
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
1336 ;; 180 calendar-hebrew-elapsed-days
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
1337 ;; 163 calendar-hebrew-last-month-of-year
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1338 ;; 66 calendar-date-compare
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
1339 ;; 65 calendar-hebrew-days-in-year
93647
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1340 ;; 60 calendar-julian-to-absolute
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
1341 ;; 50 calendar-hebrew-to-absolute
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1342 ;; 43 calendar-date-equal
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1343 ;; 38 calendar-gregorian-from-absolute
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1344 ;; .
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1345 ;;
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1346 ;; 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
1347 ;; calls; it's faster this way.
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1348
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1349 (defsubst calendar-extract-month (date)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1350 "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
1351 (car date))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1352
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1353 (define-obsolete-function-alias 'extract-calendar-month
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1354 'calendar-extract-month "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1355
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1356 ;; 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
1357 ;; but that is only used by `calendar-other-month'.
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1358 (defsubst calendar-extract-day (date)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1359 "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
1360 (cadr date))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1361
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1362 (define-obsolete-function-alias 'extract-calendar-day
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1363 'calendar-extract-day "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1364
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1365 (defsubst calendar-extract-year (date)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1366 "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
1367 (nth 2 date))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1368
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1369 (define-obsolete-function-alias 'extract-calendar-year
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1370 'calendar-extract-year "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1371
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
1372 (defsubst calendar-leap-year-p (year)
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1373 "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
1374 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
1375 ;; 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
1376 (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
1377 (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
1378 (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
1379 (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
1380
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
1381 ;; 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
1382 ;;
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
1383 ;;(defsubst calendar-leap-year-p (year)
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1384 ;; "Return t if YEAR is a Gregorian leap year."
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1385 ;; (or
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1386 ;; (and (zerop (% year 4))
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1387 ;; (not (zerop (% year 100))))
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1388 ;; (zerop (% year 400)))
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1389
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
1390 (defsubst calendar-last-day-of-month (month year)
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1391 "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
1392 (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
1393 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
1394 (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
1395
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
1396 ;; 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
1397 ;; 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
1398
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1399 (defsubst calendar-day-number (date)
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1400 "Return the day number within the year of the date DATE.
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1401 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
1402 while (calendar-day-number '(12 31 1980)) returns 366."
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1403 (let* ((month (calendar-extract-month date))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1404 (day (calendar-extract-day date))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1405 (year (calendar-extract-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
1406 (day-of-year (+ day (* 31 (1- month)))))
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1407 (when (> month 2)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1408 (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
1409 (if (calendar-leap-year-p year)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1410 (setq day-of-year (1+ day-of-year))))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1411 day-of-year))
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1412
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
1413 (defsubst calendar-absolute-from-gregorian (date)
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 675
diff changeset
1414 "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
1415 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
1416 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
1417 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
1418 return negative results."
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1419 (let ((year (calendar-extract-year date))
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1420 offset-years)
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1421 (cond ((zerop year)
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1422 (error "There was no year zero"))
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1423 ((> year 0)
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1424 (setq offset-years (1- year))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1425 (+ (calendar-day-number date) ; days this year
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1426 (* 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
1427 (/ offset-years 4) ; + Julian leap years
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1428 (- (/ offset-years 100)) ; - century years
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1429 (/ offset-years 400))) ; + Gregorian leap years
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1430 (t
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1431 ;; 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
1432 (setq offset-years (abs (1+ year)))
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1433 (- (calendar-day-number date)
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1434 (* 365 offset-years)
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1435 (/ offset-years 4)
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1436 (- (/ offset-years 100))
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1437 (/ offset-years 400)
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1438 (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
1439
675
85fd29f25c75 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 628
diff changeset
1440 ;;;###autoload
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1441 (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
1442 "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
1443 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
1444 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
1445 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
1446 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
1447
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1448 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
1449 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
1450 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
1451 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
1452 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
1453 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
1454 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
1455 \\[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
1456 window.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1457
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1458 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
1459 separate frame, depending on the value of `calendar-setup'.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1460
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1461 If `calendar-view-diary-initially-flag' is non-nil, also displays the
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1462 diary entries for the current date (or however many days
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
1463 `diary-number-of-entries' specifies). This variable can be
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1464 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
1465 diary entries can also be marked on the calendar (see
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1466 `calendar-mark-diary-entries-flag').
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1467
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1468 Runs the following hooks:
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1469
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1470 `calendar-load-hook' - after loading calendar.el
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1471 `calendar-today-visible-hook', `calendar-today-invisible-hook' - after
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1472 generating a calendar, if today's date is visible or not, respectively
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1473 `calendar-initial-window-hook' - after first creating a calendar
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1474
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1475 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
1476 (interactive "P")
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1477 ;; 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
1478 (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
1479 (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
1480 (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
1481 (calendar-basic-setup arg)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1482
93187
c68684b0a2d1 (calendar-remove-frame-by-deleting): Default to t. Add to 'calendar group.
Glenn Morris <rgm@gnu.org>
parents: 93091
diff changeset
1483 (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
1484 "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
1485 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
1486 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
1487 display the generated calendar."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1488 (interactive "P")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1489 (set-buffer (get-buffer-create calendar-buffer))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1490 (calendar-mode)
9747
5586959f3393 Redo the noday option for calendar-read-date.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9709
diff changeset
1491 (let* ((pop-up-windows t)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1492 (split-height-threshold 1000)
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1493 (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
1494 (calendar-current-date)))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1495 (month (calendar-extract-month date))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1496 (year (calendar-extract-year date)))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1497 (calendar-increment-month month year (- calendar-offset))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1498 ;; Display the buffer before calling calendar-generate-window so that it
82203
3d0d3af343ac (calendar-mode): Make sure displayed-(month|year) are set.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82151
diff changeset
1499 ;; 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
1500 (or nodisplay (pop-to-buffer calendar-buffer))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1501 (calendar-generate-window month year)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1502 (if (and calendar-view-diary-initially-flag
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1503 (calendar-date-is-visible-p date))
65477
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
1504 (diary-view-entries)))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1505 (if calendar-view-holidays-initially-flag
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
1506 (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
1507 (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
1508 (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
1509 ;; FIXME display buffer?
84554
5bd5d06e4cf2 Rename all list-calendar-holidays callers to calendar-list-holidays,
Glenn Morris <rgm@gnu.org>
parents: 82365
diff changeset
1510 (calendar-list-holidays)))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1511 (run-hooks 'calendar-initial-window-hook))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1512
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1513 (defun calendar-generate-window (&optional mon yr)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1514 "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
1515 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
1516 (let* ((inhibit-read-only t)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1517 (today (calendar-current-date))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1518 (month (calendar-extract-month today))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1519 (day (calendar-extract-day today))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1520 (year (calendar-extract-year today))
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
1521 (today-visible (or (not mon)
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
1522 (<= (abs (calendar-interval mon yr month year)) 1)))
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1523 (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
1524 (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
1525 (get-buffer calendar-buffer))))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1526 (calendar-generate (or mon month) (or yr year))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1527 (calendar-update-mode-line)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1528 (calendar-cursor-to-visible-date
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1529 (if today-visible today (list displayed-month 1 displayed-year)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1530 (set-buffer-modified-p nil)
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1531 ;; 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
1532 ;; window displaying the calendar.
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1533 (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
1534 (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
1535 ;; 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
1536 ;; line is fully visible.
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1537 (set-window-vscroll nil 0)
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1538 ;; 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
1539 (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
1540 (sit-for 0))
93578
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1541 (and (bound-and-true-p font-lock-mode)
14c23c86b7aa (hebrew-holidays-1, hebrew-holidays-2, hebrew-holidays-3, hebrew-holidays-4):
Glenn Morris <rgm@gnu.org>
parents: 93528
diff changeset
1542 (font-lock-fontify-buffer))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1543 (and calendar-mark-holidays-flag
92530
04183df0b71f (calendar-date-is-legal-p): New obsolete alias.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
1544 ;;; (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
1545 (calendar-mark-holidays)
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1546 (and in-calendar-window (sit-for 0)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1547 (unwind-protect
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1548 (if calendar-mark-diary-entries-flag (diary-mark-entries))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1549 (if today-visible
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1550 (run-hooks 'calendar-today-visible-hook)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1551 (run-hooks 'calendar-today-invisible-hook)))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1552
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1553 (defun calendar-generate (month year)
54128
520476f3222d *** empty log message ***
Glenn Morris <rgm@gnu.org>
parents: 54071
diff changeset
1554 "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
1555 ;; 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
1556 ;; 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
1557 ;; 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
1558 ;; at best have unpredictable results for such dates.
54128
520476f3222d *** empty log message ***
Glenn Morris <rgm@gnu.org>
parents: 54071
diff changeset
1559 (if (< (+ month (* 12 (1- year))) 2)
60292
b8747b7d8e2a From Matt Hodges <MPHodges@member.fsf.org>:
Glenn Morris <rgm@gnu.org>
parents: 59044
diff changeset
1560 (error "Months before January, 1 AD cannot be displayed"))
54128
520476f3222d *** empty log message ***
Glenn Morris <rgm@gnu.org>
parents: 54071
diff changeset
1561 (setq displayed-month month
520476f3222d *** empty log message ***
Glenn Morris <rgm@gnu.org>
parents: 54071
diff changeset
1562 displayed-year year)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1563 (erase-buffer)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1564 (calendar-increment-month month year -1)
82086
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1565 (dotimes (i 3)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1566 (calendar-generate-month month year (+ 5 (* 25 i)))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1567 (calendar-increment-month month year 1)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1568
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1569 (defun calendar-generate-month (month year indent)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1570 "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
1571 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
1572 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
1573 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
1574 line."
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1575 (let ((blank-days ; at start of month
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1576 (mod
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1577 (- (calendar-day-of-week (list month 1 year))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1578 calendar-week-start-day)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1579 7))
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
1580 (last (calendar-last-day-of-month month year))
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
1581 string)
4861
924486090b27 (calendar-week-start-day): New var (autoloaded) to
Richard M. Stallman <rms@gnu.org>
parents: 4658
diff changeset
1582 (goto-char (point-min))
924486090b27 (calendar-week-start-day): New var (autoloaded) to
Richard M. Stallman <rms@gnu.org>
parents: 4658
diff changeset
1583 (calendar-insert-indented
924486090b27 (calendar-week-start-day): New var (autoloaded) to
Richard M. Stallman <rms@gnu.org>
parents: 4658
diff changeset
1584 (calendar-string-spread
93647
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1585 (list (format "%s %d" (calendar-month-name month) year)) ?\s 20)
4861
924486090b27 (calendar-week-start-day): New var (autoloaded) to
Richard M. Stallman <rms@gnu.org>
parents: 4658
diff changeset
1586 indent t)
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1587 (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
1588 ;; 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
1589 (dotimes (i 7)
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1590 (insert
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
1591 (progn
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
1592 (setq string
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
1593 (calendar-day-name (mod (+ calendar-week-start-day i) 7) nil t))
82086
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1594 (if enable-multibyte-characters
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1595 (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
1596 (substring string 0 2)))
1ee19eca3bfc (generate-calendar, (generate-calendar-month): Use dotimes rather than
Glenn Morris <rgm@gnu.org>
parents: 78145
diff changeset
1597 " "))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1598 (calendar-insert-indented "" 0 t) ; force onto following line
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1599 (calendar-insert-indented "" indent) ; go to proper spot
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1600 ;; 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
1601 (dotimes (idummy blank-days) (insert " "))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1602 ;; Put in the days of the month.
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1603 (dotimes (i last)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1604 (insert (format "%2d " (1+ i)))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1605 (add-text-properties
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1606 (- (point) 3) (1- (point))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1607 '(mouse-face highlight
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1608 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
1609 (and (zerop (mod (+ i 1 blank-days) 7))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1610 (/= i (1- last))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1611 (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
1612 (calendar-insert-indented "" indent))))) ; go to proper spot
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1613
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1614 (defun calendar-insert-indented (string indent &optional newline)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1615 "Insert STRING at column INDENT.
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1616 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
1617 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
1618 after the inserted text. Returns t."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1619 ;; Try to move to that column.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1620 (move-to-column indent)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1621 ;; If line is too short, indent out to that column.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1622 (if (< (current-column) indent)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1623 (indent-to indent))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1624 (insert string)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1625 ;; 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
1626 (when newline
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1627 (end-of-line)
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1628 (if (eobp)
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1629 (newline)
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1630 (forward-line 1)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1631 t)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1632
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1633 (defun calendar-redraw ()
60322
ae2850fc74dc (redraw-calendar): Work from any buffer, not just the calendar.
Glenn Morris <rgm@gnu.org>
parents: 60292
diff changeset
1634 "Redraw the calendar display, if `calendar-buffer' is live."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1635 (interactive)
60322
ae2850fc74dc (redraw-calendar): Work from any buffer, not just the calendar.
Glenn Morris <rgm@gnu.org>
parents: 60292
diff changeset
1636 (if (get-buffer calendar-buffer)
60568
e2cd8a11381a (calendar-redrawing): New internal variable.
Glenn Morris <rgm@gnu.org>
parents: 60528
diff changeset
1637 (with-current-buffer calendar-buffer
60649
3a754b1548d3 (calendar-redrawing): Delete.
Glenn Morris <rgm@gnu.org>
parents: 60568
diff changeset
1638 (let ((cursor-date (calendar-cursor-to-nearest-date)))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1639 (calendar-generate-window displayed-month displayed-year)
60568
e2cd8a11381a (calendar-redrawing): New internal variable.
Glenn Morris <rgm@gnu.org>
parents: 60528
diff changeset
1640 (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
1641
82118
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1642 (defvar calendar-mode-map
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1643 (let ((map (make-keymap)))
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1644 (suppress-keymap map)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1645 (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
1646 mark-defun mark-whole-buffer mark-page
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1647 downcase-region upcase-region kill-region
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1648 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
1649 (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
1650 (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
1651 (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
1652 (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
1653 (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
1654 (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
1655 (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
1656 (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
1657 (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
1658 (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
1659 (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
1660 (define-key map "\e{" 'calendar-backward-month)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1661 (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
1662 (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
1663 (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
1664 (define-key map [left] 'calendar-backward-day)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1665 (define-key map [up] 'calendar-backward-week)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1666 (define-key map [right] 'calendar-forward-day)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1667 (define-key map [down] 'calendar-forward-week)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1668 (define-key map "\e}" 'calendar-forward-month)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1669 (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
1670 (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
1671 (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
1672 (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
1673 (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
1674 (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
1675 (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
1676 (define-key map "\C-@" 'calendar-set-mark)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1677 ;; 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
1678 (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
1679 (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
1680 (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
1681 (define-key map "gd" 'calendar-goto-date)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1682 (define-key map "gD" 'calendar-goto-day-of-year)
93647
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1683 (define-key map "gj" 'calendar-julian-goto-date)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1684 (define-key map "ga" 'calendar-astro-goto-day-number)
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
1685 (define-key map "gh" 'calendar-hebrew-goto-date)
93647
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1686 (define-key map "gi" 'calendar-islamic-goto-date)
84593
6a5b534dceee Following cal-bahai renaming, update all
Glenn Morris <rgm@gnu.org>
parents: 84554
diff changeset
1687 (define-key map "gb" 'calendar-bahai-goto-date)
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
1688 (define-key map "gC" 'calendar-chinese-goto-date)
93719
5673edec9392 Update for coptic and french name changes.
Glenn Morris <rgm@gnu.org>
parents: 93714
diff changeset
1689 (define-key map "gk" 'calendar-coptic-goto-date)
5673edec9392 Update for coptic and french name changes.
Glenn Morris <rgm@gnu.org>
parents: 93714
diff changeset
1690 (define-key map "ge" 'calendar-ethiopic-goto-date)
93647
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1691 (define-key map "gp" 'calendar-persian-goto-date)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1692 (define-key map "gc" 'calendar-iso-goto-date)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1693 (define-key map "gw" 'calendar-iso-goto-week)
93719
5673edec9392 Update for coptic and french name changes.
Glenn Morris <rgm@gnu.org>
parents: 93714
diff changeset
1694 (define-key map "gf" 'calendar-french-goto-date)
93647
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1695 (define-key map "gml" 'calendar-mayan-goto-long-count-date)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1696 (define-key map "gmpc" 'calendar-mayan-previous-round-date)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1697 (define-key map "gmnc" 'calendar-mayan-next-round-date)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1698 (define-key map "gmph" 'calendar-mayan-previous-haab-date)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1699 (define-key map "gmnh" 'calendar-mayan-next-haab-date)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1700 (define-key map "gmpt" 'calendar-mayan-previous-tzolkin-date)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1701 (define-key map "gmnt" 'calendar-mayan-next-tzolkin-date)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1702 (define-key map "Aa" 'appt-add)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1703 (define-key map "Ad" 'appt-delete)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1704 (define-key map "S" 'calendar-sunrise-sunset)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1705 (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
1706 (define-key map " " 'scroll-other-window)
93815
f25074f90473 (calendar-mode-map): Replace use of kbd.
Glenn Morris <rgm@gnu.org>
parents: 93808
diff changeset
1707 (define-key map "\d" 'scroll-other-window-down)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1708 (define-key map "\C-c\C-l" 'calendar-redraw)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1709 (define-key map "." 'calendar-goto-today)
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1710 (define-key map "o" 'calendar-other-month)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1711 (define-key map "q" 'calendar-exit)
84554
5bd5d06e4cf2 Rename all list-calendar-holidays callers to calendar-list-holidays,
Glenn Morris <rgm@gnu.org>
parents: 82365
diff changeset
1712 (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
1713 (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
1714 (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
1715 (define-key map "u" 'calendar-unmark)
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
1716 (define-key map "m" 'diary-mark-entries)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1717 (define-key map "d" 'diary-view-entries)
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
1718 (define-key map "D" 'diary-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
1719 (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
1720 (define-key map "pd" 'calendar-print-day-of-year)
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
1721 (define-key map "pC" 'calendar-chinese-print-date)
93719
5673edec9392 Update for coptic and french name changes.
Glenn Morris <rgm@gnu.org>
parents: 93714
diff changeset
1722 (define-key map "pk" 'calendar-coptic-print-date)
5673edec9392 Update for coptic and french name changes.
Glenn Morris <rgm@gnu.org>
parents: 93714
diff changeset
1723 (define-key map "pe" 'calendar-ethiopic-print-date)
93647
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1724 (define-key map "pp" 'calendar-persian-print-date)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1725 (define-key map "pc" 'calendar-iso-print-date)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1726 (define-key map "pj" 'calendar-julian-print-date)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1727 (define-key map "pa" 'calendar-astro-print-day-number)
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
1728 (define-key map "ph" 'calendar-hebrew-print-date)
93647
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1729 (define-key map "pi" 'calendar-islamic-print-date)
84593
6a5b534dceee Following cal-bahai renaming, update all
Glenn Morris <rgm@gnu.org>
parents: 84554
diff changeset
1730 (define-key map "pb" 'calendar-bahai-print-date)
93719
5673edec9392 Update for coptic and french name changes.
Glenn Morris <rgm@gnu.org>
parents: 93714
diff changeset
1731 (define-key map "pf" 'calendar-french-print-date)
93647
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1732 (define-key map "pm" 'calendar-mayan-print-date)
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1733 (define-key map "po" 'calendar-print-other-dates)
93791
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
1734 (define-key map "id" 'diary-insert-entry)
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
1735 (define-key map "iw" 'diary-insert-weekly-entry)
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
1736 (define-key map "im" 'diary-insert-monthly-entry)
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
1737 (define-key map "iy" 'diary-insert-yearly-entry)
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
1738 (define-key map "ia" 'diary-insert-anniversary-entry)
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
1739 (define-key map "ib" 'diary-insert-block-entry)
4ef65ad699dc Update for diary-lib name changes.
Glenn Morris <rgm@gnu.org>
parents: 93740
diff changeset
1740 (define-key map "ic" 'diary-insert-cyclic-entry)
93740
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
1741 (define-key map "ihd" 'diary-hebrew-insert-entry)
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
1742 (define-key map "ihm" 'diary-hebrew-insert-monthly-entry)
61bda7ffa0b8 Update for chinese and hebrew name changes.
Glenn Morris <rgm@gnu.org>
parents: 93730
diff changeset
1743 (define-key map "ihy" 'diary-hebrew-insert-yeary-entry)
93647
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1744 (define-key map "iid" 'diary-islamic-insert-entry)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1745 (define-key map "iim" 'diary-islamic-insert-monthly-entry)
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1746 (define-key map "iiy" 'diary-islamic-insert-yearly-entry)
84593
6a5b534dceee Following cal-bahai renaming, update all
Glenn Morris <rgm@gnu.org>
parents: 84554
diff changeset
1747 (define-key map "iBd" 'diary-bahai-insert-entry)
6a5b534dceee Following cal-bahai renaming, update all
Glenn Morris <rgm@gnu.org>
parents: 84554
diff changeset
1748 (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
1749 (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
1750 (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
1751 (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
1752 (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
1753 (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
1754 (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
1755 (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
1756 (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
1757 (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
1758 (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
1759 (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
1760 (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
1761 (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
1762 (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
1763 (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
1764 (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
1765 (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
1766
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1767 (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
1768 (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
1769 ;; 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
1770 ;; 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
1771 ;; 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
1772 ;; (define-key map [mouse-2] 'ignore)
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1773
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1774 (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
1775 (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
1776 (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
1777 (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
1778 (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
1779
82118
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1780 (define-key map [down-mouse-3]
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1781 (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
1782 (define-key map [down-mouse-2]
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
1783 (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
1784
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1785 map)
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1786 "Keymap for `calendar-mode'.")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1787
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1788 ;; FIXME unused?
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1789 (defun calendar-describe-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
1790 "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
1791 (interactive)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1792 (help-setup-xref (list #'calendar-describe-mode) (interactive-p))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1793 (with-output-to-temp-buffer (help-buffer)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1794 (princ
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1795 (format
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1796 "Calendar Mode:\nFor a complete description, type %s\n%s\n"
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1797 (substitute-command-keys
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1798 "\\<calendar-mode-map>\\[describe-mode] from within the calendar")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1799 (substitute-command-keys "\\{calendar-mode-map}")))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1800 (print-help-return-message)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1801
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1802 ;; Calendar mode is suitable only for specially formatted data.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1803 (put 'calendar-mode 'mode-class 'special)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1804
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1805 ;; After calendar-mode-map.
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1806 (defcustom calendar-mode-line-format
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1807 (list
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1808 (propertize "<"
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1809 'help-echo "mouse-1: previous month"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1810 'mouse-face 'mode-line-highlight
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1811 'keymap (make-mode-line-mouse-map 'mouse-1
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1812 'calendar-scroll-right))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1813 "Calendar"
31669
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1814 (concat
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1815 (propertize
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1816 (substitute-command-keys
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1817 "\\<calendar-mode-map>\\[calendar-goto-info-node] info")
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1818 '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
1819 'mouse-face 'mode-line-highlight
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1820 '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
1821 " / "
31669
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1822 (propertize
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1823 (substitute-command-keys
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1824 " \\<calendar-mode-map>\\[calendar-other-month] other")
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1825 '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
1826 '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
1827 'keymap (make-mode-line-mouse-map
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1828 'mouse-1 'calendar-mouse-other-month))
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1829 " / "
31669
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1830 (propertize
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1831 (substitute-command-keys
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1832 "\\<calendar-mode-map>\\[calendar-goto-today] today")
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1833 '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
1834 'mouse-face 'mode-line-highlight
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1835 '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
1836 '(calendar-date-string (calendar-current-date) t)
74851
4b70fa58f083 (calendar-mode-map): Switch < and >.
Chong Yidong <cyd@stupidchicken.com>
parents: 73518
diff changeset
1837 (propertize ">"
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1838 'help-echo "mouse-1: next month"
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1839 'mouse-face 'mode-line-highlight
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1840 'keymap (make-mode-line-mouse-map
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1841 '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
1842 "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
1843
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1844 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
1845 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
1846 `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
1847 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
1848 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
1849 and the ISO week/year numbers in the mode. When `calendar-move-hook' is set
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1850 to `calendar-update-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
1851 under the cursor:
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1852
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1853 (list
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1854 \"\"
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1855 '(calendar-hebrew-date-string date)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1856 '(let* ((year (calendar-extract-year date))
44369
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1857 (d (calendar-day-number date))
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1858 (days-remaining
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1859 (- (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
1860 (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
1861 '(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
1862 (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
1863 (format \"ISO week %d of %d\"
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1864 (calendar-extract-month iso-date)
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1865 (calendar-extract-year iso-date)))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1866 \"\"))"
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1867 :type 'sexp
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1868 :group 'calendar)
47333
79920a7d8018 (mouse-scroll-calendar-left)
Richard M. Stallman <rms@gnu.org>
parents: 44371
diff changeset
1869
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1870 (defun calendar-mouse-other-month (event)
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1871 "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
1872 EVENT is the last mouse event."
47333
79920a7d8018 (mouse-scroll-calendar-left)
Richard M. Stallman <rms@gnu.org>
parents: 44371
diff changeset
1873 (interactive "e")
79920a7d8018 (mouse-scroll-calendar-left)
Richard M. Stallman <rms@gnu.org>
parents: 44371
diff changeset
1874 (save-selected-window
79920a7d8018 (mouse-scroll-calendar-left)
Richard M. Stallman <rms@gnu.org>
parents: 44371
diff changeset
1875 (select-window (posn-window (event-start event)))
79920a7d8018 (mouse-scroll-calendar-left)
Richard M. Stallman <rms@gnu.org>
parents: 44371
diff changeset
1876 (call-interactively 'calendar-other-month)))
79920a7d8018 (mouse-scroll-calendar-left)
Richard M. Stallman <rms@gnu.org>
parents: 44371
diff changeset
1877
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
1878 (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
1879 "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
1880 (interactive)
92551
a9c1d203dd4a (calendar-version): Use emacs-version and make it obsolete. Move to end.
Glenn Morris <rgm@gnu.org>
parents: 92530
diff changeset
1881 (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
1882
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1883 (defvar calendar-mark-ring nil
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1884 "Used by `calendar-set-mark'.")
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1885
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1886 (defun calendar-mode ()
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1887 "A major mode for the calendar window.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1888
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
1889 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
1890 \\<calendar-mode-map>\\[calendar-goto-info-node] from within the calendar.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1891
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
1892 \\<calendar-mode-map>\\{calendar-mode-map}"
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1893 (kill-all-local-variables)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1894 (setq major-mode 'calendar-mode
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1895 mode-name "Calendar"
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1896 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
1897 buffer-undo-list t
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
1898 indent-tabs-mode nil)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1899 (use-local-map calendar-mode-map)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1900 (calendar-update-mode-line)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1901 (make-local-variable 'calendar-mark-ring)
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
1902 (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
1903 (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
1904 ;; 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
1905 ;; so let's make sure they're always set. Most likely, this will be reset
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1906 ;; soon in calendar-generate, but better safe than sorry.
82203
3d0d3af343ac (calendar-mode): Make sure displayed-(month|year) are set.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82151
diff changeset
1907 (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
1908 (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
1909 (set (make-local-variable 'font-lock-defaults)
63334
e3610cf31194 (calendar-mode): Use run-mode-hooks.
Lute Kamstra <lute@gnu.org>
parents: 63221
diff changeset
1910 '(calendar-font-lock-keywords t))
e3610cf31194 (calendar-mode): Use run-mode-hooks.
Lute Kamstra <lute@gnu.org>
parents: 63221
diff changeset
1911 (run-mode-hooks 'calendar-mode-hook))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1912
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1913 (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
1914 "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
1915 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
1916 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
1917 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
1918 the STRINGS are just concatenated and the result truncated."
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1919 ;; 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
1920 ;; 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
1921 ;; 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
1922 (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
1923 (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
1924 (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
1925 strings)))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1926 (n (- length (length (apply 'concat strings))))
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1927 (m (1- (length strings)))
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1928 (s (car strings))
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1929 (strings (cdr strings))
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1930 (i 0))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
1931 (dolist (string strings)
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1932 (setq s (concat s
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1933 (make-string (max 0 (/ (+ n i) m)) char)
92988
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
1934 string)
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
1935 i (1+ i)))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1936 (substring s 0 length)))
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1937
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1938 (defun calendar-update-mode-line ()
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1939 "Update the calendar mode line with the current date and date style."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1940 (if (bufferp (get-buffer calendar-buffer))
65477
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
1941 (with-current-buffer calendar-buffer
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1942 (setq mode-line-format
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
1943 (calendar-string-spread
44369
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1944 (let ((date (condition-case nil
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1945 (calendar-cursor-to-nearest-date)
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1946 (error (calendar-current-date)))))
93647
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1947 (mapcar 'eval calendar-mode-line-format))
447b30ba4c57 Update for iso, islamic, julian, mayan, persian name changes.
Glenn Morris <rgm@gnu.org>
parents: 93630
diff changeset
1948 ?\s (frame-width)))
44369
72939dbe7b7b (update-calendar-mode-line): Force mode-line update.
Richard M. Stallman <rms@gnu.org>
parents: 44084
diff changeset
1949 (force-mode-line-update))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1950
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
1951 (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
1952 "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
1953 (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
1954 list)
31669
ec8ce5820488 (calendar-mode-line-format): Make fields
Dave Love <fx@gnu.org>
parents: 26530
diff changeset
1955 (walk-windows (lambda (w)
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1956 (if (memq (window-buffer w) calendar-buffers)
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
1957 (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
1958 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
1959 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
1960
3ece524b8ea3 Lots of minor fixes and code polishing. Exit-calendar code rewritten.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 9417
diff changeset
1961 (defun calendar-buffer-list ()
92895
379d912c3710 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 92858
diff changeset
1962 "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
1963 (let (buffs)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1964 (dolist (b (list calendar-hebrew-yahrzeit-buffer lunar-phases-buffer
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1965 holiday-buffer diary-fancy-buffer
92823
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1966 (get-file-buffer diary-file)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1967 calendar-buffer calendar-other-calendars-buffer))
92895
379d912c3710 (diary-file): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 92858
diff changeset
1968 (and b (setq b (get-buffer b))
92823
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1969 (push b buffs)))
8fb3c7b3e53a (cal-hebrew-yahrzeit-buffer): New constant.
Glenn Morris <rgm@gnu.org>
parents: 92716
diff changeset
1970 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
1971
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1972 (defun calendar-exit ()
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
1973 "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
1974 (interactive)
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
1975 (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
1976 (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
1977 (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
1978 (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
1979 "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
1980 ;; 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
1981 ;; 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
1982 (mapc (lambda (x)
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
1983 (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
1984 (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
1985
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1986 (define-obsolete-function-alias 'exit-calendar 'calendar-exit "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
1987
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
1988 (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
1989 "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
1990 (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
1991 (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
1992 (cond
37430
a0e805e3a7f1 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker): Use
Eli Zaretskii <eliz@gnu.org>
parents: 37001
diff changeset
1993 ((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
1994 (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
1995 (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
1996 (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
1997 nil)
37430
a0e805e3a7f1 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker): Use
Eli Zaretskii <eliz@gnu.org>
parents: 37001
diff changeset
1998 ((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
1999 (if calendar-remove-frame-by-deleting
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
2000 (delete-frame (window-frame window))
3b6cf16f3633 * calendar/calendar.el (calendar-remove-frame-by-deleting):
Sam Steingold <sds@gnu.org>
parents: 26329
diff changeset
2001 (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
2002 ((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
2003 (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
2004 (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
2005 (bury-buffer))))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2006
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2007 (defun calendar-current-date ()
31730
719a230f8091 Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31671
diff changeset
2008 "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
2009 (let ((now (decode-time)))
e3b0c3bf4451 (calendar-current-date): Simplify by using decode-time instead
Richard M. Stallman <rms@gnu.org>
parents: 15317
diff changeset
2010 (list (nth 4 now) (nth 3 now) (nth 5 now))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2011
5829
d266967cc1cc (calendar-mode-line-format): Change "current" to "today".
Richard M. Stallman <rms@gnu.org>
parents: 5771
diff changeset
2012 (defun calendar-cursor-to-date (&optional error)
31730
719a230f8091 Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31671
diff changeset
2013 "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
2014 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
2015 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
2016 (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
2017 (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
2018 (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
2019 (year
324bb3410cfb Fix calendar-cursor-to-date to handle starred days correctly.
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 6025
diff changeset
2020 (cond
92602
020d7b75c13a (calendar-insert-indented): Doc fix. Use when rather than if.
Glenn Morris <rgm@gnu.org>
parents: 92594
diff changeset
2021 ((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
2022 ((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
2023 (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
2024 (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
2025 (< 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
2026 (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
2027 (if (not (looking-at " "))
82118
baffe86b0c44 (calendar-mode-map): Move initialization into declaration.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 82086
diff changeset
2028 (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
2029 (list month
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 61394
diff changeset
2030 (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
2031 year))
93492
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2032 (if error (error "Not on a date!")))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2033
65477
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
2034 (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
2035
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2036 ;; 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
2037 ;; 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
2038
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2039 ;;(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
2040 ;; "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
2041 ;;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
2042 ;;Gregorian date Sunday, December 31, 1 BC."
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2043 ;; (let* ((approx (/ date 366)) ; approximation from below
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2044 ;; (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
2045 ;; (+ approx
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2046 ;; (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
2047 ;; (>= 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
2048 ;; 1)))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2049 ;; (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
2050 ;; (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
2051 ;; (> date
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2052 ;; (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
2053 ;; (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
2054 ;; 1)))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2055 ;; (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
2056 ;; (- date
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2057 ;; (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
2058 ;; (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
2059
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2060 (defun calendar-gregorian-from-absolute (date)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2061 "Compute the list (month day year) corresponding to the absolute DATE.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2062 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
2063 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
2064 handle dates in years BC."
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2065 ;; 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
2066 ;; 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
2067 ;; Clamen, Software--Practice and Experience, Volume 23, Number 4
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2068 ;; (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
2069 (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
2070 (n400 (/ d0 146097))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2071 (d1 (% d0 146097))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2072 (n100 (/ d1 36524))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2073 (d2 (% d1 36524))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2074 (n4 (/ d2 1461))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2075 (d3 (% d2 1461))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2076 (n1 (/ d3 365))
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2077 (day (1+ (% d3 365)))
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
2078 (year (+ (* 400 n400) (* 100 n100) (* n4 4) n1))
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
2079 (month 1)
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
2080 mdays)
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2081 (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
2082 (list 12 31 year)
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
2083 (setq year (1+ year))
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
2084 (while (< (setq mdays (calendar-last-day-of-month month year)) day)
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
2085 (setq day (- day mdays)
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
2086 month (1+ month)))
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
2087 (list month day year))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2088
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2089 (defun calendar-other-month (month year)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2090 "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
2091 (interactive (calendar-read-date 'noday))
92988
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
2092 (unless (and (= month displayed-month)
189ca7ef805d (calendar-mod): Remove.
Glenn Morris <rgm@gnu.org>
parents: 92969
diff changeset
2093 (= year displayed-year))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2094 (let ((old-date (calendar-cursor-to-date))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2095 (today (calendar-current-date)))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2096 (calendar-generate-window month year)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2097 (calendar-cursor-to-visible-date
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2098 (cond
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2099 ((calendar-date-is-visible-p old-date) old-date)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2100 ((calendar-date-is-visible-p today) today)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2101 (t (list month 1 year)))))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2102
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2103 (defun calendar-set-mark (arg)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2104 "Mark the date under the cursor, or jump to marked date.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2105 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
2106 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
2107 (interactive "P")
5829
d266967cc1cc (calendar-mode-line-format): Change "current" to "today".
Richard M. Stallman <rms@gnu.org>
parents: 5771
diff changeset
2108 (let ((date (calendar-cursor-to-date t)))
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2109 (if arg
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2110 (if (null calendar-mark-ring)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2111 (error "No mark set in this buffer")
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2112 (calendar-goto-date (car calendar-mark-ring))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2113 (setq calendar-mark-ring
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2114 (cdr (nconc calendar-mark-ring (list date)))))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2115 (push date calendar-mark-ring)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2116 ;; 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
2117 ;; 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
2118 ;; in other buffers to get the same effect.
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2119 (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
2120 (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
2121 (message "Mark set"))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2122
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2123 (defun calendar-exchange-point-and-mark ()
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2124 "Exchange the current cursor position with the marked date."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2125 (interactive)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2126 (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
2127 (date (calendar-cursor-to-date t)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2128 (if (null mark)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2129 (error "No mark set in this buffer")
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2130 (setq calendar-mark-ring (cons date (cdr calendar-mark-ring)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2131 (calendar-goto-date mark))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2132
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2133 (defun calendar-count-days-region ()
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2134 "Count the number of days (inclusive) between point and the mark."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2135 (interactive)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2136 (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
2137 (calendar-cursor-to-date t))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2138 (calendar-absolute-from-gregorian
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2139 (or (car calendar-mark-ring)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2140 (error "No mark set in this buffer")))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2141 (days (1+ (if (> days 0) days (- days)))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2142 (message "Region has %d day%s (inclusive)"
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2143 days (if (> days 1) "s" ""))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2144
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2145 (defun calendar-not-implemented ()
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2146 "Not implemented."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2147 (interactive)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2148 (error "%s not available in the calendar"
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2149 (global-key-binding (this-command-keys))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2150
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2151 (defun calendar-read (prompt acceptable &optional initial-contents)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2152 "Return an object read from the minibuffer.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2153 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
2154 entered item is acceptable. If non-nil, optional third arg INITIAL-CONTENTS
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2155 is a string to insert in the minibuffer before reading."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2156 (let ((value (read-minibuffer prompt initial-contents)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2157 (while (not (funcall acceptable value))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2158 (setq value (read-minibuffer prompt initial-contents)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2159 value))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2160
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2161
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2162 (defvar calendar-abbrev-length 3
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2163 "*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
2164 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
2165
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2166 ;; 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
2167 (defcustom calendar-day-name-array
23531
37ae25c77df0 Add doc strings CORRECTLY!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 23498
diff changeset
2168 ["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
2169 "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
2170 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
2171 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
2172 `calendar-day-abbrev-array'."
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2173 :group 'calendar
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2174 :type '(vector (string :tag "Sunday")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2175 (string :tag "Monday")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2176 (string :tag "Tuesday")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2177 (string :tag "Wednesday")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2178 (string :tag "Thursday")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2179 (string :tag "Friday")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2180 (string :tag "Saturday")))
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2181
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2182 (defvar calendar-day-abbrev-array
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2183 [nil nil nil nil nil nil nil]
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2184 "*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
2185 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
2186 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
2187 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
2188 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
2189 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
2190 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
2191 `calendar-abbrev-length' characters of the corresponding full name.")
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2192
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2193 (defcustom calendar-month-name-array
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2194 ["January" "February" "March" "April" "May" "June"
23531
37ae25c77df0 Add doc strings CORRECTLY!
Edward M. Reingold <reingold@emr.cs.iit.edu>
parents: 23498
diff changeset
2195 "July" "August" "September" "October" "November" "December"]
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2196 "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
2197 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
2198 :group 'calendar
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2199 :type '(vector (string :tag "January")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2200 (string :tag "February")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2201 (string :tag "March")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2202 (string :tag "April")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2203 (string :tag "May")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2204 (string :tag "June")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2205 (string :tag "July")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2206 (string :tag "August")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2207 (string :tag "September")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2208 (string :tag "October")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2209 (string :tag "November")
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2210 (string :tag "December")))
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2211
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2212 (defvar calendar-month-abbrev-array
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2213 [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
2214 "*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
2215 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
2216 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
2217 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
2218 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
2219 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
2220 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
2221 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
2222 corresponding full name.")
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2223
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2224 (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
2225 "Make an assoc list corresponding to SEQUENCE.
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2226 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
2227 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
2228 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
2229 construct abbreviations corresponding to the elements in SEQUENCE.
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2230 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
2231 association index as the full name it represents.
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2232 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
2233 (let ((index 0)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2234 (offset (or start-index 1))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2235 (aseq (if abbrevs (calendar-abbrev-construct abbrevs sequence)))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2236 (aseqp (if abbrevs (calendar-abbrev-construct abbrevs sequence
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2237 'period)))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2238 alist elem)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2239 (dotimes (i (length sequence) (reverse alist))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2240 (setq index (+ i offset)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2241 elem (elt sequence i)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2242 alist
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2243 (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
2244 (if aseq
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2245 (setq elem (elt aseq i)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2246 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
2247 index) alist)))
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2248 (if aseqp
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2249 (setq elem (elt aseqp i)
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2250 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
2251 index) alist))))))
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2252
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2253 (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
2254 "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
2255 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
2256 \(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
2257 \(month year)"
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2258 (let* ((year (calendar-read
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2259 "Year (>0): "
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2260 (lambda (x) (> x 0))
93844
bf9ef749c23e Replace int-to-string with number-to-string.
Glenn Morris <rgm@gnu.org>
parents: 93815
diff changeset
2261 (number-to-string (calendar-extract-year
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2262 (calendar-current-date)))))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2263 (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
2264 (completion-ignore-case t)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2265 (month (cdr (assoc-string
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2266 (completing-read
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2267 "Month name: "
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2268 (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
2269 nil t)
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2270 (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
2271 (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
2272 (if noday
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2273 (if (eq noday t)
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2274 (list month 1 year)
92594
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2275 (list month year))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2276 (list month
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2277 (calendar-read (format "Day (1-%d): " last)
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2278 (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
2279 year))))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2280
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2281 (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
2282 "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
2283 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
2284 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
2285 (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
2286 (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
2287 (+ (* 12 (- yr2 yr1))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2288 (- mon2 mon1)))
674c88622bd9 Move many autoloads to separate file, cal-loaddefs.el.
Glenn Morris <rgm@gnu.org>
parents: 92551
diff changeset
2289
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2290 (defun calendar-abbrev-construct (abbrev full &optional period)
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2291 "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
2292 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
2293 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
2294 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
2295 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
2296 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
2297 (let (elem array name)
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2298 (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
2299 (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
2300 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
2301 (substring name 0
833b56d6e12d (list-diary-entries-hook, diary-display-hook, nongregorian-diary-listing-hook)
Glenn Morris <rgm@gnu.org>
parents: 52115
diff changeset
2302 (min calendar-abbrev-length (length name))))
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2303 elem (format "%s%s" elem (if period "." ""))
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2304 array (append array (list elem))))
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2305 (vconcat array)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2306
48366
9dad713d153a Patch of Alan Shutko <ats@acm.org> by way of rms.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47333
diff changeset
2307 (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
2308 `((,(concat (regexp-opt (mapcar 'identity calendar-month-name-array) t)
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2309 " -?[0-9]+")
48683
ead34b521994 (facemenu-unlisted-faces): Only update after facemenu was loaded.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 48366
diff changeset
2310 . 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
2311 (,(regexp-opt
ead34b521994 (facemenu-unlisted-faces): Only update after facemenu was loaded.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 48366
diff changeset
2312 (list (substring (aref calendar-day-name-array 6) 0 2)
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2313 (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
2314 ;; 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
2315 . font-lock-comment-face)
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2316 ;; 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
2317 (,(regexp-opt (mapcar (lambda (x) (substring x 0 2))
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2318 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
2319 . 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
2320 "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
2321
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2322 (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
2323 "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
2324 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
2325 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
2326 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
2327 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
2328 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
2329 the variable `calendar-day-abbrev-array' is used."
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2330 (aref (if abbrev
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2331 (calendar-abbrev-construct calendar-day-abbrev-array
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2332 calendar-day-name-array)
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2333 calendar-day-name-array)
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2334 (if absolute date (calendar-day-of-week date))))
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2335
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2336 (defun calendar-month-name (month &optional abbrev)
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2337 "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
2338 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
2339 variable `calendar-month-name-array', unless the optional
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2340 argument ABBREV is non-nil, in which case
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2341 `calendar-month-abbrev-array' is used."
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2342 (aref (if abbrev
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2343 (calendar-abbrev-construct calendar-month-abbrev-array
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2344 calendar-month-name-array)
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2345 calendar-month-name-array)
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2346 (1- month)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2347
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2348 (defun calendar-day-of-week (date)
52723
f33d2cba6bb7 (increment-calendar-month, calendar-leap-year-p)
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
2349 "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
2350 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
2351 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
2352 (mod (calendar-absolute-from-gregorian date) 7))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2353
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2354 (defun calendar-unmark ()
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2355 "Delete all diary/holiday marks/highlighting from the calendar."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2356 (interactive)
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2357 (setq calendar-mark-holidays-flag nil
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2358 calendar-mark-diary-entries-flag nil)
93492
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2359 (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
2360 (mapc 'delete-overlay (overlays-in (point-min) (point-max)))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2361
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2362 (defun calendar-date-is-visible-p (date)
93449
64521597b7dd (increment-calendar-month): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93374
diff changeset
2363 "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
2364 (and (calendar-date-is-valid-p date)
64521597b7dd (increment-calendar-month): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93374
diff changeset
2365 (< (abs (calendar-interval
64521597b7dd (increment-calendar-month): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93374
diff changeset
2366 displayed-month displayed-year
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2367 (calendar-extract-month date) (calendar-extract-year date)))
93449
64521597b7dd (increment-calendar-month): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 93374
diff changeset
2368 2)))
92530
04183df0b71f (calendar-date-is-legal-p): New obsolete alias.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
2369
93497
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2370 (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
2371 "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
2372 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
2373 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
2374 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
2375 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
2376 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
2377 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
2378 Returns the corresponding Gregorian date."
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2379 ;; 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
2380 ;; that might make them visible.
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2381 (let* ((m1 displayed-month)
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2382 (y1 displayed-year)
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2383 (m2 displayed-month)
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2384 (y2 displayed-year)
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2385 ;; 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
2386 (start-date (progn
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2387 (calendar-increment-month m1 y1 -1)
93497
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2388 (calendar-absolute-from-gregorian (list m1 1 y1))))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2389 (end-date (progn
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2390 (calendar-increment-month m2 y2 1)
93497
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2391 (calendar-absolute-from-gregorian
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2392 (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
2393 ;; 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
2394 (local-start (funcall fromabs start-date))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2395 (local-end (funcall fromabs end-date))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2396 ;; Local year of first/last dates.
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2397 ;; Can only differ if displayed-month = 12, 1, 2.
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2398 (local-y1 (calendar-extract-year local-start))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2399 (local-y2 (calendar-extract-year local-end))
93497
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2400 ;; 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
2401 ;; 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
2402 ;; when the _local_ new year is visible.
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2403 (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
2404 (date (calendar-gregorian-from-absolute
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2405 (funcall toabs (list month day year)))))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2406 (if (calendar-date-is-visible-p date)
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2407 date)))
258266315e25 (calendar-nongregorian-visible-p): New function.
Glenn Morris <rgm@gnu.org>
parents: 93492
diff changeset
2408
92530
04183df0b71f (calendar-date-is-legal-p): New obsolete alias.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
2409 (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
2410 "Return t if DATE is a valid date."
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2411 (let ((month (calendar-extract-month date))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2412 (day (calendar-extract-day date))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2413 (year (calendar-extract-year date)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2414 (and (<= 1 month) (<= month 12)
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2415 ;; (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
2416 ;; 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
2417 ;; (calendar-read-date 'noday) returns (month year), which
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2418 ;; currently results in calendar-extract-year returning nil.
70581
1eaae4fee224 (calendar-basic-setup): Set day to 1 in
Glenn Morris <rgm@gnu.org>
parents: 69356
diff changeset
2419 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
2420 ;; 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
2421 ;; 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
2422 ;; Note there are side effects on calendar navigation.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2423 (<= 1 year))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2424
92530
04183df0b71f (calendar-date-is-legal-p): New obsolete alias.
Juanma Barranquero <lekktu@gmail.com>
parents: 87649
diff changeset
2425 (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
2426 '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
2427
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2428 (defun calendar-date-equal (date1 date2)
31730
719a230f8091 Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31671
diff changeset
2429 "Return t if the DATE1 and DATE2 are the same."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2430 (and
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2431 (= (calendar-extract-month date1) (calendar-extract-month date2))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2432 (= (calendar-extract-day date1) (calendar-extract-day date2))
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2433 (= (calendar-extract-year date1) (calendar-extract-year date2))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2434
93504
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2435 (defun calendar-make-temp-face (attrlist)
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2436 "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
2437 ATTRLIST is a list with elements of the form :face face :foreground color."
93510
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2438 (let ((attrs attrlist)
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2439 faceinfo face temp-face)
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2440 ;; Separate :face from the other attributes. Use the last :face
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2441 ;; if there are more than one. FIXME is merging meaningful?
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2442 (while attrs
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2443 (if (eq (car attrs) :face)
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2444 (setq face (intern-soft (cadr attrs))
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2445 attrs (cddr attrs))
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2446 (push (car attrs) faceinfo)
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2447 (setq attrs (cdr attrs))))
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2448 (or (facep face) (setq face 'default))
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2449 (if (not faceinfo)
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2450 ;; No attributes to apply, so just use an existing-face.
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2451 face
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2452 ;; FIXME should we be using numbered temp-faces, re-using where poss?
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2453 (setq temp-face
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2454 (make-symbol
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2455 (concat ":caltemp"
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2456 (mapconcat (lambda (sym)
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2457 (cond
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2458 ((symbolp sym) (symbol-name sym))
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2459 ((numberp sym) (number-to-string sym))
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2460 (t sym)))
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2461 attrlist ""))))
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2462 (make-face temp-face)
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2463 (copy-face face temp-face)
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2464 ;; Apply the font aspects.
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2465 (apply 'set-face-attribute temp-face nil (nreverse faceinfo))
343109876a78 (calendar-make-temp-face): Fix previous change. Use the last :face if
Glenn Morris <rgm@gnu.org>
parents: 93504
diff changeset
2466 temp-face)))
93504
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2467
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2468 (defun calendar-mark-visible-date (date &optional mark)
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2469 "Mark DATE in the calendar window with MARK.
49736
dd8404d4fed8 (diary-face-attrs): New custom.
Juanma Barranquero <lekktu@gmail.com>
parents: 49350
diff changeset
2470 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
2471 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
2472 (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
2473 (with-current-buffer calendar-buffer
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2474 (save-excursion
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2475 (calendar-cursor-to-visible-date date)
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2476 (setq mark
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2477 (or (and (stringp mark) (= (length mark) 1) mark) ; single-char
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
2478 (and font-lock-mode
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
2479 (or
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
2480 (and (listp mark) (> (length mark) 0) mark) ; attrs
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
2481 (and (facep mark) mark))) ; face-name
65620
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2482 diary-entry-marker))
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2483 (cond
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2484 ;; 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
2485 ((facep mark)
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2486 (overlay-put
eae4a82ba77a (mark-visible-calendar-date): Save excursion.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 65477
diff changeset
2487 (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
2488 ;; 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
2489 ((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
2490 (overlay-put
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2491 (make-overlay (1+ (point)) (+ 2 (point))) 'display mark))
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2492 (t ; attr list
93504
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2493 (overlay-put
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2494 (make-overlay (1- (point)) (1+ (point))) 'face
9105df157c3a (calendar-make-temp-face): New function.
Glenn Morris <rgm@gnu.org>
parents: 93497
diff changeset
2495 (calendar-make-temp-face mark))))))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2496
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2497 (define-obsolete-function-alias 'mark-visible-calendar-date
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2498 'calendar-mark-visible-date "23.1")
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2499
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2500 (defun calendar-star-date ()
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2501 "Replace the date under the cursor in the calendar window with asterisks.
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2502 You might want to add this function to `calendar-today-visible-hook'."
93492
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2503 (unless (catch 'found
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2504 (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
2505 (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
2506 (throw 'found t))))
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2507 (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
2508 (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
2509 (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
2510 ;; 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
2511 ;; 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
2512 ;; 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
2513 (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
2514 'display (copy-sequence "*"))
2fe1b51b8771 (calendar-mode-map): Use calendar-mark-holidays rather than obsolete alias.
Glenn Morris <rgm@gnu.org>
parents: 93464
diff changeset
2515 (overlay-put ol 'calendar-star t))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2516
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2517 (defun calendar-mark-today ()
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2518 "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
2519 The date is marked with `calendar-today-marker'. You might want to add
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2520 this function to `calendar-today-visible-hook'."
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2521 (calendar-mark-visible-date (calendar-cursor-to-date) calendar-today-marker))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2522
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2523 (defun calendar-date-compare (date1 date2)
31730
719a230f8091 Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31671
diff changeset
2524 "Return t if DATE1 is before DATE2, nil otherwise.
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2525 The actual dates are in the car of DATE1 and DATE2."
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2526 (< (calendar-absolute-from-gregorian (car date1))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2527 (calendar-absolute-from-gregorian (car date2))))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2528
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2529 (defun calendar-date-string (date &optional abbreviate nodayname)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2530 "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
2531 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
2532 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
2533 `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
2534 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
2535 name of the day of the week."
92969
bb4fc128d00d (european-calendar-style, calendar-for-loop)
Glenn Morris <rgm@gnu.org>
parents: 92930
diff changeset
2536 (let* ((dayname (unless nodayname (calendar-day-name date abbreviate)))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2537 (month (calendar-extract-month date))
52115
60ffdeba6e0e (diary-file, diary-file-name-prefix)
Glenn Morris <rgm@gnu.org>
parents: 49828
diff changeset
2538 (monthname (calendar-month-name month abbreviate))
93844
bf9ef749c23e Replace int-to-string with number-to-string.
Glenn Morris <rgm@gnu.org>
parents: 93815
diff changeset
2539 (day (number-to-string (calendar-extract-day date)))
bf9ef749c23e Replace int-to-string with number-to-string.
Glenn Morris <rgm@gnu.org>
parents: 93815
diff changeset
2540 (month (number-to-string month))
bf9ef749c23e Replace int-to-string with number-to-string.
Glenn Morris <rgm@gnu.org>
parents: 93815
diff changeset
2541 (year (number-to-string (calendar-extract-year date))))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2542 (mapconcat 'eval calendar-date-display-form "")))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2543
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2544 (defun calendar-dayname-on-or-before (dayname date)
31730
719a230f8091 Docstring fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31671
diff changeset
2545 "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
2546 DAYNAME=0 means Sunday, DAYNAME=1 means Monday, and so on.
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2547
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2548 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
2549 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
2550 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
2551 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
2552 (- date (% (- date dayname) 7)))
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2553
4658
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2554 (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
2555 "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
2556 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
2557 return the Nth DAYNAME before MONTH DAY, YEAR (inclusive).
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2558 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
2559
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2560 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
2561 (if (> n 0)
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2562 (+ (* 7 (1- n))
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2563 (calendar-dayname-on-or-before
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2564 dayname
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2565 (+ 6 (calendar-absolute-from-gregorian
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2566 (list month (or day 1) year)))))
4658
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2567 (+ (* 7 (1+ n))
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2568 (calendar-dayname-on-or-before
92858
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2569 dayname
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2570 (calendar-absolute-from-gregorian
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2571 (list month
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2572 (or day (calendar-last-day-of-month month year))
7096add7a945 Whitespace only.
Glenn Morris <rgm@gnu.org>
parents: 92844
diff changeset
2573 year))))))
4658
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2574
3865
2c6883d0a1b2 * calendar.el (calendar-version): Update to 5.1. Fixed a variety
Jim Blandy <jimb@redhat.com>
parents: 3778
diff changeset
2575 (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
2576 "The date of Nth DAYNAME in MONTH, YEAR before/after optional DAY.
93528
6fb229e96593 (diary-entry-marker, calendar-today-marker, calendar-holiday-marker)
Glenn Morris <rgm@gnu.org>
parents: 93510
diff changeset
2577 Like `calendar-nth-named-absday', but returns a Gregorian date."
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2578 (calendar-gregorian-from-absolute
4658
a34bd3ee36ef (solar-holidays): Use new
Paul Eggert <eggert@twinsun.com>
parents: 4652
diff changeset
2579 (calendar-nth-named-absday n dayname month year day)))
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2580
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2581 (defun calendar-day-of-year-string (&optional date)
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2582 "String of day number of year of Gregorian DATE.
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2583 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
2584 (let* ((d (or date (calendar-current-date)))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2585 (year (calendar-extract-year d))
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2586 (day (calendar-day-number d))
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2587 (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
2588 (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
2589 day year days-remaining (if (= days-remaining 1) "" "s"))))
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2590
93091
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2591 (defun calendar-other-dates (date)
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2592 "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
2593 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
2594 (let (odate)
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2595 (delq nil
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2596 (list
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2597 (calendar-day-of-year-string date)
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2598 (format "ISO date: %s" (calendar-iso-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2599 (format "Julian date: %s"
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2600 (calendar-julian-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2601 (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
2602 (calendar-astro-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2603 (format "Fixed (RD) date: %s"
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2604 (calendar-absolute-from-gregorian date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2605 (format "Hebrew date (before sunset): %s"
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2606 (calendar-hebrew-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2607 (format "Persian date: %s"
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2608 (calendar-persian-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2609 (unless (string-equal
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2610 (setq odate (calendar-islamic-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2611 "")
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2612 (format "Islamic date (before sunset): %s" odate))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2613 (unless (string-equal
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2614 (setq odate (calendar-bahai-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2615 "")
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2616 (format "Baha'i date: %s" odate))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2617 (format "Chinese date: %s"
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2618 (calendar-chinese-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2619 (unless (string-equal
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2620 (setq odate (calendar-coptic-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2621 "")
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2622 (format "Coptic date: %s" odate))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2623 (unless (string-equal
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2624 (setq odate (calendar-ethiopic-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2625 "")
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2626 (format "Ethiopic date: %s" odate))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2627 (unless (string-equal
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2628 (setq odate (calendar-french-date-string date))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2629 "")
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2630 (format "French Revolutionary date: %s" odate))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2631 (format "Mayan date: %s"
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2632 (calendar-mayan-date-string date))))))
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2633
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
2634 (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
2635 "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
2636 (interactive)
93091
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2637 (let ((date (calendar-cursor-to-date t)))
93808
2c72483f42c9 (diary-view-entries-initially-flag): Rename view-diary-entries-initially.
Glenn Morris <rgm@gnu.org>
parents: 93791
diff changeset
2638 (calendar-in-read-only-buffer calendar-other-calendars-buffer
93026
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2639 (calendar-set-mode-line (format "%s (Gregorian)"
8e1a78482251 (calendar-today-marker, initial-calendar-window-hook)
Glenn Morris <rgm@gnu.org>
parents: 92988
diff changeset
2640 (calendar-date-string date)))
93091
b801762e0062 (calendar-other-dates): New function.
Glenn Morris <rgm@gnu.org>
parents: 93043
diff changeset
2641 (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
2642
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
2643 (defun calendar-print-day-of-year ()
5694
69471d331d0c (calendar-version): New function.
Richard M. Stallman <rms@gnu.org>
parents: 5272
diff changeset
2644 "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
2645 (interactive)
87170
e50a2e215441 * erc-stamp.el (erc-echo-timestamp):
David Kastrup <dak@gnu.org>
parents: 86493
diff changeset
2646 (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
2647
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
2648 (defun calendar-set-mode-line (str)
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
2649 "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
2650 (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
2651 ;; 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
2652 (width (- (nth 2 edges) (car edges))))
68366
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
2653 (setq mode-line-format
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
2654 (if buffer-file-name
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
2655 `("-" mode-line-modified
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
2656 ,(calendar-string-spread (list str) ?- (- width 6))
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
2657 "---")
f148491791ae Remove unnecessary leading stars in docstrings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 67465
diff changeset
2658 (calendar-string-spread (list str) ?- width)))))
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
2659
92551
a9c1d203dd4a (calendar-version): Use emacs-version and make it obsolete. Move to end.
Glenn Morris <rgm@gnu.org>
parents: 92530
diff changeset
2660 (defun calendar-version ()
92697
001682fd0516 (diary-file, hebrew-holidays-1)
Glenn Morris <rgm@gnu.org>
parents: 92681
diff changeset
2661 "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
2662 (interactive)
a9c1d203dd4a (calendar-version): Use emacs-version and make it obsolete. Move to end.
Glenn Morris <rgm@gnu.org>
parents: 92530
diff changeset
2663 (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
2664
a9c1d203dd4a (calendar-version): Use emacs-version and make it obsolete. Move to end.
Glenn Morris <rgm@gnu.org>
parents: 92530
diff changeset
2665 (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
2666
a9c1d203dd4a (calendar-version): Use emacs-version and make it obsolete. Move to end.
Glenn Morris <rgm@gnu.org>
parents: 92530
diff changeset
2667
957
2619b7a9c11e entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 846
diff changeset
2668 (run-hooks 'calendar-load-hook)
628
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2669
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2670 (provide 'calendar)
ab209803a494 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2671
65477
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
2672 ;; Local variables:
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
2673 ;; byte-compile-dynamic: t
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
2674 ;; End:
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
2675
a08c0922f1c4 (calendar-for-loop): Add edebug info.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 64826
diff changeset
2676 ;; arch-tag: 19c61596-c8fb-4c69-bcf1-7dd739919cd8
675
85fd29f25c75 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 628
diff changeset
2677 ;;; calendar.el ends here