diff options
Diffstat (limited to 'lisp/calendar')
-rw-r--r-- | lisp/calendar/cal-china.el | 22 | ||||
-rw-r--r-- | lisp/calendar/cal-dst.el | 70 | ||||
-rw-r--r-- | lisp/calendar/calendar.el | 10 | ||||
-rw-r--r-- | lisp/calendar/diary-lib.el | 42 | ||||
-rw-r--r-- | lisp/calendar/icalendar.el | 50 | ||||
-rw-r--r-- | lisp/calendar/lunar.el | 2 | ||||
-rw-r--r-- | lisp/calendar/solar.el | 2 |
7 files changed, 119 insertions, 79 deletions
diff --git a/lisp/calendar/cal-china.el b/lisp/calendar/cal-china.el index 1c08d553754..a838141db1c 100644 --- a/lisp/calendar/cal-china.el +++ b/lisp/calendar/cal-china.el @@ -83,8 +83,8 @@ UT+7:45:40 to UT+8." ; The correct value is as follows, but the Chinese calendrical ; authorities do NOT use DST in determining astronomical events: ; 60 - "*Number of minutes difference between daylight savings and standard time -for Chinese calendar. Default is for no daylight savings time." + "*Number of minutes difference between daylight saving and standard time +for Chinese calendar. Default is for no daylight saving time." :type 'integer :group 'chinese-calendar) @@ -99,7 +99,7 @@ at 1928-01-01 00:00:00 from `PMT' to `CST'." :group 'chinese-calendar) (defcustom chinese-calendar-daylight-time-zone-name "CDT" - "*Abbreviated name of daylight-savings time zone used for Chinese calendar." + "*Abbreviated name of daylight saving time zone used for Chinese calendar." :type 'string :group 'chinese-calendar) @@ -109,8 +109,8 @@ at 1928-01-01 00:00:00 from `PMT' to `CST'." ; '(cond ((< 1986 year) (calendar-nth-named-day 1 0 4 year 10)) ; ((= 1986 year) '(5 4 1986)) ; (t nil)) - "*Sexp giving the date on which daylight savings time starts for Chinese -calendar. Default is for no daylight savings time. See documentation of + "*Sexp giving the date on which daylight saving time starts for Chinese +calendar. Default is for no daylight saving time. See documentation of `calendar-daylight-savings-starts'." :type 'sexp :group 'chinese-calendar) @@ -119,21 +119,21 @@ calendar. Default is for no daylight savings time. See documentation of ; The correct value is as follows, but the Chinese calendrical ; authorities do NOT use DST in determining astronomical events: ; '(if (<= 1986 year) (calendar-nth-named-day 1 0 9 year 11)) - "*Sexp giving the date on which daylight savings time ends for Chinese -calendar. Default is for no daylight savings time. See documentation of + "*Sexp giving the date on which daylight saving time ends for Chinese +calendar. Default is for no daylight saving time. See documentation of `calendar-daylight-savings-ends'." :type 'sexp :group 'chinese-calendar) (defcustom chinese-calendar-daylight-savings-starts-time 0 - "*Number of minutes after midnight that daylight savings time starts for -Chinese calendar. Default is for no daylight savings time." + "*Number of minutes after midnight that daylight saving time starts for +Chinese calendar. Default is for no daylight saving time." :type 'integer :group 'chinese-calendar) (defcustom chinese-calendar-daylight-savings-ends-time 0 - "*Number of minutes after midnight that daylight savings time ends for -Chinese calendar. Default is for no daylight savings time." + "*Number of minutes after midnight that daylight saving time ends for +Chinese calendar. Default is for no daylight saving time." :type 'integer :group 'chinese-calendar) diff --git a/lisp/calendar/cal-dst.el b/lisp/calendar/cal-dst.el index 928c42f9122..3aea69b8ccf 100644 --- a/lisp/calendar/cal-dst.el +++ b/lisp/calendar/cal-dst.el @@ -1,4 +1,4 @@ -;;; cal-dst.el --- calendar functions for daylight savings rules +;;; cal-dst.el --- calendar functions for daylight saving rules ;; Copyright (C) 1993, 1994, 1995, 1996, 2001, 2002, 2003, 2004, 2005, ;; 2006, 2007 Free Software Foundation, Inc. @@ -7,7 +7,7 @@ ;; Edward M. Reingold <reingold@cs.uiuc.edu> ;; Maintainer: Glenn Morris <rgm@gnu.org> ;; Keywords: calendar -;; Human-Keywords: daylight savings time, calendar, diary, holidays +;; Human-Keywords: daylight saving time, calendar, diary, holidays ;; This file is part of GNU Emacs. @@ -29,7 +29,7 @@ ;;; Commentary: ;; This collection of functions implements the features of calendar.el and -;; holiday.el that deal with daylight savings time. +;; holiday.el that deal with daylight saving time. ;; Comments, corrections, and improvements should be sent to ;; Edward M. Reingold Department of Computer Science @@ -46,7 +46,7 @@ "Non-nil means to check each year for DST transitions as needed. Otherwise assume the next two transitions found after the current date apply to all years. This is faster, but not always -correct, since the dates of Daylight Saving transitions sometimes +correct, since the dates of daylight saving transitions sometimes change." :type 'boolean :version "22.1" @@ -142,8 +142,8 @@ Return nil if no such transition can be found." (defun calendar-time-zone-daylight-rules (abs-date utc-diff) "Return daylight transition rule for ABS-DATE, UTC-DIFF sec offset from UTC. -ABS-DATE must specify a day that contains a daylight savings transition. -The result has the proper form for calendar-daylight-savings-starts'." +ABS-DATE must specify a day that contains a daylight saving transition. +The result has the proper form for `calendar-daylight-savings-starts'." (let* ((date (calendar-gregorian-from-absolute abs-date)) (weekday (% abs-date 7)) (m (extract-calendar-month date)) @@ -215,7 +215,7 @@ The result has the proper form for calendar-daylight-savings-starts'." ;; See thread ;; http://lists.gnu.org/archive/html/emacs-pretest-bug/2006-11/msg00060.html (defun calendar-dst-find-data (&optional time) - "Find data on the first Daylight Saving Time transitions after TIME. + "Find data on the first daylight saving time transitions after TIME. TIME defaults to `current-time'. Return value is as described for `calendar-current-time-zone'." (let* ((t0 (or time (current-time))) @@ -228,9 +228,9 @@ for `calendar-current-time-zone'." (let* ((t1 (calendar-next-time-zone-transition t0)) (t2 (and t1 (calendar-next-time-zone-transition t1)))) (if (not t2) - ;; This locale does not have daylight savings time. + ;; This locale does not have daylight saving time. (list (/ t0-utc-diff 60) 0 t0-name t0-name nil nil 0 0) - ;; Use heuristics to find daylight savings parameters. + ;; Use heuristics to find daylight saving parameters. (let* ((t1-zone (current-time-zone t1)) (t1-utc-diff (car t1-zone)) (t1-name (car (cdr t1-zone))) @@ -254,14 +254,14 @@ for `calendar-current-time-zone'." ))))))))) (defvar calendar-dst-transition-cache nil - "Internal cal-dst variable storing date of Daylight Saving Time transitions. + "Internal cal-dst variable storing date of daylight saving time transitions. Value is a list with elements of the form (YEAR START END), where START and END are expressions that when evaluated return the start and end dates (respectively) for DST in YEAR. Used by the function `calendar-dst-find-startend'.") (defun calendar-dst-find-startend (year) - "Find the dates in YEAR on which Daylight Saving Time starts and ends. + "Find the dates in YEAR on which daylight saving time starts and ends. Returns a list (YEAR START END), where START and END are expressions that when evaluated return the start and end dates, respectively. This function first attempts to use pre-calculated @@ -288,16 +288,16 @@ system knows: UTC-DIFF is an integer specifying the number of minutes difference between standard time in the current time zone and Coordinated Universal Time (Greenwich Mean Time). A negative value means west of Greenwich. -DST-OFFSET is an integer giving the daylight savings time offset in minutes. +DST-OFFSET is an integer giving the daylight saving time offset in minutes. STD-ZONE is a string giving the name of the time zone when no seasonal time adjustment is in effect. DST-ZONE is a string giving the name of the time zone when there is a seasonal time adjustment in effect. DST-STARTS and DST-ENDS are sexps in the variable `year' giving the daylight - savings time start and end rules, in the form expected by + saving time start and end rules, in the form expected by `calendar-daylight-savings-starts'. DST-STARTS-TIME and DST-ENDS-TIME are integers giving the number of minutes - after midnight that daylight savings time starts and ends. + after midnight that daylight saving time starts and ends. If the local area does not use a seasonal time adjustment, STD-ZONE and DST-ZONE are equal, and all the DST-* integer variables are 0. @@ -308,7 +308,7 @@ it can't find." (unless calendar-current-time-zone-cache (setq calendar-current-time-zone-cache (calendar-dst-find-data)))) -;;; The following eight defvars relating to daylight savings time should NOT be +;;; The following eight defvars relating to daylight saving time should NOT be ;;; marked to go into loaddefs.el where they would be evaluated when Emacs is ;;; dumped. These variables' appropriate values depend on the conditions under ;;; which the code is INVOKED; so it's inappropriate to initialize them when @@ -324,9 +324,9 @@ example, -300 for New York City, -480 for Los Angeles.") (defvar calendar-daylight-time-offset (or (car (cdr calendar-current-time-zone-cache)) 60) - "*Number of minutes difference between daylight savings and standard time. + "*Number of minutes difference between daylight saving and standard time. -If the locale never uses daylight savings time, set this to 0.") +If the locale never uses daylight saving time, set this to 0.") (defvar calendar-standard-time-zone-name (or (car (nthcdr 2 calendar-current-time-zone-cache)) "EST") @@ -335,12 +335,12 @@ For example, \"EST\" in New York City, \"PST\" for Los Angeles.") (defvar calendar-daylight-time-zone-name (or (car (nthcdr 3 calendar-current-time-zone-cache)) "EDT") - "*Abbreviated name of daylight-savings time zone at `calendar-location-name'. + "*Abbreviated name of daylight saving time zone at `calendar-location-name'. For example, \"EDT\" in New York City, \"PDT\" for Los Angeles.") (defun calendar-dst-starts (year) - "Return the date of YEAR on which Daylight Saving Time starts. + "Return the date of YEAR on which daylight saving time starts. This function respects the value of `calendar-dst-check-each-year-flag'." (or (let ((expr (if calendar-dst-check-each-year-flag (cadr (calendar-dst-find-startend year)) @@ -351,7 +351,7 @@ This function respects the value of `calendar-dst-check-each-year-flag'." (calendar-nth-named-day 2 0 3 year)))) (defun calendar-dst-ends (year) - "Return the date of YEAR on which Daylight Saving Time ends. + "Return the date of YEAR on which daylight saving time ends. This function respects the value of `calendar-dst-check-each-year-flag'." (or (let ((expr (if calendar-dst-check-each-year-flag (nth 2 (calendar-dst-find-startend year)) @@ -366,13 +366,13 @@ This function respects the value of `calendar-dst-check-each-year-flag'." (put 'calendar-daylight-savings-starts 'risky-local-variable t) (defvar calendar-daylight-savings-starts '(calendar-dst-starts year) - "*Sexp giving the date on which daylight savings time starts. + "*Sexp giving the date on which daylight saving time starts. This is an expression in the variable `year' whose value gives the Gregorian -date in the form (month day year) on which daylight savings time starts. It is -used to determine the starting date of daylight savings time for the holiday +date in the form (month day year) on which daylight saving time starts. It is +used to determine the starting date of daylight saving time for the holiday list and for correcting times of day in the solar and lunar calculations. -For example, if daylight savings time is mandated to start on October 1, +For example, if daylight saving time is mandated to start on October 1, you would set `calendar-daylight-savings-starts' to '(10 1 year) @@ -381,35 +381,35 @@ If it starts on the first Sunday in April, you would set it to '(calendar-nth-named-day 1 0 4 year) -If the locale never uses daylight savings time, set this to nil.") +If the locale never uses daylight saving time, set this to nil.") ;;;###autoload (put 'calendar-daylight-savings-ends 'risky-local-variable t) (defvar calendar-daylight-savings-ends '(calendar-dst-ends year) - "*Sexp giving the date on which daylight savings time ends. + "*Sexp giving the date on which daylight saving time ends. This is an expression in the variable `year' whose value gives the Gregorian -date in the form (month day year) on which daylight savings time ends. It is -used to determine the starting date of daylight savings time for the holiday +date in the form (month day year) on which daylight saving time ends. It is +used to determine the starting date of daylight saving time for the holiday list and for correcting times of day in the solar and lunar calculations. -For example, if daylight savings time ends on the last Sunday in October: +For example, if daylight saving time ends on the last Sunday in October: '(calendar-nth-named-day -1 0 10 year) -If the locale never uses daylight savings time, set this to nil.") +If the locale never uses daylight saving time, set this to nil.") (defvar calendar-daylight-savings-starts-time (or (car (nthcdr 6 calendar-current-time-zone-cache)) 120) - "*Number of minutes after midnight that daylight savings time starts.") + "*Number of minutes after midnight that daylight saving time starts.") (defvar calendar-daylight-savings-ends-time (or (car (nthcdr 7 calendar-current-time-zone-cache)) calendar-daylight-savings-starts-time) - "*Number of minutes after midnight that daylight savings time ends.") + "*Number of minutes after midnight that daylight saving time ends.") (defun dst-in-effect (date) - "True if on absolute DATE daylight savings time is in effect. + "True if on absolute DATE daylight saving time is in effect. Fractional part of DATE is local standard time of day." (let* ((year (extract-calendar-year (calendar-gregorian-from-absolute (floor date)))) @@ -438,10 +438,10 @@ adjusted for `zone'; here `date' is a list (month day year), `adj-time' is a decimal fraction time, and `zone' is a string. Optional parameter STYLE forces the result time to be standard time when its -value is 'standard and daylight savings time (if available) when its value is +value is 'standard and daylight saving time (if available) when its value is 'daylight. -Conversion to daylight savings time is done according to +Conversion to daylight saving time is done according to `calendar-daylight-savings-starts', `calendar-daylight-savings-ends', `calendar-daylight-savings-starts-time', `calendar-daylight-savings-ends-time', and diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index 711de4c1f28..fa7a68acd30 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el @@ -57,7 +57,7 @@ ;; appt.el Appointment notification ;; cal-china.el Chinese calendar ;; cal-coptic.el Coptic/Ethiopic calendars -;; cal-dst.el Daylight savings time rules +;; cal-dst.el Daylight saving time rules ;; cal-hebrew.el Hebrew calendar ;; cal-islam.el Islamic calendar ;; cal-bahai.el Baha'i calendar @@ -770,6 +770,8 @@ Can be used for appointment notification." :type 'hook :group 'diary) +(autoload 'diary-set-maybe-redraw "diary-lib") + ;;;###autoload (defcustom diary-display-hook nil "List of functions that handle the display of the diary. @@ -794,6 +796,8 @@ if that day is a holiday; if you want such days to be shown in the fancy diary buffer, set the variable `diary-list-include-blanks' to t." :type 'hook :options '(fancy-diary-display) + :initialize 'custom-initialize-default + :set 'diary-set-maybe-redraw :group 'diary) ;;;###autoload @@ -1160,7 +1164,7 @@ See the documentation for `calendar-holidays' for details." (funcall 'holiday-sexp calendar-daylight-savings-starts - '(format "Daylight Savings Time Begins %s" + '(format "Daylight Saving Time Begins %s" (if (fboundp 'atan) (solar-time-string (/ calendar-daylight-savings-starts-time (float 60)) @@ -1169,7 +1173,7 @@ See the documentation for `calendar-holidays' for details." (funcall 'holiday-sexp calendar-daylight-savings-ends - '(format "Daylight Savings Time Ends %s" + '(format "Daylight Saving Time Ends %s" (if (fboundp 'atan) (solar-time-string (/ calendar-daylight-savings-ends-time (float 60)) diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index a5644f7972d..72620a7f9bb 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el @@ -267,10 +267,12 @@ search." ;; This can be removed once the kill/yank treatment of invisible text ;; (see etc/TODO) is fixed. -- gm (defcustom diary-header-line-flag t - "If non-nil, `diary-simple-display' will show a header line. + "If non-nil, `simple-diary-display' will show a header line. The format of the header is specified by `diary-header-line-format'." :group 'diary :type 'boolean + :initialize 'custom-initialize-default + :set 'diary-set-maybe-redraw :version "22.1") (defvar diary-selective-display nil) @@ -282,7 +284,7 @@ The format of the header is specified by `diary-header-line-format'." before edit/copy" "Diary")) ?\s (frame-width))) - "Format of the header line displayed by `diary-simple-display'. + "Format of the header line displayed by `simple-diary-display'. Only used if `diary-header-line-flag' is non-nil." :group 'diary :type 'sexp @@ -290,6 +292,27 @@ Only used if `diary-header-line-flag' is non-nil." (defvar diary-saved-point) ; internal +(defun diary-live-p () + "Return non-nil if the diary is being displayed. +This is not the same as just visiting the `diary-file'." + (or (get-buffer fancy-diary-buffer) + (when diary-file + (let ((dbuff (find-buffer-visiting + (substitute-in-file-name diary-file)))) + (when dbuff + (with-current-buffer dbuff + diary-selective-display)))))) + +(defun diary-set-maybe-redraw (symbol value) + "Set SYMBOL's value to VALUE, and redraw the diary if necessary. +Redraws the diary if it is being displayed (note this is not the same as +just visiting the `diary-file'), and SYMBOL's value is to be changed." + (let ((oldvalue (eval symbol))) + (custom-set-default symbol value) + (and (not (equal value oldvalue)) + (diary-live-p) + ;; Note this assumes diary was called without prefix arg. + (diary)))) (defcustom number-of-diary-entries 1 "Specifies how many days of diary entries are to be displayed initially. @@ -300,10 +323,10 @@ entries will be displayed. If the value 2 is used, then both the current day's and the next day's entries will be displayed. The value can also be a vector such as [0 2 2 2 2 4 1]; this value -says to display no diary entries on Sunday, the display the entries -for the current date and the day after on Monday through Thursday, -display Friday through Monday's entries on Friday, and display only -Saturday's entries on Saturday. +says to display no diary entries on Sunday, the entries for +the current date and the day after on Monday through Thursday, +Friday through Monday's entries on Friday, and only Saturday's +entries on Saturday. This variable does not affect the diary display with the `d' command from the calendar; in that case, the prefix argument controls the @@ -317,6 +340,8 @@ number of days of diary entries displayed." (integer :tag "Thursday") (integer :tag "Friday") (integer :tag "Saturday"))) + :initialize 'custom-initialize-default + :set 'diary-set-maybe-redraw :group 'diary) @@ -410,7 +435,10 @@ If LIST-ONLY is non-nil don't modify or display the buffer, only return a list." (or (verify-visited-file-modtime diary-buffer) (revert-buffer t t)))) ;; Setup things like the header-line-format and invisibility-spec. - (when (eq major-mode default-major-mode) (diary-mode)) + ;; This used to only run if the major-mode was default-major-mode, + ;; but that meant eg changes to header-line-format did not + ;; take effect from one diary invocation to the next. + (diary-mode) ;; d-s-p is passed to the diary display function. (let ((diary-saved-point (point))) (save-excursion diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index cb9885fc125..7bbd12a436e 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el @@ -101,7 +101,7 @@ ;;; Code: -(defconst icalendar-version "0.14" +(defconst icalendar-version "0.15" "Version number of icalendar.el.") ;; ====================================================================== @@ -226,16 +226,17 @@ buffer." (replace-match "" nil nil))) unfolded-buffer)) -(defsubst icalendar--rris (&rest args) +(defsubst icalendar--rris (regexp rep string &optional fixedcase literal) "Replace regular expression in string. -Pass ARGS to `replace-regexp-in-string' (Emacs) or to -`replace-in-string' (XEmacs)." - (if (fboundp 'replace-regexp-in-string) - ;; Emacs: - (apply 'replace-regexp-in-string args) - ;; XEmacs: - (save-match-data ;; apparently XEmacs needs save-match-data - (apply 'replace-in-string args)))) +Pass arguments REGEXP REP STRING FIXEDCASE LITERAL to +`replace-regexp-in-string' (Emacs) or to `replace-in-string' (XEmacs)." + (cond ((fboundp 'replace-regexp-in-string) + ;; Emacs: + (replace-regexp-in-string regexp rep string fixedcase literal)) + ((fboundp 'replace-in-string) + ;; XEmacs: + (save-match-data ;; apparently XEmacs needs save-match-data + (replace-in-string string regexp rep literal))))) (defun icalendar--read-element (invalue inparams) "Recursively read the next iCalendar element in the current buffer. @@ -1472,8 +1473,8 @@ object, reads it and adds all VEVENT elements to the diary DIARY-FILE. It will ask for each appointment whether to add it to the diary -when DO-NOT-ASK is non-nil. When called interactively, -DO-NOT-ASK is set to t, so that you are asked fore each event. +unless DO-NOT-ASK is non-nil. When called interactively, +DO-NOT-ASK is nil, so that you are asked for each event. NON-MARKING determines whether diary events are created as non-marking. @@ -1669,8 +1670,11 @@ written into the buffer `*icalendar-errors*'." (concat diary-string " " (icalendar--format-ical-event e))) (if do-not-ask (setq summary nil)) - (icalendar--add-diary-entry diary-string diary-file - non-marking summary)) + ;; add entry to diary and store actual name of diary + ;; file (in case it was nil) + (setq diary-file + (icalendar--add-diary-entry diary-string diary-file + non-marking summary))) ;; event was not ok (setq found-error t) (setq error-string @@ -1684,13 +1688,15 @@ written into the buffer `*icalendar-errors*'." (setq error-string (format "%s\n%s\nCannot handle this event: %s" error-val error-string e)) (message "%s" error-string)))) + ;; insert final newline - (let ((b (find-buffer-visiting diary-file))) - (when b - (save-current-buffer - (set-buffer b) - (goto-char (point-max)) - (insert "\n")))) + (if diary-file + (let ((b (find-buffer-visiting diary-file))) + (when b + (save-current-buffer + (set-buffer b) + (goto-char (point-max)) + (insert "\n"))))) (if found-error (save-current-buffer (set-buffer (get-buffer-create "*icalendar-errors*")) @@ -1943,7 +1949,9 @@ the entry." (setq diary-file (read-file-name "Add appointment to this diary file: "))) ;; Note: make-diary-entry will add a trailing blank char.... :( - (make-diary-entry string non-marking diary-file)))) + (make-diary-entry string non-marking diary-file))) + ;; return diary-file in case it has been changed interactively + diary-file) (provide 'icalendar) diff --git a/lisp/calendar/lunar.el b/lisp/calendar/lunar.el index 95bcae3875a..33da7cef8e0 100644 --- a/lisp/calendar/lunar.el +++ b/lisp/calendar/lunar.el @@ -377,7 +377,7 @@ use when highlighting the day in the calendar." "Astronomical (Julian) day number of first new moon on or after astronomical \(Julian) day number d. The fractional part is the time of day. -The date and time are local time, including any daylight savings rules, +The date and time are local time, including any daylight saving rules, as governed by the values of calendar-daylight-savings-starts, calendar-daylight-savings-starts-time, calendar-daylight-savings-ends, calendar-daylight-savings-ends-time, calendar-daylight-time-offset, and diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el index f8112b3e896..c4a8352a8d8 100644 --- a/lisp/calendar/solar.el +++ b/lisp/calendar/solar.el @@ -507,7 +507,7 @@ Result is in julian centuries of ephemeris time." (defun solar-date-next-longitude (d l) "First moment on or after Julian day number D when sun's longitude is a multiple of L degrees at calendar-location-name with that location's -local time (including any daylight savings rules). +local time (including any daylight saving rules). L must be an integer divisor of 360. |