changeset 108164:745e12b5af4a

Don't burp if process sentinel/filter kills the current buffer. * process.c (read_process_output, exec_sentinel): Don't burp if the sentinel/filter kills the current buffer.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 29 Apr 2010 10:29:09 -0400
parents ee8e46e5ac6d
children 5f43377338a0
files src/ChangeLog src/process.c
diffstat 2 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Thu Apr 29 16:23:12 2010 +0200
+++ b/src/ChangeLog	Thu Apr 29 10:29:09 2010 -0400
@@ -1,5 +1,8 @@
 2010-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* process.c (read_process_output, exec_sentinel): Don't burp if the
+	sentinel/filter kills the current buffer (bug#6060).
+
 	Fix wrong-docstring problem introduced with hash-consing.  (Bug#6008)
 	* eval.c (Fautoload): Set doc to a unique number rather than to 0.
 	Remove unused var `args'.
--- a/src/process.c	Thu Apr 29 16:23:12 2010 +0200
+++ b/src/process.c	Thu Apr 29 10:29:09 2010 -0400
@@ -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))