Como usar argumentos 'interativos' ao chamar o comando do código

12

Eu tenho um comando chamado testque simplesmente pega uma entrada do usuário e a repete:

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

Eu quero escrever outra função que chamaria isso. O seguinte falha:

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

com este erro

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

Isso faz sentido, pois testrequer uma entrada. Fazer testé input &optionalsimplesmente test-forwardretornar nilsem fazer nada. Qual é a maneira correta de fazer isso?

Pradhan
fonte

Respostas:

13

Simplesmente:

(call-interactively 'test)
abo-abo
fonte