Function: oclosure--copy
oclosure--copy is a byte-compiled function defined in oclosure.el.gz.
Signature
(oclosure--copy OCLOSURE MUTLIST &rest ARGS)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/oclosure.el.gz
(defun oclosure--copy (oclosure mutlist &rest args)
(cl-assert (closurep oclosure))
(if (byte-code-function-p oclosure)
(apply #'make-closure oclosure
(if (null mutlist)
args
(mapcar (lambda (arg) (if (pop mutlist) (list arg) arg)) args)))
(cl-assert (consp (aref oclosure 1)))
(cl-assert (null (aref oclosure 3)))
(cl-assert (symbolp (aref oclosure 4)))
(let ((env (aref oclosure 2)))
(make-interpreted-closure
(aref oclosure 0)
(aref oclosure 1)
(named-let loop ((env env) (args args))
(if (null args) env
(cons (cons (caar env) (car args))
(loop (cdr env) (cdr args)))))
(aref oclosure 4)
(if (> (length oclosure) 5)
`(interactive ,(aref oclosure 5)))))))