1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-24 04:15:36 +02:00

`%plist-member' fix

* module/language/elisp/boot.el (%plist-member): Use recursion to avoid
  using `catch' and `throw'.
This commit is contained in:
BT Templeton 2011-08-11 23:47:36 -04:00
parent 5950f674bf
commit 76c50ec52e

View file

@ -400,11 +400,13 @@
;;; Property lists
(defun %plist-member (plist property test)
(catch 'loop
(while plist
(cond
((null plist) nil)
((consp plist)
(if (funcall test (car plist) property)
(throw 'loop (cdr plist))
(setq plist (cddr plist))))))
(cdr plist)
(%plist-member (cdr (cdr plist)) property test)))
(t (signal 'wrong-type-argument `(listp ,plist)))))
(defun %plist-get (plist property test)
(car (%plist-member plist property test)))