emacs-diffs
[Top][All Lists]
Advanced

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

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


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/lisp/reveal.el
Date: Mon, 20 May 2002 14:31:20 -0400

Index: emacs/lisp/reveal.el
diff -c emacs/lisp/reveal.el:1.5 emacs/lisp/reveal.el:1.6
*** emacs/lisp/reveal.el:1.5    Sat May 18 07:26:16 2002
--- emacs/lisp/reveal.el        Mon May 20 14:31:20 2002
***************
*** 68,73 ****
--- 68,74 ----
    ;; - we only refresh spots in the current window.
    ;; FIXME: do we actually know that (current-buffer) = (window-buffer) ?
    (with-local-quit
+   (condition-case err
     (let* ((spots (cvs-partition
                  (lambda (x)
                    ;; We refresh any spot in the current window as well
***************
*** 79,89 ****
                                 (current-buffer)))))
                  reveal-open-spots))
          (old-ols (mapcar 'cdr (car spots)))
!         (repeat t)
!         ;; `post-command-hook' binds it to t, but the user might want to
!         ;; interrupt our work if we somehow get stuck in an infinite loop.
!         (inhibit-quit nil)
!         inv open)
       (setq reveal-open-spots (cdr spots))
       ;; Open new overlays.
       (while repeat
--- 80,86 ----
                                 (current-buffer)))))
                  reveal-open-spots))
          (old-ols (mapcar 'cdr (car spots)))
!         (repeat t))
       (setq reveal-open-spots (cdr spots))
       ;; Open new overlays.
       (while repeat
***************
*** 93,115 ****
                          (overlays-at (point))))
         (push (cons (selected-window) ol) reveal-open-spots)
         (setq old-ols (delq ol old-ols))
!        (when (setq inv (overlay-get ol 'invisible))
!          (when (or (overlay-get ol 'isearch-open-invisible)
!                    (and (consp buffer-invisibility-spec)
!                         (assq inv buffer-invisibility-spec)))
!            (overlay-put ol 'reveal-invisible inv)
!            (overlay-put ol 'invisible nil)
!            (when (setq open (get inv 'reveal-toggle-invisible))
               ;; Use the provided opening function and repeat (since the
               ;; opening function might have hidden a subpart around point).
               (setq repeat t)
               (condition-case err
!                  (funcall open ol t)
                 (error (message "!!Reveal-show: %s !!" err))))))))
       ;; Close old overlays.
       (dolist (ol old-ols)
!        (when (and (setq inv (overlay-get ol 'reveal-invisible))
!                 (eq (current-buffer) (overlay-buffer ol))
                  (not (rassq ol reveal-open-spots)))
         (if (and (>= (point) (save-excursion
                                (goto-char (overlay-start ol))
--- 90,116 ----
                          (overlays-at (point))))
         (push (cons (selected-window) ol) reveal-open-spots)
         (setq old-ols (delq ol old-ols))
!        (let ((open (overlay-get ol 'reveal-toggle-invisible)))
!          (when (or open
!                    (let ((inv (overlay-get ol 'invisible)))
!                      (and inv (symbolp inv)
!                           (or (setq open (or (get inv 
'reveal-toggle-invisible)
!                                              (get ol 
'isearch-open-invisible-temporary)))
!                               (overlay-get ol 'isearch-open-invisible)
!                               (and (consp buffer-invisibility-spec)
!                                    (assq inv buffer-invisibility-spec)))
!                           (overlay-put ol 'reveal-invisible inv))))
!            (if (null open)
!                (overlay-put ol 'invisible nil)
               ;; Use the provided opening function and repeat (since the
               ;; opening function might have hidden a subpart around point).
               (setq repeat t)
               (condition-case err
!                  (funcall open ol nil)
                 (error (message "!!Reveal-show: %s !!" err))))))))
       ;; Close old overlays.
       (dolist (ol old-ols)
!        (when (and (eq (current-buffer) (overlay-buffer ol))
                  (not (rassq ol reveal-open-spots)))
         (if (and (>= (point) (save-excursion
                                (goto-char (overlay-start ol))
***************
*** 120,130 ****
             ;; Still near the overlay: keep it open.
             (push (cons (selected-window) ol) reveal-open-spots)
           ;; Really close it.
!          (overlay-put ol 'invisible inv)
!          (when (setq open (get inv 'reveal-toggle-invisible))
!            (condition-case err
!                (funcall open ol nil)
!              (error (message "!!Reveal-hide: %s !!" err))))))))))
  
  ;;;###autoload
  (define-minor-mode reveal-mode
--- 121,136 ----
             ;; Still near the overlay: keep it open.
             (push (cons (selected-window) ol) reveal-open-spots)
           ;; Really close it.
!          (let ((open (overlay-get ol 'reveal-toggle-invisible)) inv)
!            (if (or open
!                    (and (setq inv (overlay-get ol 'reveal-invisible))
!                         (setq open (or (get inv 'reveal-toggle-invisible)
!                                        (get ol 
'isearch-open-invisible-temporary)))))
!                (condition-case err
!                    (funcall open ol t)
!                  (error (message "!!Reveal-hide: %s !!" err)))
!              (overlay-put ol 'invisible inv)))))))
!    (error (message "Reveal: %s" err)))))
  
  ;;;###autoload
  (define-minor-mode reveal-mode



reply via email to

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