Subject: Re: bug#55149: 29.0.50; Commit f30625943e broke magit/with-editor

From: Tassilo Horn <[email-masked]>
Date: Thu, 28 Apr 2022 09:31:22 +0200

Juri Linkov <[email-masked]> writes:

>>> The regression is that the return value of :after now overrides
>>> the return value of the original function.
>>
>> Oh, indeed.  But isn't that exactly as documented for add-function?
>>
>>  :after (lambda (&rest r) (apply OLDFUN r) (apply FUNCTION r))
>
> Indeed, it seems documentation differed from the actual implementation.
>
>> Of course, we'd rather want
>>
>>  :after (lambda (&rest r) (prog1 (apply OLDFUN r) (apply FUNCTION r)))
>
> Yep, this looks like what it's natural to expect from such advice type.
> Or maybe a new type could be added to modify the return value?

There is :filter-return to do exactly that.

Bye,
Tassilo