Subject: bug#17361: Tramp does not save history across sessions.

From: Daimrod <[email-masked]>
Date: Tue, 29 Apr 2014 16:39:11 +0900

Michael Albinus <[email-masked]> writes:

> Stefan Monnier <[email-masked]> writes:
>
>>> Ah, thanks. I wasn't aware of this use case. However, shouldn't this be
>>> propagated further? The Elisp info pages do not mention this use case,
>>> when speaking about `set-process-filter' or `set-process-sentinel'.
>>
>> I added some advertisement for add-function in those sections, thanks.
>
> Reading your text, I wonder how one should implement this. Usually, one
> doesn't know which other library intends to set a filter or a process.

I was thinking about the same thing.

> In stock Emacs, there are 43 files with calls of `set-process-filter',
> and 53 files with calls of `set-process-sentinel'. In the elpa branch,
> there are 4/4 additional such files. All those places must be adapted,
> checking whether there could be several filters or sentinels.
>
> Wouldn't it be more consistent to modify `set-process-filter' and
> ´set-process-sentinel' to take care, when several filters or sentinels
> are added to a given process? Both functions could be equipped with an
> optional argument WHERE, which has the similar meaning as in
> `add-function'. Maybe just :before, :after and :replace shall be
> allowed, and one of them (:after?) could be the default.

What about having a default sentinel/filter for all process that does
nothing (just a placeholder)?

Then instead of using `set-process-filter' one could use
(add-function :whatever (process-filter process) ...)

-- 
Daimrod/Greg