[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#24237: 24.5; (elisp)`Extended Menu Items', :filter warning
From: |
Lars Ingebrigtsen |
Subject: |
bug#24237: 24.5; (elisp)`Extended Menu Items', :filter warning |
Date: |
Sat, 12 Dec 2020 21:24:53 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Drew Adams <drew.adams@oracle.com> writes:
> The doc for :filter says this about the FILTER-FN:
>
> Emacs can call this function at any time that it does redisplay or
> operates on menu data structures, so you should write it so it can
> safely be called at any time.
>
> Is this true in general, or only when the extended menu item is put on a
> menu?
>
> A common idiom is to make use of a `menu-item' construct with a :filter
> to create a conditional _keyboard_ key binding. In such a case, the
> `menu-item' construct is not a real menu item - it is not placed on any
> menu.
>
> I'm guessing that in such a case this doc paragraph does not apply. If
> this guess is correct then please correct the paragraph, so that it says
> something like "If an extended menu item that uses :filter is placed on
> a menu then Emacs can call FILTER-FN when...".
I think making the documentation more specific here serves no purpose.
The statement as is should be true: You should always write these filter
functions as if they are called at any time.
> Also, is it really the case that FILTER-FN can be called anytime Emacs
> does redisplay? Shouldn't the doc say only that it can be called
> anytime Emacs "operates on menu data structures"? Does it get called by
> redisplay other than when redisplay operates on menu data structures?
> In the case mentioned above (binding to a keyboard key), would FILTER-FN
> ever be called during redisplay? I'm guessing that it would not.
I don't see why we should specify that at all.
Closing.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
- bug#24237: 24.5; (elisp)`Extended Menu Items', :filter warning,
Lars Ingebrigtsen <=
- bug#24237: 24.5; (elisp)`Extended Menu Items', :filter warning, Drew Adams, 2020/12/12
- bug#24237: 24.5; (elisp)`Extended Menu Items', :filter warning, Eli Zaretskii, 2020/12/13
- bug#24237: 24.5; (elisp)`Extended Menu Items', :filter warning, Drew Adams, 2020/12/13
- bug#24237: 24.5; (elisp)`Extended Menu Items', :filter warning, Eli Zaretskii, 2020/12/13
- bug#24237: 24.5; (elisp)`Extended Menu Items', :filter warning, Drew Adams, 2020/12/13
- bug#24237: 24.5; (elisp)`Extended Menu Items', :filter warning, Eli Zaretskii, 2020/12/19
- bug#24237: 24.5; (elisp)`Extended Menu Items', :filter warning, Drew Adams, 2020/12/19
- bug#24237: 24.5; (elisp)`Extended Menu Items', :filter warning, Eli Zaretskii, 2020/12/19
- bug#24237: 24.5; (elisp)`Extended Menu Items', :filter warning, Drew Adams, 2020/12/19
- bug#24237: 24.5; (elisp)`Extended Menu Items', :filter warning, Stefan Kangas, 2020/12/19