changeset 76249:9e2414dc2556

(send_process_object): Check the process status and signal an error if something is wrong.
author Kenichi Handa <handa@m17n.org>
date Thu, 01 Mar 2007 10:17:41 +0000
parents d3c5626daefb
children 16787585fca8
files src/process.c
diffstat 1 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/process.c	Thu Mar 01 10:01:32 2007 +0000
+++ b/src/process.c	Thu Mar 01 10:17:41 2007 +0000
@@ -5694,8 +5694,16 @@
       : ! NILP (XBUFFER (object)->enable_multibyte_characters))
     {
       struct Lisp_Process *p = XPROCESS (proc);
-      struct coding_system *coding = proc_encode_coding_system[XINT (p->outfd)];
-
+      struct coding_system *coding;
+
+      if (p->raw_status_new)
+	update_status (p);
+      if (! EQ (p->status, Qrun))
+	error ("Process %s not running", SDATA (p->name));
+      if (XINT (p->outfd) < 0)
+	error ("Output file descriptor of %s is closed", SDATA (p->name));
+
+      coding = proc_encode_coding_system[XINT (p->outfd)];
       if (! EQ (coding->symbol, p->encode_coding_system))
 	/* The coding system for encoding was changed to raw-text
 	   because we sent a unibyte text previously.  Now we are