all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#6147: 23.2; ido-read-buffer regression
@ 2010-05-09 20:06 Kyle Hargraves
  2010-05-09 23:02 ` Juanma Barranquero
  2010-08-21 22:34 ` Stefan Monnier
  0 siblings, 2 replies; 4+ messages in thread
From: Kyle Hargraves @ 2010-05-09 20:06 UTC (permalink / raw)
  To: 6147

[-- Attachment #1: Type: text/plain, Size: 6588 bytes --]

In the version of ido shipped with 23.2, the behaviour of the
ido-make-buffer-list function no longer permits a default value to be
used by ido-read-buffer unless that value is the name of a preexisting
buffer.

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.

This prevents ido-everywhere from being useful in situations like C-u M-x
shell; it should, and in 23.1 did, offer a default name
for your new shell (eg, "*shell*<2>"). ido no longer displays that option,
as it is filtered out by ido-make-buffer-list.

I believe the related commit may be:

http://github.com/emacsmirror/emacs/commit/e2300713fd5a941bfe1dad338b88f4caf77cc945

HTH

In GNU Emacs 23.2.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.20.0)
 of 2010-05-08 on min
Windowing system distributor `The X.Org Foundation', version 11.0.10706000
configured using `configure  '--prefix=/usr' '--sysconfdir=/etc'
'--libexecdir=/usr/lib' '--localstatedir=/var' '--mandir=/usr/share/man'
'--without-sound' '-with-x-toolkit=gtk' 'CFLAGS=-march=x86-64 -mtune=generic
-O2 -pipe -fno-optimize-sibling-calls' 'LDFLAGS=-Wl,--hash-style=gnu
-Wl,--as-needed''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: en_US.UTF-8
  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: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  diff-auto-refine-mode: t
  hl-line-mode: t
  paredit-mode: t
  show-paren-mode: t
  yas/global-mode: t
  yas/minor-mode: t
  shell-dirtrack-mode: t
  recentf-mode: t
  ido-everywhere: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
t SPC e s s e n t i a l l y SPC b r e a k s s SPC <backspace>
<backspace> SPC i d o e - v e <backspace> <backspace>
<backspace> <backspace> - e v e r y w h e r e , SPC
a s SPC y o u SPC a r e SPC u n a b l e SPC t o SPC
o f f e r SPC d e f a u l t s SPC f o r SPC a n y SPC
n e SPC <backspace> w SPC b u f f e r SPC c r e a t
i o <muhenkan> n <return> C - u SPC M - x SPC s h e
l l SPC s h o u l d SPC o f f e r SPC * s h e l l *
< 2 > S-SPC <S-backspace> SPC o r SPC s u c h SPC w
h e n SPC y o u SPC s t a r t SPC a SPC n e w SPC s
h e l l , SPC b u t SPC n o SPC l o n g e r SPC c a
n <return> <switch-frame> C-u C-c s C-g C-u C-c s C-g
M-> <return> ( i d o - e v e r y w h e r e SPC t )
C-x C-e C-a C-k <backspace> C-x C-s C-u C-c s C-g C-x
b <return> C-x k <return> y C-x b a r c h <return>
C-x b <return> <switch-frame> <s-left> <s-down> M-v
C-v C-v M-p M-n M-p M-n <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <down> <down> <down>
C-l <s-up> C-x 0 M-x r e <return>

Recent messages:
Using try-complete-lisp-symbol
("*Help*" "#archlinux" "#clojure" "##javascript" "irc.freenode.net:6667"
"*Backtrace*" "#compojure" "hairband.css" "*shell*" "hairband.html"
"*magit-process*" "hairband" ...)
Mark saved where search started
Quit [2 times]
Mark set
t
Saving file /home/pd/sauce/hairband/src/css/hairband.css...
Wrote /home/pd/sauce/hairband/src/css/hairband.css
Quit
Buffer has a running process; kill it? (y or n)
windmove-do-window-select: Minibuffer is inactive

Load-path shadows:
/home/pd/.emacs.d/elpa/json-1.2/json hides /usr/share/emacs/23.2/lisp/json
/home/pd/.emacs.d/elpa/ruby-mode-1.1/ruby-mode hides
/usr/share/emacs/23.2/lisp/progmodes/ruby-mode

