[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#34686: 26.1; unload-feature doesn't remove functions locally from ho
From: |
Robert Pluim |
Subject: |
bug#34686: 26.1; unload-feature doesn't remove functions locally from hooks |
Date: |
Thu, 28 Feb 2019 20:38:11 +0100 |
(please donʼt drop the bug address from the CC)
Braun Gábor <braungb88@gmail.com> writes:
> Hi,
>
>> > Standard unloading activities include restoring old autoloads for
>> > functions defined by the library, undoing any additions that the
>> > library has made to hook variables or to ‘auto-mode-alist’[...]
>
> Obviously, this part of the docstring of unload-feature contradicts
> the info manual.
>
>> In "(elisp) Unloading" it says:
>>
>> Before restoring the previous definitions, ‘unload-feature’ runs
>> ‘remove-hook’ to remove functions in the library from certain
>> hooks. These hooks include variables whose names end in ‘-hook’
>> (or the deprecated suffix ‘-hooks’), plus those listed in
>> ‘unload-feature-special-hooks’, as well as ‘auto-mode-alist’. This
>> is to prevent Emacs from ceasing to function because important
>> hooks refer to functions that are no longer defined.
>>
>> and a quick look at the code confirms that it at least *tries* to do
>> that.
>
> And as far as I understand the code, it does remove functions from the
> global value of the hooks, but not from the buffer-local values.
>
> IMHO, the stated reason in the info manual (keep Emacs functioning)
> justifies removing functions from the hooks (both their global and local
> values) which become undefined.
Yes, Iʼd tend to agree. Would you have a patch to offer?
Thanks
Robert