मेरे पास कुछ कोड हैं जो 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
), और अप्रचलित चेतावनी को हटा दिया, और किसी भी पैकेज में उपयोग करें जो पहले से आवश्यक हो।