Fix #3098: wrong-number-of-args on some interactive closures

It appears key-translation-map keybinds are passed an argument, but
`lambda!` and `lambda!!` produce 0-arity closures.

Closes #3099
This commit is contained in:
Henrik Lissner 2020-05-11 19:43:52 -04:00
parent 54ac031552
commit 24aabfc8e0
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -157,7 +157,7 @@ at the values with which this function was called."
A factory for quickly producing interaction commands, particularly for keybinds
or aliases."
(declare (doc-string 1) (pure t) (side-effect-free t))
`(lambda () (interactive) ,@body))
`(lambda (&rest _) (interactive) ,@body))
(defalias 'lambda! 'λ!)
(defun λ!! (command &optional arg)
@ -165,7 +165,7 @@ or aliases."
A factory for quickly producing interactive, prefixed commands for keybinds or
aliases."
(declare (doc-string 1) (pure t) (side-effect-free t))
(lambda () (interactive)
(lambda (&rest _) (interactive)
(let ((current-prefix-arg arg))
(call-interactively command))))
(defalias 'lambda!! 'λ!!)