在 Emacs 23 和 24 中,以下工作正常:
(defun foo (&optional arg)
(interactive "^p")
(message "arg is %i" arg))
在 Emacs 22 中,我收到以下错误:
Invalid control letter `^' (136) in interactive calling string
我试过这个:
(defun foo (&optional arg)
(interactive (concat (if (> emacs-major-version 22) "^" "") "p"))
(message "arg is %i" arg))
但我得到:
Wrong type argument: listp, "^p"
^
在 Emacs 23 或 24 中使用而不是在 Emacs 22中使用的最佳方法是什么?