Eric Abrahamsen <e...@ericabrahamsen.net> writes: > Tim Cross <theophil...@gmail.com> writes: > >> Eric Abrahamsen <e...@ericabrahamsen.net> writes: >> >>> In Emacs commit f596f0db82c0b1ff3fe8e8f1d8b07d2fe7504ab6, from Nov 2021, >>> the function `indent-according-to-mode' was given an optional >>> inhibit-widen argument. That argument being passed causes orgalist's >>> advice to fail, as the lambda doesn't accept any additional arguments. >>> One way to fix it would be like that: >>> >>> (unless (advice-member-p 'orgalist-fix-bug:31361 'indent-according-to-mode) >>> (advice-add 'indent-according-to-mode >>> :around (lambda (old &optional inhibit-widen) >>> "Workaround bug#31361." >>> (or (orgalist--indent-line) >>> (let ((indent-line-function >>> (advice--cd*r indent-line-function))) >>> (funcall old inhibit-widen)))) >>> '((name . orgalist-fix-bug:31361))))) >>> >>> Or I suppose a more future-proof approach might be to use a &rest and >>> then `apply' instead of `funcall'. >>> >> >> A better solution would probably be to fix this without using >> add-advice. While advice can be a useful escape hatch, it really is best >> avoided, especially given that it doesn't always play nice with lexical >> binding. I note this one is also calling an undocumented internal >> function. > > In principle I quite agree! But orgalist is basically built on top of > add-function/advice-add, so I didn't think that was an option. And > also assumed that, given what Orgalist is trying to do, there isn't a > cleaner solution right now.
What do you think, Nicolas? Can I patch this to use &rest and `apply'?