mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Merge from emacs-24; up to 2012-11-20T20:06:17Z!monnier@iro.umontreal.ca
This commit is contained in:
commit
5c9cf0a3f9
17 changed files with 161 additions and 57 deletions
|
|
@ -216,12 +216,17 @@ The name is made by appending a number to PREFIX, default \"G\"."
|
|||
(defvar cl--bind-inits) (defvar cl--bind-lets) (defvar cl--bind-forms)
|
||||
|
||||
(defun cl--transform-lambda (form bind-block)
|
||||
"Transform a function form FORM of name BIND-BLOCK.
|
||||
BIND-BLOCK is the name of the symbol to which the function will be bound,
|
||||
and which will be used for the name of the `cl-block' surrounding the
|
||||
function's body.
|
||||
FORM is of the form (ARGS . BODY)."
|
||||
(let* ((args (car form)) (body (cdr form)) (orig-args args)
|
||||
(cl--bind-block bind-block) (cl--bind-defs nil) (cl--bind-enquote nil)
|
||||
(cl--bind-inits nil) (cl--bind-lets nil) (cl--bind-forms nil)
|
||||
(header nil) (simple-args nil))
|
||||
(while (or (stringp (car body))
|
||||
(memq (car-safe (car body)) '(interactive cl-declare)))
|
||||
(memq (car-safe (car body)) '(interactive declare cl-declare)))
|
||||
(push (pop body) header))
|
||||
(setq args (if (listp args) (cl-copy-list args) (list '&rest args)))
|
||||
(let ((p (last args))) (if (cdr p) (setcdr p (list '&rest (cdr p)))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue