3

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 では使用できません。

4

2 に答える 2