Mercurial > hg > xemacs-beta
comparison lisp/cl-extra.el @ 5470:0af042a0c116
Merge with trunk.
author | Mats Lidell <matsl@xemacs.org> |
---|---|
date | Mon, 07 Feb 2011 21:22:17 +0100 |
parents | a9094f28f9a9 38e24b8be4ea |
children | 248176c74e6b |
comparison
equal
deleted
inserted
replaced
5469:2a8a04f73c15 | 5470:0af042a0c116 |
---|---|
654 (list 'list '(quote quote) x))) | 654 (list 'list '(quote quote) x))) |
655 cl-closure-vars) | 655 cl-closure-vars) |
656 '((quote --cl-rest--))))))) | 656 '((quote --cl-rest--))))))) |
657 (list (car form) (list* 'lambda (cadadr form) body)))) | 657 (list (car form) (list* 'lambda (cadadr form) body)))) |
658 (let ((found (assq (cadr form) env))) | 658 (let ((found (assq (cadr form) env))) |
659 ;; XEmacs: cadr/caddr operate on nil without errors | 659 ;; XEmacs: cadr/caddr operate on nil without errors. But the |
660 (if (eq (cadr (caddr found)) 'cl-labels-args) | 660 ;; macro definition may be compiled, in which case there's |
661 ;; nothing for us to do. | |
662 (if (and (listp (cdr found)) | |
663 (eq (cadr (caddr found)) 'cl-labels-args)) | |
661 (cl-macroexpand-all (cadr (caddr (cadddr found))) env) | 664 (cl-macroexpand-all (cadr (caddr (cadddr found))) env) |
662 form)))) | 665 form)))) |
663 ((memq (car form) '(defun defmacro)) | 666 ((memq (car form) '(defun defmacro)) |
664 (list* (car form) (nth 1 form) (cl-macroexpand-body (cddr form) env))) | 667 (list* (car form) (nth 1 form) (cl-macroexpand-body (cddr form) env))) |
665 ((and (eq (car form) 'progn) (not (cddr form))) | 668 ((and (eq (car form) 'progn) (not (cddr form))) |