Subject: 24.0.91; request user option for dedicated-window behavior in `switch-to-buffer'

From: "Drew Adams" <[email-masked]>
Date: Wed, 30 Nov 2011 09:29:00 -0800

This is an enhancement request.  It is a follow-up to bug #10144.
 
The current behavior of `switch-to-buffer' makes it raise an error if
the selected window is dedicated.  Please provide a user option that
lets you get either this raise-an-error behavior or simply switch to the
buffer in another window (i.e., `switch-to-buffer-other-window'), when
the selected window is dedicated.
 
IMO, the default behavior (via the default value of the user option)
should switch to the buffer in another window.  I expect that is what is
most useful to most users most of the time.  FWIW, my own code has done
this for decades, and I have never encountered any problem with it.
 
Note that the use-another-window behavior means that when the selected
window is dedicated, optional arg FORCE-SAME-WINDOW woudl have no
effect.

Note too that this option would affect only the behavior for dedicated
windows.  The error "Cannot switch buffers in a minibuffer window"
would still be raised, if arg FORCE-SAME-WINDOW is non-nil.  It is
only the error "Cannot switch buffers in a dedicated window" that
would not be raised when the option value is non-nil and the selected
window cannot be used.
 
IOW, this option lets users choose to distinguish attempts to switch
buffers in the minibuffer from attempts to switch in a dedicated window.
That's good - the two contexts are very different.

In GNU Emacs 24.0.91.1 (i386-mingw-nt5.1.2600) of 2011-11-21 on MARVIN
 Windowing system distributor `Microsoft Corp.', version 5.1.2600
 configured using `configure --with-gcc (4.6) --no-opt --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-2.10.1/include --ldflags
 -LD:/devel/emacs/libs/gnutls-2.10.1/lib'