Comment utiliser des arguments «interactifs» lors de l'appel de la commande à partir du code

12

J'ai une commande appelée testqui prend simplement une entrée de l'utilisateur et la renvoie en écho:

(defun test (input)
  (interactive "MInput: ")
  (message "%s" input))

Je veux écrire une autre fonction qui l'appellerait. Échoue:

(defun test-forward ()
  (interactive)
  (test))

avec cette erreur

test-forward: Wrong number of arguments: (lambda (input) (interactive "MInput: ") (message "%s" input)), 0

Cela a du sens, car testprend une entrée. Faire test, c'est input &optionalsimplement test-forwardrevenir nilsans rien faire. Quelle est la bonne façon de procéder?

Pradhan
la source

Réponses:

13

Simplement:

(call-interactively 'test)
abo-abo
la source