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

From: pillule <[email-masked]>
Date: Wed, 09 Jun 2021 15:00:38 +0200

>> What's wrong with putting the first disjunct into the 
>> conditional as in
>> the below?  In general, always try to avoid larger indentation 
>> changes -
>> they can make forensics cumbersome while bisecting.
>>
>>      (cond
>>       ;; First try to delete dedicated windows that are not 
>>       side       windows
>>       ((and dedicated (not (eq dedicated 'side))
>>             (window--delete window 'dedicated (eq bury-or-kill 
>>             'kill))))
>>       ((and (not prev-buffer)
>>              (eq (nth 1 quit-restore) 'tab)
>>              (eq (nth 3 quit-restore) buffer))
>
> The difference is a window dedicated with flag t may not be 
> deletable, and in this case, we want it
> to pass through the others conditionals branch of 
> quit-restore-window, so it can try to use the
> 'quit-restore parameter, close the tab or to fallback in t, etc.
> Explaining it makes me thing I could use 'window-deletable-p' in 
> its conditional and ...
> I guess, problem solved
>

I read it again and think you were right,
when  (window--delete window 'dedicated (eq bury-or-kill 'kill))
is part of the conditional, it indeed already fail if the window 
is not deletable ;

I will correct that in the next revision.

--