diff options
author | Karl Heuer <kwzh@gnu.org> | 1999-06-12 03:36:46 +0000 |
---|---|---|
committer | Karl Heuer <kwzh@gnu.org> | 1999-06-12 03:36:46 +0000 |
commit | 318f417cd31e7d2b0dcedcb4d63297bfb582b71f (patch) | |
tree | 5e478559059751c5212ad18b6e9c8d3b339ffa88 /lisp/emacs-lisp/cl-extra.el | |
parent | 634376231a95ea020b9ed602b3a3e2a7812b0655 (diff) | |
download | emacs-318f417cd31e7d2b0dcedcb4d63297bfb582b71f.tar.gz |
(getf): Don't call get*.
Diffstat (limited to 'lisp/emacs-lisp/cl-extra.el')
-rw-r--r-- | lisp/emacs-lisp/cl-extra.el | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el index 2402d799108..46801c6cc36 100644 --- a/lisp/emacs-lisp/cl-extra.el +++ b/lisp/emacs-lisp/cl-extra.el @@ -624,7 +624,13 @@ argument VECP, this copies vectors as well as conses." PROPLIST is a list of the sort returned by `symbol-plist'." (setplist '--cl-getf-symbol-- plist) (or (get '--cl-getf-symbol-- tag) - (and def (get* '--cl-getf-symbol-- tag def)))) + ;; Originally we called get* here, + ;; but that fails, because get* has a compiler macro + ;; definition that uses getf! + (when def + (while (and plist (not (eq (car plist) tag))) + (setq plist (cdr (cdr plist)))) + (if plist (car (cdr plist)) def)))) (defun cl-set-getf (plist tag val) (let ((p plist)) |