GNU bug report logs - #6147
23.2; ido-read-buffer regression

Previous Next

Package: emacs;

Reported by: Kyle Hargraves <pd <at> krh.me>

Date: Sun, 9 May 2010 20:40:03 UTC

Severity: normal

Found in version 23.2

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Kyle Hargraves <pd <at> krh.me>
To: Juanma Barranquero <lekktu <at> gmail.com>
Cc: 6147 <at> debbugs.gnu.org
Subject: bug#6147: 23.2; ido-read-buffer regression
Date: Sun, 9 May 2010 18:13:36 -0500
[Message part 1 (text/plain, inline)]
On Sun, May 9, 2010 at 6:02 PM, Juanma Barranquero <lekktu <at> gmail.com> wrote:

> On Sun, May 9, 2010 at 22:06, Kyle Hargraves <pd <at> krh.me> wrote:
>
> > This can be reproduced by evaluating:
> > (ido-read-buffer "Buffer: " "nonexistent-buffer")
> > In 23.2, you will see only a list of your current buffers. In 23.1,
> > nonexistent-buffer is the default value.
>
> Yes, it has changed.
>
> > I believe the related commit may be:
> >
> http://github.com/emacsmirror/emacs/commit/e2300713fd5a941bfe1dad338b88f4caf77cc945
>
> Why do you believe that?
>

I misread it and thought it was introducing the buffer-live-p check.


> The "culprit" is this change:
>
>  ------------------------------------------------------------
>  revno: 99373
>  author: Óscar Fuentes <ofv <at> wanadoo.es>
>  committer: Juanma Barranquero <lekktu <at> gmail.com>
>  branch nick: trunk
>  timestamp: Mon 2010-01-18 20:34:55 +0100
>  message:
>    ido.el: Consider the possibility of buffer names changing after
> kill-buffer.
>
> which includes this:
>
>        (ido-make-buffer-list): If "default" is a nonexistent
>        buffer, ignore it, as per the docstring.
>
>
> === modified file 'lisp/ido.el'
> --- lisp/ido.el 2010-01-13 08:35:10 +0000
> +++ lisp/ido.el 2010-01-18 19:34:55 +0000
> @@ -3344,7 +3344,7 @@
>     (if ido-temp-list
>        (nconc ido-temp-list ido-current-buffers)
>       (setq ido-temp-list ido-current-buffers))
> -    (if default
> +    (if (and default (buffer-live-p (get-buffer default)))
>        (progn
>          (setq ido-temp-list
>                (delete default ido-temp-list))
>
>
> Now, though `ido-make-buffer-list' has not exactly a docstring, but a
> comment, it really says:
>
>  ;; [...]  If DEFAULT is non-nil, and corresponds to an existing buffer,
>  ;; it is put to the start of the list.
>
> so the use you did of it was relying on undocumented behaviour.
>
> Whether it should work as you prefer or not, I have no comment; but
> there has been some recent discussion on emacs-devel about reverting
> this patch and replacing it with another fix, by Leo (see thread
> titled "PATCH: Fix IDO  interaction with uniquify.el"); so perhaps you
> can chime in with your thoughts.


Thank you, I will look for it.


>
>   Juanma
>
[Message part 2 (text/html, inline)]

This bug report was last modified 14 years and 275 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.