- (let ((miniwin (minibuffer-window))
- (minisel (window-minibuffer-p (selected-window))))
- (let ((minibuf (window-buffer miniwin))
- (minipoint (window-point miniwin))
- (minisize (window-height miniwin)))
- (set-window-configuration winconf)
- (setf (window-buffer miniwin) minibuf
- (window-point miniwin) minipoint)
- (when (/= minisize (window-height miniwin))
- (letf (((selected-window) miniwin) )
- ;; Clumsy due to cl-macs-limitation
- (setf (window-height) minisize)))
- (cond
- (minisel (select-window miniwin))
- ((window-minibuffer-p (selected-window))
- (other-window 1))))))
+ (let* ((miniwin (minibuffer-window))
+ (chosen (selected-window))
+ (minisize (window-height miniwin)))
+ (letf (((window-buffer miniwin))
+ ((window-point miniwin)))
+ (set-window-configuration winconf))
+ (cond
+ ((window-live-p chosen) (select-window chosen))
+ ((window-minibuffer-p (selected-window))
+ (other-window 1)))
+ (when (/= minisize (window-height miniwin))
+ (letf (((selected-window) miniwin) )
+ (setf (window-height) minisize)))))
+