GNU bug report logs -
#65459
completing-read INITIAL-VALUE unaware of COLLECTION and REQUIRE-MATCH
Previous Next
Full log
Message #83 received at 65459 <at> debbugs.gnu.org (full text, mbox):
>
> The issue is not "don't use `(n)advice.el`", but "don't modify functions
> on the sly". And by "functions" this refers to those things stored in
> the `symbol-function` slot of symbols in the global obarray. This is
> because code that does `(my-foo ...)` usually expects to execute the
> code found in `(defun my-foo ...)` and not something else, and readers
> of that code often make the same assumption, so it can make debugging
> really nasty.
>
> Changing a function with `fset` (or `cl-letf` or `defalias`) is worse
> than using `advice-add`, for that reason: at least `advice-add` sets up
> the help system such that `C-h f` will (hopefully) warn you about the
> presence of an advice.
>
> For variables containing functions (such as
> `minibuffer-default-add-function`), there is no such expectation that
> calling this function will run some known piece of code, on the
> contrary: the whole point of the variable is to run difference pieces of
> code in different contexts, so modifying the function is perfectly OK,
> regardless whether you do it with `setq` or `add-function`. Here I'd
> use `add-function` because it's simpler.
>
Thanks, that clarifies that question! Perhaps a paragraph along those
lines could be added to "(elisp)Advising Functions"?
This bug report was last modified 1 year and 289 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.