--- Begin Message ---
Subject: |
25.0.50; add-function and nil |
Date: |
Tue, 09 Dec 2014 12:55:22 +0800 |
1. Goto a buffer (e.g. text-mode) with eldoc-documentation-function nil
2. (add-function :after-until (local 'eldoc-documentation-function) #'ignore)
3. Move around to trigger eldoc error: (void-function nil)
Looks like the orig function is unconditionally called without checking
it's a function object.
Leo
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#19324: 25.0.50; add-function and nil |
Date: |
Fri, 12 Dec 2014 08:44:11 +0800 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (CentOS Linux 7 (Core)) |
On 2014-12-11 14:11 -0500, Stefan Monnier wrote:
> No I don't have a fix for this.
> `add-function' is designed to work on places that only hold functions,
> so any other value (such as nil) will create problems.
>
> IOW a variable that can hold "either nil or a function" is not something
> that add-function supports.
>
> I guess we could treat nil as an alias for `ignore' in the "proxy
> function", which would fix this particular issue. See patch below.
> But I don't intend to handle all the cases in which a "nil function" can
> show up. Many/most uses of `foo-function' actually give a special
> meaning to nil which is different from `ignore'.
> So I'm not sure we should cater to this particular case.
Thanks, Stefan, for the explanation. In that case maybe the workaround
isn't needed because we still cannot tell if ORIG is missing. I consider
the bug closed.
Leo
--- End Message ---