mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Rationalize use of c[ad]+r, expunging cl-c[ad]\{3,4\}r.
Also expunge eudc-c[ad]+r. * subr.el (internal--compiler-macro-cXXr): "New" function, copied from cl--compiler-macro-cXXr. (caar, cadr, cdar, cddr): Change from defsubsts to defuns with the above compiler-macro. * net/eudc.el (eudc-cadr, eudc-cdar, eudc-caar, eudc-cdaar): Remove. * emacs-lisp/cl.el (Top level dolist doing defaliases): Remove caaar, etc., from list of new alias functions. * emacs-lisp/cl-lib.el (cl-caaar, etc): Rename to caaar, etc. (gen-cXXr--rawname, gen-cXXr-all-cl-aliases): New function/macro which generate obsolete cl- aliases for caaar, etc. Invoke them. * desktop.el: * edmacro.el: * emacs-lisp/cl-macs.el: * frameset.el: * ibuffer.el: * mail/footnote.el: * net/dbus.el: * net/eudc-export.el: * net/eudc.el: * net/eudcb-ph.el: * net/rcirc.el: * net/secrets.el: * play/5x5.el: * play/decipher.el: * play/hanoi.el: * progmodes/hideif.el: * ses.el: Replace cl-caaar, eudc-cadr, etc. with caaar and cadr, etc.
This commit is contained in:
parent
5842e489ee
commit
2056db3fad
21 changed files with 202 additions and 143 deletions
29
lisp/subr.el
29
lisp/subr.el
|
|
@ -339,20 +339,41 @@ configuration."
|
|||
|
||||
;;;; List functions.
|
||||
|
||||
(defsubst caar (x)
|
||||
;; Note: `internal--compiler-macro-cXXr' was copied from
|
||||
;; `cl--compiler-macro-cXXr' in cl-macs.el. If you amend either one,
|
||||
;; you may want to amend the other, too.
|
||||
(defun internal--compiler-macro-cXXr (form x)
|
||||
(let* ((head (car form))
|
||||
(n (symbol-name (car form)))
|
||||
(i (- (length n) 2)))
|
||||
(if (not (string-match "c[ad]+r\\'" n))
|
||||
(if (and (fboundp head) (symbolp (symbol-function head)))
|
||||
(internal--compiler-macro-cXXr (cons (symbol-function head) (cdr form))
|
||||
x)
|
||||
(error "Compiler macro for cXXr applied to non-cXXr form"))
|
||||
(while (> i (match-beginning 0))
|
||||
(setq x (list (if (eq (aref n i) ?a) 'car 'cdr) x))
|
||||
(setq i (1- i)))
|
||||
x)))
|
||||
|
||||
(defun caar (x)
|
||||
"Return the car of the car of X."
|
||||
(declare (compiler-macro internal--compiler-macro-cXXr))
|
||||
(car (car x)))
|
||||
|
||||
(defsubst cadr (x)
|
||||
(defun cadr (x)
|
||||
"Return the car of the cdr of X."
|
||||
(declare (compiler-macro internal--compiler-macro-cXXr))
|
||||
(car (cdr x)))
|
||||
|
||||
(defsubst cdar (x)
|
||||
(defun cdar (x)
|
||||
"Return the cdr of the car of X."
|
||||
(declare (compiler-macro internal--compiler-macro-cXXr))
|
||||
(cdr (car x)))
|
||||
|
||||
(defsubst cddr (x)
|
||||
(defun cddr (x)
|
||||
"Return the cdr of the cdr of X."
|
||||
(declare (compiler-macro internal--compiler-macro-cXXr))
|
||||
(cdr (cdr x)))
|
||||
|
||||
(defun last (list &optional n)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue