diff options
Diffstat (limited to 'emacs/guile-emacs.scm')
-rw-r--r-- | emacs/guile-emacs.scm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/emacs/guile-emacs.scm b/emacs/guile-emacs.scm index 7bc0ee785..08e56500e 100644 --- a/emacs/guile-emacs.scm +++ b/emacs/guile-emacs.scm @@ -84,9 +84,13 @@ (define (procedure-call name args) (let ((restp (memq '&rest args)) - (args (delq '&rest (delq '&optional args)))) + (args (map (lambda (a) `(let ((_t ,a)) + (if (guile-tokenp _t) + (cadr _t) + (list 'quote _t)))) + (delq '&rest (delq '&optional args))))) (if restp - `(list* ',name ,@args) + `(list 'apply ',name ,@args) `(list ',name ,@args)))) (let ((name (procedure-name proc)) |