emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/src ChangeLog process.c


From: Andreas Schwab
Subject: [Emacs-diffs] emacs/src ChangeLog process.c
Date: Sat, 02 May 2009 11:54:45 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Andreas Schwab <schwab> 09/05/02 11:54:45

Modified files:
        src            : ChangeLog process.c 

Log message:
        (read_process_output): Make sure the current buffer is
        always restored.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/ChangeLog?cvsroot=emacs&r1=1.7527&r2=1.7528
http://cvs.savannah.gnu.org/viewcvs/emacs/src/process.c?cvsroot=emacs&r1=1.583&r2=1.584

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/src/ChangeLog,v
retrieving revision 1.7527
retrieving revision 1.7528
diff -u -b -r1.7527 -r1.7528
--- ChangeLog   2 May 2009 11:32:42 -0000       1.7527
+++ ChangeLog   2 May 2009 11:54:43 -0000       1.7528
@@ -1,5 +1,8 @@
 2009-05-02  Andreas Schwab  <address@hidden>
 
+       * process.c (read_process_output): Make sure the current buffer is
+       always restored.
+
        * coding.c (record_conversion_result): Don't modify
        Vlast_code_conversion_error for successful result.
        (alloc_destination): Don't clobber conversion result.  (Bug#1650)

Index: process.c
===================================================================
RCS file: /sources/emacs/emacs/src/process.c,v
retrieving revision 1.583
retrieving revision 1.584
diff -u -b -r1.583 -r1.584
--- process.c   29 Apr 2009 05:15:34 -0000      1.583
+++ process.c   2 May 2009 11:54:45 -0000       1.584
@@ -5185,7 +5185,6 @@
   register int nbytes;
   char *chars;
   register Lisp_Object outstream;
-  register struct buffer *old = current_buffer;
   register struct Lisp_Process *p = XPROCESS (proc);
   register int opoint;
   struct coding_system *coding = proc_decode_coding_system[channel];
@@ -5385,9 +5384,11 @@
       int opoint_byte;
       Lisp_Object text;
       struct buffer *b;
+      int count = SPECPDL_INDEX ();
 
       odeactivate = Vdeactivate_mark;
 
+      record_unwind_protect (Fset_buffer, Fcurrent_buffer ());
       Fset_buffer (p->buffer);
       opoint = PT;
       opoint_byte = PT_BYTE;
@@ -5490,7 +5491,7 @@
 
       current_buffer->read_only = old_read_only;
       SET_PT_BOTH (opoint, opoint_byte);
-      set_buffer_internal (old);
+      unbind_to (count, Qnil);
     }
   return nbytes;
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]