Subject: Re: bug#48493: 28.0.50; quit-window doesn't work

From: martin rudalics <[email-masked]>
Date: Tue, 25 May 2021 08:50:10 +0200

> Then I suppose that the dedicated window parameter must be restored
 > after a kill-buffer accordingly; this solve the previous test but
 > ask for more modifications.

Who makes any of these buffers dedicared?

 > I can modify to `switch-to-prev-buffer' (and its sibling
 > `switch-to-prev-buffer') to return nil instead of the current buffer;
 > however the result is the same : the window rest in place with an
 > undesired buffer inside.
 > Note that we may want that anyway if it can solve the cases where
 > `quit-restore-window' display the same buffer again.
 >
 > I am still looking to find what may be messing the prev-buffers list.

Try to experiment with an idiom like

       (if prev-buffer
           ;; If a previous buffer exists, try to switch to it.  If that
           ;; fails for whatever reason, try to delete the window.
           (unless (switch-to-prev-buffer window bury-or-kill)
             (window--delete window nil (eq bury-or-kill 'kill)))
         ;; If no previous buffer exists, try to delete the window.  If
         ;; that fails for whatever reason, try to switch to some other
         ;; buffer.
         (unless (window--delete window nil (eq bury-or-kill 'kill))
           (switch-to-prev-buffer window bury-or-kill)))

martin