aboutsummaryrefslogtreecommitdiffstats
path: root/src/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/process.c b/src/process.c
index 6dc5a88944c..4611ce2c05c 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1,7 +1,7 @@
1/* Asynchronous subprocess control for GNU Emacs. 1/* Asynchronous subprocess control for GNU Emacs.
2 Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 2 Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995,
3 1996, 1998, 1999, 2001, 2002, 2003, 2004, 3 1996, 1998, 1999, 2001, 2002, 2003, 2004,
4 2005, 2006 Free Software Foundation, Inc. 4 2005, 2006, 2007 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
7 7
@@ -814,9 +814,12 @@ nil, indicating the current buffer's process. */)
814 { 814 {
815#ifdef SIGCHLD 815#ifdef SIGCHLD
816 Lisp_Object symbol; 816 Lisp_Object symbol;
817 /* Assignment to EMACS_INT stops GCC whining about limited range
818 of data type. */
819 EMACS_INT pid = p->pid;;
817 820
818 /* No problem storing the pid here, as it is still in Vprocess_alist. */ 821 /* No problem storing the pid here, as it is still in Vprocess_alist. */
819 deleted_pid_list = Fcons (make_fixnum_or_float (p->pid), 822 deleted_pid_list = Fcons (make_fixnum_or_float (pid),
820 /* GC treated elements set to nil. */ 823 /* GC treated elements set to nil. */
821 Fdelq (Qnil, deleted_pid_list)); 824 Fdelq (Qnil, deleted_pid_list));
822 /* If the process has already signaled, remove it from the list. */ 825 /* If the process has already signaled, remove it from the list. */
@@ -826,7 +829,7 @@ nil, indicating the current buffer's process. */)
826 if (CONSP (p->status)) 829 if (CONSP (p->status))
827 symbol = XCAR (p->status); 830 symbol = XCAR (p->status);
828 if (EQ (symbol, Qsignal) || EQ (symbol, Qexit)) 831 if (EQ (symbol, Qsignal) || EQ (symbol, Qexit))
829 Fdelete (make_fixnum_or_float (p->pid), deleted_pid_list); 832 Fdelete (make_fixnum_or_float (pid), deleted_pid_list);
830 else 833 else
831#endif 834#endif
832 { 835 {
@@ -911,10 +914,13 @@ For a network connection, this value is nil. */)
911 (process) 914 (process)
912 register Lisp_Object process; 915 register Lisp_Object process;
913{ 916{
917 /* Assignment to EMACS_INT stops GCC whining about limited range of
918 data type. */
919 EMACS_INT pid;
920
914 CHECK_PROCESS (process); 921 CHECK_PROCESS (process);
915 return (XPROCESS (process)->pid 922 pid = XPROCESS (process)->pid;
916 ? make_fixnum_or_float (XPROCESS (process)->pid) 923 return (pid ? make_fixnum_or_float (pid) : Qnil);
917 : Qnil);
918} 924}
919 925
920DEFUN ("process-name", Fprocess_name, Sprocess_name, 1, 1, 0, 926DEFUN ("process-name", Fprocess_name, Sprocess_name, 1, 1, 0,
@@ -6386,7 +6392,7 @@ sigchld_handler (signo)
6386 6392
6387 while (1) 6393 while (1)
6388 { 6394 {
6389 register int pid; 6395 register EMACS_INT pid;
6390 WAITTYPE w; 6396 WAITTYPE w;
6391 Lisp_Object tail; 6397 Lisp_Object tail;
6392 6398