Subject: Re: bug#20489: 25.0.50; next-error-find-buffer chooses non-current buffer without good reason

From: Juri Linkov <[email-masked]>
Date: Wed, 07 Mar 2018 23:11:49 +0200

>>>> Please clarify what do you have in mind.  In what place in code such
>>>> function could be called?
>>>
>>> Any place that contains
>>>
>>>    (setq next-error-last-buffer buffer)
>>>    (setq-default next-error-last-buffer buffer)
>>>
>>> now, would instead call
>>>
>>>    (funcall next-error-save-last-buffer-function target-buf target-win)
>>
>> But isn't it possible to do this in next-error-hook?
>> It's called by run-hooks in the same place in next-error.
>
> For one thing, next-error-select-buffer doesn't call next-error-hook.
>
> And there are other such places (e.g. like you were saying
> xref--xref-buffer-mode should set next-error-last-buffer similarly).

3. And hooks are intended only for user customization.

> Aside from that, why would we want to obscure this piece of logic behind
> a hook?

Instead of a hook I think it would be fine to define an “advisable” function
like Stefan asked to do for next-error-find-buffer-function to be able
to put advices on it.