У меня есть некоторый код, который использует flet
для временного изменения поведения функций.
;; prevent changing the window
(flet ((pop-to-buffer (buffer &rest args)
(switch-to-buffer buffer)))
(compilation-next-error-function n reset))
Тем не менее, байт-компилятор Emacs выдает предупреждение:
In ag/next-error-function:
ag.el:103:7:Warning: `flet' is an obsolete macro (as of 24.3); use either
`cl-flet' or `cl-letf'.
Однако cl-flet
работает по-другому и не подходит для некоторых случаев использования, и я считаю, что это один из таких случаев.
Варианты, которые я вижу:
Скажите Emacs как-то игнорировать предупреждение.
Сверните мое собственное
flet
.
Каков наилучший подход?
my-flet
) и удалил устаревшее предупреждение, и использую его в любом пакете, который ранее требовал flet.