# HG changeset patch # User Glenn Morris # Date 1175982797 0 # Node ID 694008dfe9c948a0b933c4c6b7ac37702b872f6e # Parent 43919a230e90cb581a975c9ef080d33b3a5d46eb (diary-set-maybe-redraw): Move definition before first use. (diary-font-lock-keywords): New function with old code for initialization of variable of same name. diff -r 43919a230e90 -r 694008dfe9c9 lisp/calendar/diary-lib.el --- a/lisp/calendar/diary-lib.el Sat Apr 07 21:53:02 2007 +0000 +++ b/lisp/calendar/diary-lib.el Sat Apr 07 21:53:17 2007 +0000 @@ -263,6 +263,16 @@ (setq attr-list (cdr attr-list))))) (list entry ret-attr)))) +(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)))) ;; This can be removed once the kill/yank treatment of invisible text ;; (see etc/TODO) is fixed. -- gm @@ -309,17 +319,6 @@ (and diary-file (find-buffer-visiting (substitute-in-file-name diary-file))))) -(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. This variable affects the diary display when the command \\[diary] is used, @@ -1996,51 +1995,53 @@ (eval-when-compile (require 'cal-hebrew) (require 'cal-islam)) -(defvar diary-font-lock-keywords - (append - (diary-font-lock-date-forms calendar-month-name-array - nil calendar-month-abbrev-array) - (when (or (memq 'mark-hebrew-diary-entries - nongregorian-diary-marking-hook) - (memq 'list-hebrew-diary-entries - nongregorian-diary-listing-hook)) - (require 'cal-hebrew) - (diary-font-lock-date-forms - calendar-hebrew-month-name-array-leap-year - hebrew-diary-entry-symbol)) - (when (or (memq 'mark-islamic-diary-entries - nongregorian-diary-marking-hook) - (memq 'list-islamic-diary-entries - nongregorian-diary-listing-hook)) - (require 'cal-islam) - (diary-font-lock-date-forms - calendar-islamic-month-name-array - islamic-diary-entry-symbol)) - (list - (cons - (concat "^" (regexp-quote diary-include-string) ".*$") - 'font-lock-keyword-face) - (cons - (concat "^" (regexp-quote diary-nonmarking-symbol) - "?\\(" (regexp-quote sexp-diary-entry-symbol) "\\)") - '(1 font-lock-reference-face)) - (cons - (concat "^" (regexp-quote diary-nonmarking-symbol)) - 'font-lock-reference-face) - (cons - (concat "^" (regexp-quote diary-nonmarking-symbol) - "?\\(" (regexp-quote hebrew-diary-entry-symbol) "\\)") - '(1 font-lock-reference-face)) - (cons - (concat "^" (regexp-quote diary-nonmarking-symbol) - "?\\(" (regexp-quote islamic-diary-entry-symbol) "\\)") - '(1 font-lock-reference-face)) - '(diary-font-lock-sexps . font-lock-keyword-face) - `(,(concat "\\(^\\|\\s-\\)" - diary-time-regexp "\\(-" diary-time-regexp "\\)?") - . 'diary-time))) - "Forms to highlight in `diary-mode'.") +(defun diary-font-lock-keywords () + "Return a value for the variable `diary-font-lock-keywords'." + (append + (diary-font-lock-date-forms calendar-month-name-array + nil calendar-month-abbrev-array) + (when (or (memq 'mark-hebrew-diary-entries + nongregorian-diary-marking-hook) + (memq 'list-hebrew-diary-entries + nongregorian-diary-listing-hook)) + (require 'cal-hebrew) + (diary-font-lock-date-forms + calendar-hebrew-month-name-array-leap-year + hebrew-diary-entry-symbol)) + (when (or (memq 'mark-islamic-diary-entries + nongregorian-diary-marking-hook) + (memq 'list-islamic-diary-entries + nongregorian-diary-listing-hook)) + (require 'cal-islam) + (diary-font-lock-date-forms + calendar-islamic-month-name-array + islamic-diary-entry-symbol)) + (list + (cons + (concat "^" (regexp-quote diary-include-string) ".*$") + 'font-lock-keyword-face) + (cons + (concat "^" (regexp-quote diary-nonmarking-symbol) + "?\\(" (regexp-quote sexp-diary-entry-symbol) "\\)") + '(1 font-lock-reference-face)) + (cons + (concat "^" (regexp-quote diary-nonmarking-symbol)) + 'font-lock-reference-face) + (cons + (concat "^" (regexp-quote diary-nonmarking-symbol) + "?\\(" (regexp-quote hebrew-diary-entry-symbol) "\\)") + '(1 font-lock-reference-face)) + (cons + (concat "^" (regexp-quote diary-nonmarking-symbol) + "?\\(" (regexp-quote islamic-diary-entry-symbol) "\\)") + '(1 font-lock-reference-face)) + '(diary-font-lock-sexps . font-lock-keyword-face) + `(,(concat "\\(^\\|\\s-\\)" + diary-time-regexp "\\(-" diary-time-regexp "\\)?") + . 'diary-time)))) +(defvar diary-font-lock-keywords (diary-font-lock-keywords) + "Forms to highlight in `diary-mode'.") ;; Following code from Dave Love . ;; Import Outlook-format appointments from mail messages in Gnus or