Mercurial > emacs
comparison src/process.c @ 103621:444861df76cd
Simplify last change.
author | Andreas Schwab <schwab@linux-m68k.org> |
---|---|
date | Sun, 28 Jun 2009 20:25:49 +0000 |
parents | 70e98b9afe06 |
children | 2e99121a6895 |
comparison
equal
deleted
inserted
replaced
103620:70e98b9afe06 | 103621:444861df76cd |
---|---|
5548 { | 5548 { |
5549 /* Use volatile to protect variables from being clobbered by longjmp. */ | 5549 /* Use volatile to protect variables from being clobbered by longjmp. */ |
5550 struct Lisp_Process *p = XPROCESS (proc); | 5550 struct Lisp_Process *p = XPROCESS (proc); |
5551 int rv; | 5551 int rv; |
5552 struct coding_system *coding; | 5552 struct coding_system *coding; |
5553 struct gcpro gcpro1, gcpro2; | 5553 struct gcpro gcpro1; |
5554 SIGTYPE (*volatile old_sigpipe) (); | 5554 SIGTYPE (*volatile old_sigpipe) (); |
5555 Lisp_Object dst_object = Qnil; | 5555 |
5556 | 5556 GCPRO1 (object); |
5557 GCPRO2 (object, dst_object); | |
5558 | 5557 |
5559 if (p->raw_status_new) | 5558 if (p->raw_status_new) |
5560 update_status (p); | 5559 update_status (p); |
5561 if (! EQ (p->status, Qrun)) | 5560 if (! EQ (p->status, Qrun)) |
5562 error ("Process %s not running", SDATA (p->name)); | 5561 error ("Process %s not running", SDATA (p->name)); |
5631 coding->dst_object = make_unibyte_string (buf, len); | 5630 coding->dst_object = make_unibyte_string (buf, len); |
5632 coding->produced = len; | 5631 coding->produced = len; |
5633 } | 5632 } |
5634 | 5633 |
5635 len = coding->produced; | 5634 len = coding->produced; |
5636 dst_object = coding->dst_object; | 5635 object = coding->dst_object; |
5637 buf = SDATA (dst_object); | 5636 buf = SDATA (object); |
5638 } | 5637 } |
5639 | 5638 |
5640 if (pty_max_bytes == 0) | 5639 if (pty_max_bytes == 0) |
5641 { | 5640 { |
5642 #if defined (HAVE_FPATHCONF) && defined (_PC_MAX_CANON) | 5641 #if defined (HAVE_FPATHCONF) && defined (_PC_MAX_CANON) |
5763 } | 5762 } |
5764 #endif /* BROKEN_PTY_READ_AFTER_EAGAIN */ | 5763 #endif /* BROKEN_PTY_READ_AFTER_EAGAIN */ |
5765 | 5764 |
5766 /* Running filters might relocate buffers or strings. | 5765 /* Running filters might relocate buffers or strings. |
5767 Arrange to relocate BUF. */ | 5766 Arrange to relocate BUF. */ |
5768 if (CODING_REQUIRE_ENCODING (coding)) | 5767 if (BUFFERP (object)) |
5769 offset = buf - SDATA (dst_object); | |
5770 else if (BUFFERP (object)) | |
5771 offset = BUF_PTR_BYTE_POS (XBUFFER (object), buf); | 5768 offset = BUF_PTR_BYTE_POS (XBUFFER (object), buf); |
5772 else if (STRINGP (object)) | 5769 else if (STRINGP (object)) |
5773 offset = buf - SDATA (object); | 5770 offset = buf - SDATA (object); |
5774 | 5771 |
5775 #ifdef EMACS_HAS_USECS | 5772 #ifdef EMACS_HAS_USECS |
5776 wait_reading_process_output (0, 20000, 0, 0, Qnil, NULL, 0); | 5773 wait_reading_process_output (0, 20000, 0, 0, Qnil, NULL, 0); |
5777 #else | 5774 #else |
5778 wait_reading_process_output (1, 0, 0, 0, Qnil, NULL, 0); | 5775 wait_reading_process_output (1, 0, 0, 0, Qnil, NULL, 0); |
5779 #endif | 5776 #endif |
5780 | 5777 |
5781 if (CODING_REQUIRE_ENCODING (coding)) | 5778 if (BUFFERP (object)) |
5782 buf = offset + SDATA (dst_object); | |
5783 else if (BUFFERP (object)) | |
5784 buf = BUF_BYTE_ADDRESS (XBUFFER (object), offset); | 5779 buf = BUF_BYTE_ADDRESS (XBUFFER (object), offset); |
5785 else if (STRINGP (object)) | 5780 else if (STRINGP (object)) |
5786 buf = offset + SDATA (object); | 5781 buf = offset + SDATA (object); |
5787 | 5782 |
5788 rv = 0; | 5783 rv = 0; |