Subject: 24.0.90; Problem with bury-buffer in minibuffer-hide-completions

From: Stephen Berman <[email-masked]>
Date: Sat, 01 Oct 2011 00:09:56 +0200

1. emacs -Q
2. Type `M-x glo TAB' and at the completion "M-x global-" type TAB again,
   making a *Completions* buffer pop up.
3. Type `v TAB', yielding the completion "M-x global-visual-line-mode".
=> The window that had been displaying the *Completions* buffer now
displays the *Messages* buffer.

AFAICT this is due to the following cond clause in bury-buffer (which is
called by minibuffer-hide-completions):

     ((not (window-dedicated-p))
      (switch-to-prev-buffer nil 'bury))

Only after typing RET in the minibuffer to accept the completion is the
window that had been displaying the *Completions* buffer and now
displays the *Messages* buffer deleted; in Emacs 23.2 it is deleted as
soon as the sole completion is displayed in the minibuffer.  Commenting
out the above clause restores the 23.2 behavior.  But this presumably
has bad effects elsewhere.

(Interestingly, the C code of bury-buffer prior to the move to Lisp in
revision 104559 (and long before that) has the equivalent of the above
clause.)

In GNU Emacs 24.0.90.1 (i686-suse-linux-gnu, GTK+ Version 2.22.1)
 of 2011-09-30 on escher
Windowing system distributor `The X.Org Foundation', version 11.0.10903000
configured using `configure  '--without-toolkit-scroll-bars' 'CFLAGS=-g''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=local
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t