(Fswitch_to_buffer): Fall back on pop-to-buffer.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 12 Mar 2008 18:13:23 +0000 (18:13 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 12 Mar 2008 18:13:23 +0000 (18:13 +0000)
etc/NEWS
src/ChangeLog
src/buffer.c

index 8225608..c96a8ad 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -65,6 +65,10 @@ default toolkit, but you can use --with-x-toolkit=gtk if necessary.
 \f
 * 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
index 5a5e9ef..7272427 100644 (file)
@@ -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\e$(Q)Z\e(Brv  <jan.h.d@swipnet.se>
 
        * xterm.c (x_connection_closed): For GTK: If this is the last
index 366f02a..1ccb2f7 100644 (file)
@@ -1802,7 +1802,10 @@ the window-buffer correspondences.  */)
     }
 
   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);
 }