;;; calendar.el --- calendar functions
-;; Copyright (C) 1988-1995, 1997, 2000-2015 Free Software Foundation,
+;; Copyright (C) 1988-1995, 1997, 2000-2016 Free Software Foundation,
;; Inc.
;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
;; can be translated from the (usual) Gregorian calendar to the day of
;; the year/days remaining in year, to the ISO commercial calendar, to
;; the Julian (old style) calendar, to the Hebrew calendar, to the
-;; Islamic calendar, to the Bahá'í calendar, to the French
+;; Islamic calendar, to the Bahá’í calendar, to the French
;; Revolutionary calendar, to the Mayan calendar, to the Chinese
;; calendar, to the Coptic calendar, to the Ethiopic calendar, and to
;; the astronomical (Julian) day number. Times of sunrise/sunset can
;; The following files are part of the calendar/diary code:
;; appt.el Appointment notification
-;; cal-bahai.el Bahá'í calendar
+;; cal-bahai.el Bahá’í calendar
;; cal-china.el Chinese calendar
;; cal-coptic.el Coptic/Ethiopic calendars
;; cal-dst.el Daylight saving time rules
(calendar-redraw))
:group 'calendar)
+(defcustom calendar-weekend-days '(0 6)
+ "Days of the week considered weekend days.
+0 means Sunday, 1 means Monday, and so on.
+
+Determines which day headers are fontified with
+`calendar-weekend-header'."
+ :type '(repeat integer)
+ :version "25.1"
+ :group 'calendar)
+
(defcustom calendar-view-diary-initially-flag nil
"Non-nil means display current date's diary entries on entry to calendar.
The diary is displayed in another window when the calendar is first displayed,
"List of functions called whenever the cursor moves in the calendar.
For example,
- (add-hook 'calendar-move-hook (lambda () (diary-view-entries 1)))
+ (add-hook \\='calendar-move-hook (lambda () (diary-view-entries 1)))
redisplays the diary for whatever date the cursor is moved to."
:type 'hook
integers appropriate to the relevant date. For example, to
display the ISO date:
- (setq calendar-date-echo-text '(format \"ISO date: %s\"
+ (setq calendar-date-echo-text \\='(format \"ISO date: %s\"
(calendar-iso-date-string
(list month day year))))
Changing this variable without using customize has no effect on
(setq calendar-week-start-day 1
calendar-intermonth-text
- '(propertize
+ \\='(propertize
(format \"%2d\"
(car
(calendar-iso-from-absolute
(calendar-absolute-from-gregorian (list month day year)))))
- 'font-lock-face 'font-lock-function-name-face))
+ \\='font-lock-face \\='font-lock-function-name-face))
See also `calendar-intermonth-header'."
:group 'calendar
'font-lock-face 'font-lock-function-name-face)))
:version "23.1")
-(defcustom diary-file "~/diary"
+(defcustom diary-file (locate-user-emacs-file "diary" "diary")
"Name of the file in which one's personal diary of dates is kept.
The file's entries are lines beginning with any of the forms
November 10, 1990. See the documentation for the function
`diary-list-sexp-entries' for more details.
-Diary entries based on the Hebrew, the Islamic and/or the Bahá'í
+Diary entries based on the Hebrew, the Islamic and/or the Bahá’í
calendar are also possible, but because these are somewhat slow, they
are ignored unless you set the `diary-nongregorian-listing-hook' and
the `diary-nongregorian-marking-hook' appropriately. See the
Diary files can contain directives to include the contents of other files; for
details, see the documentation for the variable `diary-list-entries-hook'."
+ :version "25.1" ; ~/diary -> locate-user-emacs-file
:type 'file
:group 'diary)
:group 'diary)
(defcustom diary-bahai-entry-symbol "B"
- "Symbol indicating a diary entry according to the Bahá'í calendar."
+ "Symbol indicating a diary entry according to the Bahá’í calendar."
:type 'string
:group 'diary)
Normally you should not customize this, but `calendar-date-display-form'
\(which see)."
:type 'sexp
+ :risky t
:version "23.1"
:group 'calendar)
Normally you should not customize this, but `calendar-date-display-form'
\(which see)."
:type 'sexp
+ :risky t
:group 'calendar)
(defcustom calendar-american-date-display-form
Normally you should not customize this, but `calendar-date-display-form'
\(which see)."
:type 'sexp
+ :risky t
:group 'calendar)
(defcustom calendar-date-display-form
and `year' (all numbers in string form), and `monthname' and `dayname'
\(both alphabetic strings). For example, a typical American form would be
- '(month \"/\" day \"/\" (substring year -2))
+ (month \"/\" day \"/\" (substring year -2))
whereas
- '((format \"%9s, %9s %2s, %4s\" dayname monthname day year))
+ ((format \"%9s, %9s %2s, %4s\" dayname monthname day year))
would give the usual American style in fixed-length fields. The variables
`calendar-iso-date-display-form', `calendar-european-date-display-form', and
`calendar-american-date-display-form' provide some defaults for three common
styles."
:type 'sexp
+ :risky t
:set-after '(calendar-date-style calendar-iso-date-display-form
calendar-european-date-display-form
calendar-american-date-display-form)
:group 'holidays)
(defcustom calendar-bahai-all-holidays-flag nil
- "If nil, show only major holidays from the Bahá'í calendar.
+ "If nil, show only major holidays from the Bahá’í calendar.
These are the days on which work and school must be suspended.
-Otherwise, show all the holidays that would appear in a complete Bahá'í
+Otherwise, show all the holidays that would appear in a complete Bahá’í
calendar."
:type 'boolean
:group 'holidays)
(setq buffer-read-only nil
buffer-undo-list t)
(erase-buffer)
+ (display-buffer ,buffer)
,@body
(goto-char (point-min))
(set-buffer-modified-p nil)
- (setq buffer-read-only t)
- (display-buffer ,buffer)))
+ (setq buffer-read-only t)))
;; The following are in-line for speed; they can be called thousands of times
;; when looking up holidays or processing the diary. Here, for example, are
(defsubst calendar-day-number (date)
"Return the day number within the year of the date DATE.
-For example, (calendar-day-number '(1 1 1987)) returns the value 1,
-while (calendar-day-number '(12 31 1980)) returns 366."
+For example, (calendar-day-number \\='(1 1 1987)) returns the value 1,
+while (calendar-day-number \\='(12 31 1980)) returns 366."
(let* ((month (calendar-extract-month date))
(day (calendar-extract-day date))
(year (calendar-extract-year date))
(let ((year (calendar-extract-year date))
offset-years)
(cond ((zerop year)
- (error "There was no year zero"))
+ (user-error "There was no year zero"))
((> year 0)
(setq offset-years (1- year))
(+ (calendar-day-number date) ; days this year
;; stands, almost all other calendar functions (eg holidays) would
;; at best have unpredictable results for such dates.
(if (< (+ month (* 12 (1- year))) 2)
- (error "Months before January, 1 AD cannot be displayed"))
+ (user-error "Months before January, 1 AD cannot be displayed"))
(setq displayed-month month
displayed-year year)
(erase-buffer)
(insert
(truncate-string-to-width
(propertize (calendar-day-name j 'header t)
- 'font-lock-face (if (memq j '(0 6))
+ 'font-lock-face (if (memq j calendar-weekend-days)
'calendar-weekend-header
'calendar-weekday-header))
calendar-day-header-width nil ?\s)
(list
\"\"
- '(calendar-hebrew-date-string date)
- '(let* ((year (calendar-extract-year date))
+ \\='(calendar-hebrew-date-string date)
+ \\='(let* ((year (calendar-extract-year date))
(d (calendar-day-number date))
(days-remaining
(- (calendar-day-number (list 12 31 year)) d)))
(format \"%d/%d\" d days-remaining))
- '(let* ((d (calendar-absolute-from-gregorian date))
+ \\='(let* ((d (calendar-absolute-from-gregorian date))
(iso-date (calendar-iso-from-absolute d)))
(format \"ISO week %d of %d\"
(calendar-extract-month iso-date)
(unless (string-equal
(setq odate (calendar-bahai-date-string date))
"")
- (format "Bahá'í date: %s" odate))
+ (format "Bahá’í date: %s" odate))
(format "Chinese date: %s"
(calendar-chinese-date-string date))
(unless (string-equal
;; Local variables:
;; byte-compile-dynamic: t
-;; coding: utf-8
;; End:
;;; calendar.el ends here