summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1999-06-12 03:36:46 +0000
committerKarl Heuer <kwzh@gnu.org>1999-06-12 03:36:46 +0000
commit631317ddcb10e579d46504d2ed80bccee401810b (patch)
treea7b8ff031e8700eeaa299389a5282a847c05ca22 /lisp
parentf5c5844cc21052a73a1a2674a137a28c4d747208 (diff)
downloademacs-631317ddcb10e579d46504d2ed80bccee401810b.tar.gz
(getf): Don't call get*.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/emacs-lisp/cl-extra.el8
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))