diff options
| author | Paul Eggert | 2011-04-16 15:04:41 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-04-16 15:04:41 -0700 |
| commit | 006c5daa682b5d951fb4a0d7945d45a722f0690b (patch) | |
| tree | 11c7e798553240c48211d1b74cb36f7f86eb28e4 /src/process.c | |
| parent | efc736d31984b3c361db0bb28003db76df31d554 (diff) | |
| download | emacs-006c5daa682b5d951fb4a0d7945d45a722f0690b.tar.gz emacs-006c5daa682b5d951fb4a0d7945d45a722f0690b.zip | |
* process.c (keyboard_bit_set): Define only if SIGIO.
(send_process_trap): Mark it with NO_RETURN if it doesn't return.
(send_process): Repair possible setjmp clobbering.
Diffstat (limited to 'src/process.c')
| -rw-r--r-- | src/process.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/process.c b/src/process.c index c9c6ab6d4b3..d8851c56cf0 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -237,7 +237,9 @@ static int process_output_skip; | |||
| 237 | 237 | ||
| 238 | static Lisp_Object Fget_process (Lisp_Object); | 238 | static Lisp_Object Fget_process (Lisp_Object); |
| 239 | static void create_process (Lisp_Object, char **, Lisp_Object); | 239 | static void create_process (Lisp_Object, char **, Lisp_Object); |
| 240 | #ifdef SIGIO | ||
| 240 | static int keyboard_bit_set (SELECT_TYPE *); | 241 | static int keyboard_bit_set (SELECT_TYPE *); |
| 242 | #endif | ||
| 241 | static void deactivate_process (Lisp_Object); | 243 | static void deactivate_process (Lisp_Object); |
| 242 | static void status_notify (struct Lisp_Process *); | 244 | static void status_notify (struct Lisp_Process *); |
| 243 | static int read_process_output (Lisp_Object, int); | 245 | static int read_process_output (Lisp_Object, int); |
| @@ -5220,6 +5222,10 @@ read_process_output (Lisp_Object proc, register int channel) | |||
| 5220 | static jmp_buf send_process_frame; | 5222 | static jmp_buf send_process_frame; |
| 5221 | static Lisp_Object process_sent_to; | 5223 | static Lisp_Object process_sent_to; |
| 5222 | 5224 | ||
| 5225 | #ifndef FORWARD_SIGNAL_TO_MAIN_THREAD | ||
| 5226 | static void send_process_trap (int) NO_RETURN; | ||
| 5227 | #endif | ||
| 5228 | |||
| 5223 | static void | 5229 | static void |
| 5224 | send_process_trap (int ignore) | 5230 | send_process_trap (int ignore) |
| 5225 | { | 5231 | { |
| @@ -5360,6 +5366,8 @@ send_process (volatile Lisp_Object proc, const char *volatile buf, | |||
| 5360 | when returning with longjmp despite being declared volatile. */ | 5366 | when returning with longjmp despite being declared volatile. */ |
| 5361 | if (!setjmp (send_process_frame)) | 5367 | if (!setjmp (send_process_frame)) |
| 5362 | { | 5368 | { |
| 5369 | p = XPROCESS (proc); /* Repair any setjmp clobbering. */ | ||
| 5370 | |||
| 5363 | process_sent_to = proc; | 5371 | process_sent_to = proc; |
| 5364 | while (len > 0) | 5372 | while (len > 0) |
| 5365 | { | 5373 | { |
| @@ -6583,6 +6591,8 @@ delete_gpm_wait_descriptor (int desc) | |||
| 6583 | delete_keyboard_wait_descriptor (desc); | 6591 | delete_keyboard_wait_descriptor (desc); |
| 6584 | } | 6592 | } |
| 6585 | 6593 | ||
| 6594 | # ifdef SIGIO | ||
| 6595 | |||
| 6586 | /* Return nonzero if *MASK has a bit set | 6596 | /* Return nonzero if *MASK has a bit set |
| 6587 | that corresponds to one of the keyboard input descriptors. */ | 6597 | that corresponds to one of the keyboard input descriptors. */ |
| 6588 | 6598 | ||
| @@ -6598,6 +6608,7 @@ keyboard_bit_set (fd_set *mask) | |||
| 6598 | 6608 | ||
| 6599 | return 0; | 6609 | return 0; |
| 6600 | } | 6610 | } |
| 6611 | # endif | ||
| 6601 | 6612 | ||
| 6602 | #else /* not subprocesses */ | 6613 | #else /* not subprocesses */ |
| 6603 | 6614 | ||