1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-24 12:20:20 +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 ;;; Property lists
(defun %plist-member (plist property test) (defun %plist-member (plist property test)
(catch 'loop (cond
(while plist ((null plist) nil)
((consp plist)
(if (funcall test (car plist) property) (if (funcall test (car plist) property)
(throw 'loop (cdr plist)) (cdr plist)
(setq plist (cddr plist)))))) (%plist-member (cdr (cdr plist)) property test)))
(t (signal 'wrong-type-argument `(listp ,plist)))))
(defun %plist-get (plist property test) (defun %plist-get (plist property test)
(car (%plist-member plist property test))) (car (%plist-member plist property test)))