all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#7645: 23.2; ido commands failed to execute if there is some killed buffer
@ 2010-12-15  6:07 Abaw
  2010-12-15  8:29 ` Glenn Morris
  0 siblings, 1 reply; 7+ messages in thread
From: Abaw @ 2010-12-15  6:07 UTC (permalink / raw
  To: 7645


[-- Attachment #1.1: Type: text/plain, Size: 1496 bytes --]

Hi maintainers,

ido commands that finally calls ``ido-make-buffer-list'' would fail to
execute if there is some killed buffer returned by
``buffer-list''. Because (buffer-name a-killed-buffer) will return nil,
``ido-ignore-item-p'' fail to treat it as a stream. My solution is to
return non-nil if name passed to ``ido-ignore-item-p'' is nil.

The attachment is the patch I made for ido.el.


In GNU Emacs 23.2.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0)
of 2010-08-15 on raven, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.60900000
configured using `configure '--build' 'i486-linux-gnu' '--build'
'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib'
'--libexecdir=/usr/lib' '--localstatedir=/var/lib'
'--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes'
'--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.2/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.2/leim'
'--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars'
'build_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g'
'CPPFLAGS=''

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: nil
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t

[-- Attachment #1.2: Type: text/html, Size: 1854 bytes --]

[-- Attachment #2: ido.el.patch --]
[-- Type: application/octet-stream, Size: 437 bytes --]

--- ido.orig.el	2010-12-15 13:44:36.000000000 +0800
+++ ido.el	2010-12-15 13:44:49.000000000 +0800
@@ -3768,7 +3768,8 @@
 
 (defun ido-ignore-item-p (name re-list &optional ignore-ext)
   ;; Return t if the buffer or file NAME should be ignored.
-  (or (member name ido-ignore-item-temp-list)
+  (or (null name)
+      (member name ido-ignore-item-temp-list)
       (and
        ido-process-ignore-lists re-list
        (save-match-data

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

* bug#7645: 23.2; ido commands failed to execute if there is some killed buffer
  2010-12-15  6:07 bug#7645: 23.2; ido commands failed to execute if there is some killed buffer Abaw
@ 2010-12-15  8:29 ` Glenn Morris
       [not found]   ` <AANLkTimtHeYp1YzjUu3gPH=5+ax1rY8GiMN+g4yr8dq7@mail.gmail.com>
  0 siblings, 1 reply; 7+ messages in thread
From: Glenn Morris @ 2010-12-15  8:29 UTC (permalink / raw
  To: Abaw; +Cc: 7645

Abaw wrote:

> ido commands that finally calls ``ido-make-buffer-list'' would fail
> to execute if there is some killed buffer returned by ``buffer-list''.

But buffer-list doesn't return killed buffers:
"Return a list of all existing live buffers."

?





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

* bug#7645: Fwd: bug#7645: 23.2; ido commands failed to execute if there is some killed buffer
       [not found]   ` <AANLkTimtHeYp1YzjUu3gPH=5+ax1rY8GiMN+g4yr8dq7@mail.gmail.com>
@ 2010-12-15 15:31     ` Abaw
  2011-01-22 20:03       ` Chong Yidong
  0 siblings, 1 reply; 7+ messages in thread
From: Abaw @ 2010-12-15 15:31 UTC (permalink / raw
  To: 7645

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

---------- Forwarded message ----------
From: Abaw <abawwu@gmail.com>
Date: Wed, Dec 15, 2010 at 11:29 PM
Subject: Re: bug#7645: 23.2; ido commands failed to execute if there is some
killed buffer
To: Glenn Morris <rgm@gnu.org>


Hi,
It rarely(less than 1 time per month) returns killed buffers, but it does.
Maybe some of my used packages referenced the killed buffers.

The elisp reference manual has mentioned about this behavior:
http://www.gnu.org/software/emacs/manual/html_node/elisp/Killing-Buffers.html#Killing-Buffers

The buffer object for the buffer that has been killed remains in existence
as long as anything refers to it, but it is specially marked so that you
cannot make it current or display it. Killed buffers retain their identity,
however; if you kill two distinct buffers, they remain distinct according
to eq although both are dead.
Sincerely yours,
Ken.

On Wed, Dec 15, 2010 at 4:29 PM, Glenn Morris <rgm@gnu.org> wrote:

> Abaw wrote:
>
> > ido commands that finally calls ``ido-make-buffer-list'' would fail
> > to execute if there is some killed buffer returned by ``buffer-list''.
>
> But buffer-list doesn't return killed buffers:
> "Return a list of all existing live buffers."
>
> ?
>

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

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

* bug#7645: Fwd: bug#7645: 23.2; ido commands failed to execute if there is some killed buffer
  2010-12-15 15:31     ` bug#7645: Fwd: " Abaw
@ 2011-01-22 20:03       ` Chong Yidong
  2011-04-27  8:28         ` Leo
  0 siblings, 1 reply; 7+ messages in thread
From: Chong Yidong @ 2011-01-22 20:03 UTC (permalink / raw
  To: Abaw; +Cc: 7645

Abaw <abawwu@gmail.com> writes:

> [buffer-list] rarely(less than 1 time per month) returns killed
> buffers, but it does.  Maybe some of my used packages referenced the
> killed buffers.

If so, that would be a bug.  `buffer-list' returns the contents of a
list of live buffers maintained internally by Emacs.  When a buffer is
killed, it should be simultaneously removed from this internal list.

> The elisp reference manual has mentioned about this behavior:
> http://www.gnu.org/software/emacs/manual/html_node/elisp/Killing-Buffers.
> html#Killing-Buffers
>
> The buffer object for the buffer that has been killed remains in
> existence as long as anything refers to it, but it is specially marked
> so that you cannot make it current or display it. Killed buffers
> retain their identity, however; if you kill two distinct buffers, they
> remain distinct according to eq although both are dead.

This is a separate issue.  The buffer object remains in existence, but
it should always be removed from the list of live buffers.

Do you happen to have a Lisp backtrace of this error?





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

* bug#7645: 23.2; ido commands failed to execute if there is some killed buffer
  2011-01-22 20:03       ` Chong Yidong
@ 2011-04-27  8:28         ` Leo
  2011-04-27 12:58           ` Drew Adams
  2011-04-27 13:35           ` martin rudalics
  0 siblings, 2 replies; 7+ messages in thread
From: Leo @ 2011-04-27  8:28 UTC (permalink / raw
  To: Chong Yidong; +Cc: Abaw, 7645

On 2011-01-23 04:03 +0800, Chong Yidong wrote:
> Abaw <abawwu@gmail.com> writes:
>
>> [buffer-list] rarely(less than 1 time per month) returns killed
>> buffers, but it does.  Maybe some of my used packages referenced the
>> killed buffers.
>
> If so, that would be a bug.  `buffer-list' returns the contents of a
> list of live buffers maintained internally by Emacs.  When a buffer is
> killed, it should be simultaneously removed from this internal list.

I have seen this bug too due to (buffer-list t) returning killed
buffers. Unfortunately this isn't easy to reproduce.

Leo





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

* bug#7645: 23.2; ido commands failed to execute if there is some killed buffer
  2011-04-27  8:28         ` Leo
@ 2011-04-27 12:58           ` Drew Adams
  2011-04-27 13:35           ` martin rudalics
  1 sibling, 0 replies; 7+ messages in thread
From: Drew Adams @ 2011-04-27 12:58 UTC (permalink / raw
  To: 'Leo', 'Chong Yidong'; +Cc: 'Abaw', 7645

> >> [buffer-list] rarely(less than 1 time per month) returns killed
> >> buffers, but it does.  Maybe some of my used packages 
> >> referenced the killed buffers.
> 
> I have seen this bug too due to (buffer-list t) returning killed
> buffers. Unfortunately this isn't easy to reproduce.

1+

Happens to me too, and it's not so rare as once a month.
This has been mentioned in other bug threads, BTW.
Haven't seen a recipe yet.






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

* bug#7645: 23.2; ido commands failed to execute if there is some killed buffer
  2011-04-27  8:28         ` Leo
  2011-04-27 12:58           ` Drew Adams
@ 2011-04-27 13:35           ` martin rudalics
  1 sibling, 0 replies; 7+ messages in thread
From: martin rudalics @ 2011-04-27 13:35 UTC (permalink / raw
  To: Leo; +Cc: Chong Yidong, 7645, Abaw

 > I have seen this bug too due to (buffer-list t) returning killed
 > buffers. Unfortunately this isn't easy to reproduce.

Calling `buffer-list' with argument t is like calling it with no
argument at all ;-)

BTW, I'm running all my Emacsen for more than a month with

(defun check-buffer-list ()
   (dolist (buffer (buffer-list))
     (unless (buffer-live-p buffer)
       (message "Dead buffer %s" buffer))))

(add-hook 'post-command-hook 'check-buffer-list t)

and didn't find anything so far.  So please check whether the behavior
you observe might be caused by some other function.

martin





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

end of thread, other threads:[~2011-04-27 13:35 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-15  6:07 bug#7645: 23.2; ido commands failed to execute if there is some killed buffer Abaw
2010-12-15  8:29 ` Glenn Morris
     [not found]   ` <AANLkTimtHeYp1YzjUu3gPH=5+ax1rY8GiMN+g4yr8dq7@mail.gmail.com>
2010-12-15 15:31     ` bug#7645: Fwd: " Abaw
2011-01-22 20:03       ` Chong Yidong
2011-04-27  8:28         ` Leo
2011-04-27 12:58           ` Drew Adams
2011-04-27 13:35           ` martin rudalics

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.