Commit f09cfd28 authored by Stefan Monnier's avatar Stefan Monnier
Browse files

(mark-visible-calendar-date): Save excursion.

Re-indent within 80 columns.  Use inhibit-read-only.
parent 12b8cf53
2005-09-19 Stefan Monnier <monnier@iro.umontreal.ca>
* calendar/calendar.el (mark-visible-calendar-date): Save excursion.
Re-indent within 80 columns. Use inhibit-read-only.
2005-09-19 Romain Francoise <romain@orebokech.com>
 
* calendar/diary-lib.el (mark-diary-entries): Revert last change.
......
......@@ -2900,34 +2900,41 @@ interpreted as BC; -1 being 1 BC, and so on."
MARK is a single-character string, a list of face attributes/values, or a face.
MARK defaults to `diary-entry-marker'."
(if (calendar-date-is-legal-p date)
(with-current-buffer calendar-buffer
(save-excursion
(set-buffer calendar-buffer)
(calendar-cursor-to-visible-date date)
(let ((mark (or (and (stringp mark) (= (length mark) 1) mark) ; single-char
(setq mark
(or (and (stringp mark) (= (length mark) 1) mark) ; single-char
(and (listp mark) (> (length mark) 0) mark) ; attr list
(and (facep mark) mark) ; face-name
diary-entry-marker)))
(if (facep mark)
(progn ; face or an attr-list that contained a face
diary-entry-marker))
(cond
;; face or an attr-list that contained a face
((facep mark)
(overlay-put
(make-overlay (1- (point)) (1+ (point))) 'face mark))
(if (and (stringp mark)
(= (length mark) 1)) ; single-char
(let ((buffer-read-only nil))
;; single-char
((and (stringp mark) (= (length mark) 1))
(let ((inhibit-read-only t))
(forward-char 1)
(delete-char 1)
;; Insert before delete so as to better preserve markers.
(insert mark)
(forward-char -2))
(let ; attr list
((temp-face
(make-symbol (apply 'concat "temp-"
(mapcar '(lambda (sym)
(cond ((symbolp sym) (symbol-name sym))
((numberp sym) (int-to-string sym))
(t sym))) mark))))
(delete-char 1)
(forward-char -2)))
(t ;; attr list
(let ((temp-face
(make-symbol
(apply 'concat "temp-"
(mapcar (lambda (sym)
(cond
((symbolp sym) (symbol-name sym))
((numberp sym) (number-to-string sym))
(t sym)))
mark))))
(faceinfo mark))
(make-face temp-face)
;; Remove :face info from the mark, copy the face info into temp-face
;; Remove :face info from the mark, copy the face info into
;; temp-face
(while (setq faceinfo (memq :face faceinfo))
(copy-face (read (nth 1 faceinfo)) temp-face)
(setcar faceinfo nil)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment