annotate lisp/calendar/calendar.el @ 93091:b801762e0062

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