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 | 631317ddcb10e579d46504d2ed80bccee401810b (patch) | |
tree | a7b8ff031e8700eeaa299389a5282a847c05ca22 | |
parent | f5c5844cc21052a73a1a2674a137a28c4d747208 (diff) | |
download | emacs-631317ddcb10e579d46504d2ed80bccee401810b.tar.gz |
(getf): Don't call get*.
-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)) |