Features:
(shadow sort mail-extr message idna ecomplete rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045
qp ietf-drums mailabbrev nnheader mm-util mail-prsvr gmm-utils
mailheader canlock sha1 hex-util hashcash mail-utils emacsbug jka-compr
find-func cus-start cus-load debug help-mode browse-url erc-log erc-menu
erc-join erc-ring erc-networks erc-pcomplete pcomplete erc-track
erc-match erc-button erc-fill erc-stamp erc-netsplit erc-goodies erc
erc-backend erc-compat pp multi-isearch css-mode dired-aux dired js
byte-opt bytecomp byte-compile json thingatpt etags imenu newcomment
cc-mode cc-fonts cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs view magit diff-mode log-edit pcvs-util add-log parse-time
hippie-exp vc-git sgml-mode server hl-line paredit paren pd/misc pd/smex
smex pd/irc pd/haskell pd/js pd/ruby pd/lisps pd/chrome edit-server
pd/magit pd/tramp pd/shell ansi-color pd/coding pd/theme color-theme
sendmail pd/ido pd/bindings windmove pd/defuns pd/packages
clojure-test-mode-autoloads full-ack-autoloads inf-ruby-autoloads
json-autoloads paredit-autoloads ruby-mode-autoloads sass-mode-autoloads
haml-mode-autoloads swank-clojure-autoloads clojure-mode-autoloads
slime-repl-autoloads slime-autoloads yasnippet-bundle-autoloads
yasnippet-bundle dropdown-list yasnippet derived easy-mmode edmacro
kmacro package reporter pd/core ibuffer tramp-imap assoc tramp-gw
tramp-fish tramp-smb tramp-cache tramp-ftp tramp-cmds tramp regexp-opt
auth-source gnus-util netrc time-date shell comint ring password-cache
format-spec tramp-compat trampver recentf tree-widget wid-edit easymenu
uniquify advice help-fns advice-preload ido cl cl-19 tooltip ediff-hook
vc-hooks lisp-float-type mwheel x-win x-dnd font-setting tool-bar dnd
fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer
select scroll-bar mldrag mouse jit-lock font-lock syntax facemenu
font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces
cus-face files text-properties overlay md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote
make-network-process dbusbind system-font-setting font-render-setting
gtk x-toolkit x multi-tty emacs)

[-- Attachment #2: Type: text/html, Size: 8898 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#6147: 23.2; ido-read-buffer regression
  2010-05-09 20:06 bug#6147: 23.2; ido-read-buffer regression Kyle Hargraves
@ 2010-05-09 23:02 ` Juanma Barranquero
  2010-05-09 23:13   ` Kyle Hargraves
  2010-08-21 22:34 ` Stefan Monnier
  1 sibling, 1 reply; 4+ messages in thread
From: Juanma Barranquero @ 2010-05-09 23:02 UTC (permalink / raw)
  To: Kyle Hargraves; +Cc: 6147

On Sun, May 9, 2010 at 22:06, Kyle Hargraves <pd@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? AFAICS, that commit is related to virtual
buffers, and so it's not on Emacs 23.2.

The "culprit" is this change:

  ------------------------------------------------------------
  revno: 99373
  author: Óscar Fuentes <ofv@wanadoo.es>
  committer: Juanma Barranquero <lekktu@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.

   Juanma






^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#6147: 23.2; ido-read-buffer regression
  2010-05-09 23:02 ` Juanma Barranquero
@ 2010-05-09 23:13   ` Kyle Hargraves
  0 siblings, 0 replies; 4+ messages in thread
From: Kyle Hargraves @ 2010-05-09 23:13 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: 6147

[-- Attachment #1: Type: text/plain, Size: 2314 bytes --]

On Sun, May 9, 2010 at 6:02 PM, Juanma Barranquero <lekktu@gmail.com> wrote:

> On Sun, May 9, 2010 at 22:06, Kyle Hargraves <pd@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@wanadoo.es>
>  committer: Juanma Barranquero <lekktu@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
>

[-- Attachment #2: Type: text/html, Size: 3310 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#6147: 23.2; ido-read-buffer regression
  2010-05-09 20:06 bug#6147: 23.2; ido-read-buffer regression Kyle Hargraves
  2010-05-09 23:02 ` Juanma Barranquero
@ 2010-08-21 22:34 ` Stefan Monnier
  1 sibling, 0 replies; 4+ messages in thread
From: Stefan Monnier @ 2010-08-21 22:34 UTC (permalink / raw)
  To: Kyle Hargraves

> In the version of ido shipped with 23.2, the behaviour of the
> ido-make-buffer-list function no longer permits a default value to be
> used by ido-read-buffer unless that value is the name of a preexisting
> buffer.

> 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.

I believe this bug in now fixed in the emacs-23 branch, thanks to the
reversal of the patch that changed this behavior (replaced by
a different one which happens not to make this change).


        Stefan






^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-08-21 22:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-09 20:06 bug#6147: 23.2; ido-read-buffer regression Kyle Hargraves
2010-05-09 23:02 ` Juanma Barranquero
2010-05-09 23:13   ` Kyle Hargraves
2010-08-21 22:34 ` Stefan Monnier

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.