Subject: bug#10882: closed (Re: bug#10882: bs cannot recover from error splitting)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 25 Feb 2012 23:32:03 +0000

Your bug report

#10882: bs cannot recover from error splitting

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
10882: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10882
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#10882: bs cannot recover from error splitting
From: Juanma Barranquero <[email-masked]>
To: [email-masked]
Date: Sun, 26 Feb 2012 00:27:56 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Committed in revno:107431.

Subject: bs cannot recover from error splitting
From: Juanma Barranquero <[email-masked]>
To: Bug-Gnu-Emacs <[email-masked]>
Date: Fri, 24 Feb 2012 19:42:15 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Package: emacs
Severity: minor

emacs -Q
C-x 2
C-x b test <RET>
M-: (setq window-size-fixed 'height) <RET>   ;; in buffer "test"
M-x bs-show <RET>  =>  Window #<window 3 on *scratch*> too small for splitting
;; ok, let's kill that window
C-x 0
;; now the only window shows "*scrach*"
M-x bs-show <RET>  =>  we're back to the old config and the "too small" error.

The problem is that bs--show-with-configuration errs out, so bs-show
ends and the saved configuration is never reset to nil. Each new
attempt to use bs-show finds a saved configuration and restores it
before anything else.

The simplest way to fix it is using ignore-errors to protect against
split-window-below failing, so the code acts as if the window was too
small in the first place. It causes no harm because, once bs-show is
exited normally, the current window configuration is restored.

OK to install now?

    Juanma

=== modified file 'lisp/bs.el'
--- lisp/bs.el	2012-01-19 07:21:25 +0000
+++ lisp/bs.el	2012-02-24 18:37:28 +0000
@@ -1415,5 +1415,5 @@
 	(setq bs--window-config-coming-from (current-window-configuration))
 	(when (> (window-height (selected-window)) 7)
-          (select-window (split-window-below))))
+          (ignore-errors (select-window (split-window-below)))))
       (bs-show-in-buffer liste)
       (bs-message-without-log "%s" (bs--current-config-message)))))