Subject: 23.2.94; Bug in delete-exited-processes

From: Leo <[email-masked]>
Date: Tue, 22 Feb 2011 14:36:00 +0800

While looking at processs.c, I found that due to this change:

Author: Kim F. Storm <[email-masked]>
Date:   Tue Oct 3 09:14:40 2006 +0000

    (list_processes_1): Run sentinels before removing dead
    processes.  Also remove `closed' network connections.

list_processes_1 no longer calls remove_process directly and thus the
meaning of nil for delete-exited-processes no longer means what it says
it does.

,----[ (info "(elisp)Deleting Processes") ]
| If it is
|      `nil', then they continue to exist until the user runs
|      `list-processes'.  Otherwise, they are deleted immediately after
|      they exit.
`----

For example, I set delete-exited-processes to nil and I can see in the
list processes buffer:

emms-player-simple-process<2> run      (none) /dev/ttys002 mpg123 /Users/Shared/iTunes Music/cyl/abc.mp3
emms-player-simple-process<1> exit     (none) /dev/ttys002 mpg123 /Users/Shared/iTunes Music/zjl/01.mp3
emms-player-simple-process    exit     (none) /dev/ttys002 mpg123 /Users/Shared/Music Videos/18.mp3
............

In addition, if I set delete-exited-processes back to t, list-processes
still don't remove processes with exit status.