emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/calendar/calendar.el


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/lisp/calendar/calendar.el
Date: Mon, 19 Sep 2005 13:41:25 -0400

Index: emacs/lisp/calendar/calendar.el
diff -c emacs/lisp/calendar/calendar.el:1.176 
emacs/lisp/calendar/calendar.el:1.177
*** emacs/lisp/calendar/calendar.el:1.176       Mon Sep 12 21:31:17 2005
--- emacs/lisp/calendar/calendar.el     Mon Sep 19 17:41:19 2005
***************
*** 2900,2942 ****
  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)
!       (save-excursion
!         (set-buffer calendar-buffer)
!         (calendar-cursor-to-visible-date date)
!         (let ((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
!                 (overlay-put
!                  (make-overlay (1- (point)) (1+ (point))) 'face mark))
!             (if (and (stringp mark)
!                      (= (length mark) 1)) ; single-char
!                 (let ((buffer-read-only nil))
!                   (forward-char 1)
!                   (delete-char 1)
!                   (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))))
!                    (faceinfo mark))
!                 (make-face 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)
!                   (setcar (cdr faceinfo) nil))
!                 (setq mark (delq nil mark))
!                 ;; Apply the font aspects
!                 (apply 'set-face-attribute temp-face nil mark)
!                 (overlay-put
!                  (make-overlay (1- (point)) (1+ (point))) 'face 
temp-face))))))))
  
  (defun calendar-star-date ()
    "Replace the date under the cursor in the calendar window with asterisks.
--- 2900,2949 ----
  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
!           (calendar-cursor-to-visible-date date)
!           (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))
!           (cond
!            ;; face or an attr-list that contained a face
!            ((facep mark)
!             (overlay-put
!              (make-overlay (1- (point)) (1+ (point))) 'face mark))
!            ;; single-char
!            ((and (stringp mark) (= (length mark) 1))
!             (let ((inhibit-read-only t))
!               (forward-char 1)
!               ;; Insert before delete so as to better preserve markers.
!               (insert 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
!               (while (setq faceinfo (memq :face faceinfo))
!                 (copy-face (read (nth 1 faceinfo)) temp-face)
!                 (setcar faceinfo nil)
!                 (setcar (cdr faceinfo) nil))
!               (setq mark (delq nil mark))
!               ;; Apply the font aspects
!               (apply 'set-face-attribute temp-face nil mark)
!               (overlay-put
!                (make-overlay (1- (point)) (1+ (point))) 'face 
temp-face))))))))
  
  (defun calendar-star-date ()
    "Replace the date under the cursor in the calendar window with asterisks.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]