emacs-pretest-bug
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]