[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#6060: 24.0.50; Process filters can no longer kill buffers
From: |
Helmut Eller |
Subject: |
bug#6060: 24.0.50; Process filters can no longer kill buffers |
Date: |
Wed, 28 Apr 2010 16:08:12 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
When GNU Emacs 24.0.50.7 (i686-pc-linux-gnu, GTK+ Version 2.12.12) of
2010-04-28 executes code like this:
(defun filter-test ()
(let* ((proc (start-process
"test" nil "/bin/bash" "-c"
"for i in 1 2 3 4 ; do echo $i ; sleep 1 ; done"))
(buffer (generate-new-buffer "test-buffer"))
(filter (lambda (proc str)
(message "filter: %S" str)
(kill-buffer buffer))))
(set-process-filter proc filter)
(unwind-protect
(with-current-buffer buffer
(while (buffer-live-p buffer)
(accept-process-output proc)))
(kill-process proc))))
Emacs signals this error: (error "Selecting deleted buffer")
This used to work in earlier versions of Emacs.
The problem was most likely introduced by:
2010-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
* process.c (exec_sentinel): Preserve current-buffer.
* process.c (read_process_output): Move the save-current-buffer to
apply to both the filter and the non-filter branches.
- bug#6060: 24.0.50; Process filters can no longer kill buffers,
Helmut Eller <=