From bce2c09781a9dae44fc852753c2b72339a5ae596 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 12 Feb 2002 17:46:45 +0000 Subject: [PATCH] (save-selected-window): If the saved window has become dead while macro body was running, refrain from switching to it. --- lisp/ChangeLog | 4 ++++ lisp/window.el | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d3c1e1bd936..522cb2237c2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,9 @@ 2002-02-12 Eli Zaretskii + * window.el (save-selected-window): If the saved window has + become dead while macro body was running, refrain from switching + to it. + * progmodes/pascal.el (pascal-imenu-generic-expression): Add menu-title and fix parentheses. diff --git a/lisp/window.el b/lisp/window.el index 4d97117a4eb..532a1cc0009 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -127,11 +127,14 @@ Anything else means restrict to the selected frame." (eq window (active-minibuffer-window))) (defmacro save-selected-window (&rest body) - "Execute BODY, then select the window that was selected before BODY." + "Execute BODY, then select the window that was selected before BODY. +However, if that window has become dead, don't get an error, +just refrain from switching to it." `(let ((save-selected-window-window (selected-window))) (unwind-protect (progn ,@body) - (select-window save-selected-window-window)))) + (if (window-live-p save-selected-window-window) + (select-window save-selected-window-window))))) (defun count-windows (&optional minibuf) "Return the number of visible windows. -- 2.39.5