diff options
| author | Richard M. Stallman | 1994-06-25 22:34:52 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-06-25 22:34:52 +0000 |
| commit | 274a9425361237d6623f2f27d6267eef45a2adfc (patch) | |
| tree | d05cc9af478ff6e36475b4dca668225e2f006d52 | |
| parent | 790f39e7815fde07bbccc64b67e3d9fa079540aa (diff) | |
| download | emacs-274a9425361237d6623f2f27d6267eef45a2adfc.tar.gz emacs-274a9425361237d6623f2f27d6267eef45a2adfc.zip | |
(send_process): Major rewrite.
Don't put in a C-d unless a single line is too long.
Read process input whenever output gets stuck.
Relocate BUF if we read input. New arg OBJECT.
(Fprocess_send_region, Fprocess_send_string, process_send_signal)
(Fprocess_send_eof): Pass new arg OBJECT.
| -rw-r--r-- | src/buffer.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/buffer.c b/src/buffer.c index 3eb61de0c82..9561035e334 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -2115,25 +2115,33 @@ DEFUN ("overlay-put", Foverlay_put, Soverlay_put, 3, 3, 0, | |||
| 2115 | (overlay, prop, value) | 2115 | (overlay, prop, value) |
| 2116 | Lisp_Object overlay, prop, value; | 2116 | Lisp_Object overlay, prop, value; |
| 2117 | { | 2117 | { |
| 2118 | Lisp_Object plist, tail; | 2118 | Lisp_Object plist, tail, buffer; |
| 2119 | 2119 | ||
| 2120 | CHECK_OVERLAY (overlay, 0); | 2120 | CHECK_OVERLAY (overlay, 0); |
| 2121 | 2121 | ||
| 2122 | tail = Fmarker_buffer (OVERLAY_START (overlay)); | 2122 | buffer = Fmarker_buffer (OVERLAY_START (overlay)); |
| 2123 | if (! NILP (tail)) | 2123 | |
| 2124 | redisplay_region (XMARKER (OVERLAY_START (overlay))->buffer, | ||
| 2125 | marker_position (OVERLAY_START (overlay)), | ||
| 2126 | marker_position (OVERLAY_END (overlay))); | ||
| 2127 | |||
| 2128 | plist = Fcdr_safe (XCONS (overlay)->cdr); | 2124 | plist = Fcdr_safe (XCONS (overlay)->cdr); |
| 2129 | 2125 | ||
| 2130 | for (tail = plist; | 2126 | for (tail = plist; |
| 2131 | CONSP (tail) && CONSP (XCONS (tail)->cdr); | 2127 | CONSP (tail) && CONSP (XCONS (tail)->cdr); |
| 2132 | tail = XCONS (XCONS (tail)->cdr)->cdr) | 2128 | tail = XCONS (XCONS (tail)->cdr)->cdr) |
| 2133 | { | 2129 | if (EQ (XCONS (tail)->car, prop)) |
| 2134 | if (EQ (XCONS (tail)->car, prop)) | 2130 | { |
| 2131 | /* If actually changing the property, mark redisplay needed. */ | ||
| 2132 | if (! NILP (buffer) && !EQ (XCONS (XCONS (tail)->cdr)->car, value)) | ||
| 2133 | redisplay_region (buffer, | ||
| 2134 | marker_position (OVERLAY_START (overlay)), | ||
| 2135 | marker_position (OVERLAY_END (overlay))); | ||
| 2136 | |||
| 2135 | return XCONS (XCONS (tail)->cdr)->car = value; | 2137 | return XCONS (XCONS (tail)->cdr)->car = value; |
| 2136 | } | 2138 | } |
| 2139 | |||
| 2140 | /* Actually changing the property; mark redisplay needed. */ | ||
| 2141 | if (! NILP (buffer)) | ||
| 2142 | redisplay_region (buffer, | ||
| 2143 | marker_position (OVERLAY_START (overlay)), | ||
| 2144 | marker_position (OVERLAY_END (overlay))); | ||
| 2137 | 2145 | ||
| 2138 | if (! CONSP (XCONS (overlay)->cdr)) | 2146 | if (! CONSP (XCONS (overlay)->cdr)) |
| 2139 | XCONS (overlay)->cdr = Fcons (Qnil, Qnil); | 2147 | XCONS (overlay)->cdr = Fcons (Qnil, Qnil); |