[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: list-processes and process sentinels not run.
From: |
Kim F. Storm |
Subject: |
Re: list-processes and process sentinels not run. |
Date: |
Sun, 01 Oct 2006 02:15:19 +0200 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
Matt Hodges <address@hidden> writes:
> In GNU Emacs 22.0.50.3 (i686-pc-linux-gnu, GTK+ Version 2.8.20)
> of 2006-09-29 on saiga
> X server distributor `The X.Org Foundation', version 11.0.70101000
> configured using `configure '--with-gtk''
>
> If a process status changes to exit and list-processes is called
> without there being idle time, then the process is removed in
> list_processes_1:
>
> if (EQ (symbol, Qsignal) || EQ (symbol, Qexit))
> remove_process (proc);
>
> and the process sentinel isn't run.
Does the following patch solve the problem?
*** process.c 08 Sep 2006 15:51:27 +0200 1.488
--- process.c 01 Oct 2006 02:11:29 +0200
***************
*** 1314,1319 ****
--- 1314,1320 ----
register struct Lisp_Process *p;
char tembuf[300];
int w_proc, w_buffer, w_tty;
+ int exited = 0;
Lisp_Object i_status, i_buffer, i_tty, i_command;
w_proc = 4; /* Proc */
***************
*** 1440,1447 ****
}
}
! if (EQ (symbol, Qsignal) || EQ (symbol, Qexit))
! remove_process (proc);
Findent_to (i_buffer, minspace);
if (NILP (p->buffer))
--- 1441,1448 ----
}
}
! if (EQ (symbol, Qsignal) || EQ (symbol, Qexit) || EQ (symbol, Qclosed))
! exited++;
Findent_to (i_buffer, minspace);
if (NILP (p->buffer))
***************
*** 1505,1510 ****
--- 1506,1513 ----
insert_string ("\n");
}
}
+ if (exited)
+ status_notify (NULL);
return Qnil;
}
--
Kim F. Storm <address@hidden> http://www.cua.dk