changeset 92767:b0c32527b009

(Fswitch_to_buffer): Fall back on pop-to-buffer.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 12 Mar 2008 18:13:23 +0000
parents 27d52df27cca
children f2df8a37cf42
files etc/NEWS src/ChangeLog src/buffer.c
diffstat 3 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/etc/NEWS	Wed Mar 12 17:57:29 2008 +0000
+++ b/etc/NEWS	Wed Mar 12 18:13:23 2008 +0000
@@ -65,6 +65,10 @@
 
 * Changes in Emacs 23.1
 
+** Operations like C-x b and C-x C-f which use switch-to-buffer do not fail
+any more when used in a minibuffer or a dedicated window.  Instead, they
+fallback on using pop-to-buffer which will use some other window.
+
 ** Emacs now supports using both X displays and ttys in one session.
 Start the server (M-x server-start).  Then `emacsclient -t' creates a
 tty frame connected to the running emacs server.  You can also use any
--- a/src/ChangeLog	Wed Mar 12 17:57:29 2008 +0000
+++ b/src/ChangeLog	Wed Mar 12 18:13:23 2008 +0000
@@ -1,3 +1,7 @@
+2008-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* buffer.c (Fswitch_to_buffer): Fall back on pop-to-buffer.
+
 2008-03-11  Jan Dj$(Q)Z(Brv  <jan.h.d@swipnet.se>
 
 	* xterm.c (x_connection_closed): For GTK: If this is the last
--- a/src/buffer.c	Wed Mar 12 17:57:29 2008 +0000
+++ b/src/buffer.c	Wed Mar 12 18:13:23 2008 +0000
@@ -1802,7 +1802,10 @@
     }
 
   err = no_switch_window (selected_window);
-  if (err) error (err);
+  if (err)
+    /* If can't display in current window, let pop-to-buffer
+       try some other window. */
+    return call3 (intern ("pop-to-buffer"), buffer, Qnil, norecord);
 
   return switch_to_buffer_1 (buffer, norecord);
 }