aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2011-04-16 15:04:41 -0700
committerPaul Eggert2011-04-16 15:04:41 -0700
commit006c5daa682b5d951fb4a0d7945d45a722f0690b (patch)
tree11c7e798553240c48211d1b74cb36f7f86eb28e4 /src
parentefc736d31984b3c361db0bb28003db76df31d554 (diff)
downloademacs-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')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/process.c11
2 files changed, 15 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 172fccc2dcf..e44331dcd4d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,9 @@
12011-04-16 Paul Eggert <eggert@cs.ucla.edu> 12011-04-16 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 * process.c (keyboard_bit_set): Define only if SIGIO.
4 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
5 (send_process): Repair possible setjmp clobbering.
6
3 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'. 7 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
4 8
5 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts. 9 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
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
238static Lisp_Object Fget_process (Lisp_Object); 238static Lisp_Object Fget_process (Lisp_Object);
239static void create_process (Lisp_Object, char **, Lisp_Object); 239static void create_process (Lisp_Object, char **, Lisp_Object);
240#ifdef SIGIO
240static int keyboard_bit_set (SELECT_TYPE *); 241static int keyboard_bit_set (SELECT_TYPE *);
242#endif
241static void deactivate_process (Lisp_Object); 243static void deactivate_process (Lisp_Object);
242static void status_notify (struct Lisp_Process *); 244static void status_notify (struct Lisp_Process *);
243static int read_process_output (Lisp_Object, int); 245static int read_process_output (Lisp_Object, int);
@@ -5220,6 +5222,10 @@ read_process_output (Lisp_Object proc, register int channel)
5220static jmp_buf send_process_frame; 5222static jmp_buf send_process_frame;
5221static Lisp_Object process_sent_to; 5223static Lisp_Object process_sent_to;
5222 5224
5225#ifndef FORWARD_SIGNAL_TO_MAIN_THREAD
5226static void send_process_trap (int) NO_RETURN;
5227#endif
5228
5223static void 5229static void
5224send_process_trap (int ignore) 5230send_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