aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2004-05-28 22:33:35 +0000
committerStefan Monnier2004-05-28 22:33:35 +0000
commitfb4302f6995aa7d98fde76274a58f9e304371f71 (patch)
tree1e373f7ba5e09ed262d98a4ed09b6cd78375b361
parente2543b02bfdea10303a7067a772bab56702ff4f9 (diff)
downloademacs-fb4302f6995aa7d98fde76274a58f9e304371f71.tar.gz
emacs-fb4302f6995aa7d98fde76274a58f9e304371f71.zip
(with-selected-window): Only save/restore the selectd window.
-rw-r--r--lisp/subr.el11
1 files changed, 1 insertions, 10 deletions
diff --git a/lisp/subr.el b/lisp/subr.el
index 5302558d834..b9e14ade288 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1796,20 +1796,11 @@ The value returned is the value of the last form in BODY.
1796This does not alter the buffer list ordering. 1796This does not alter the buffer list ordering.
1797See also `with-temp-buffer'." 1797See also `with-temp-buffer'."
1798 (declare (indent 1) (debug t)) 1798 (declare (indent 1) (debug t))
1799 ;; Most of this code is a copy of save-selected-window. 1799 `(let ((save-selected-window-window (selected-window)))
1800 `(let ((save-selected-window-window (selected-window))
1801 (save-selected-window-alist
1802 (mapcar (lambda (frame) (list frame (frame-selected-window frame)))
1803 (frame-list))))
1804 (unwind-protect 1800 (unwind-protect
1805 (progn (select-window ,window 'norecord) 1801 (progn (select-window ,window 'norecord)
1806 ,@body) 1802 ,@body)
1807 (dolist (elt save-selected-window-alist)
1808 (and (frame-live-p (car elt))
1809 (window-live-p (cadr elt))
1810 (set-frame-selected-window (car elt) (cadr elt))))
1811 (if (window-live-p save-selected-window-window) 1803 (if (window-live-p save-selected-window-window)
1812 ;; This is where the code differs from save-selected-window.
1813 (select-window save-selected-window-window 'norecord))))) 1804 (select-window save-selected-window-window 'norecord)))))
1814 1805
1815(defmacro with-temp-file (file &rest body) 1806(defmacro with-temp-file (file &rest body)