ฉันมีรหัสที่ใช้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
ม้วนของตัวเองใช้nofletหรือdflet
วิธีที่ดีที่สุดคืออะไร?
my-flet
) และลบคำเตือนที่ล้าสมัยและใช้มันในแพ็คเกจใด ๆ ที่ก่อนหน้านี้ต้องการ flet