* bug#6060: 24.0.50; Process filters can no longer kill buffers @ 2010-04-28 14:08 Helmut Eller 2010-04-29 14:31 ` Stefan Monnier 0 siblings, 1 reply; 4+ messages in thread From: Helmut Eller @ 2010-04-28 14:08 UTC (permalink / raw) To: 6060 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. ^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#6060: 24.0.50; Process filters can no longer kill buffers 2010-04-28 14:08 bug#6060: 24.0.50; Process filters can no longer kill buffers Helmut Eller @ 2010-04-29 14:31 ` Stefan Monnier 2010-04-29 16:00 ` Helmut Eller 0 siblings, 1 reply; 4+ messages in thread From: Stefan Monnier @ 2010-04-29 14:31 UTC (permalink / raw) To: Helmut Eller; +Cc: 6060 > Emacs signals this error: (error "Selecting deleted buffer") [...] > This used to work in earlier versions of Emacs. > The problem was most likely introduced by: [...] > * 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. Indeed, thank you. I believe the patch below has fixed this, can you confirm? Stefan === modified file 'src/process.c' --- src/process.c 2010-04-13 02:07:48 +0000 +++ src/process.c 2010-04-29 14:17:52 +0000 @@ -5396,7 +5396,7 @@ /* There's no good reason to let process filters change the current buffer, and many callers of accept-process-output, sit-for, and friends don't expect current-buffer to be changed from under them. */ - record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); + record_unwind_protect (set_buffer_if_live, Fcurrent_buffer ()); /* Read and dispose of the process output. */ outstream = p->filter; @@ -6814,7 +6814,7 @@ /* There's no good reason to let sentinels change the current buffer, and many callers of accept-process-output, sit-for, and friends don't expect current-buffer to be changed from under them. */ - record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); + record_unwind_protect (set_buffer_if_live, Fcurrent_buffer ()); sentinel = p->sentinel; if (NILP (sentinel)) ^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#6060: 24.0.50; Process filters can no longer kill buffers 2010-04-29 14:31 ` Stefan Monnier @ 2010-04-29 16:00 ` Helmut Eller 2010-04-29 22:52 ` Stefan Monnier 0 siblings, 1 reply; 4+ messages in thread From: Helmut Eller @ 2010-04-29 16:00 UTC (permalink / raw) To: bug-gnu-emacs * Stefan Monnier [2010-04-29 16:31+0200] writes: >> Emacs signals this error: (error "Selecting deleted buffer") > [...] >> This used to work in earlier versions of Emacs. >> The problem was most likely introduced by: > [...] >> * 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. > > Indeed, thank you. I believe the patch below has fixed this, can you confirm? Yes, works. Thanks for the quick fix. Helmut ^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#6060: 24.0.50; Process filters can no longer kill buffers 2010-04-29 16:00 ` Helmut Eller @ 2010-04-29 22:52 ` Stefan Monnier 0 siblings, 0 replies; 4+ messages in thread From: Stefan Monnier @ 2010-04-29 22:52 UTC (permalink / raw) To: Helmut Eller > Yes, works. Thanks for the quick fix. Thanks for confirming, Stefan ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-04-29 22:52 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-04-28 14:08 bug#6060: 24.0.50; Process filters can no longer kill buffers Helmut Eller 2010-04-29 14:31 ` Stefan Monnier 2010-04-29 16:00 ` Helmut Eller 2010-04-29 22:52 ` 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.