]> git.eshelyaron.com Git - emacs.git/commitdiff
(assoc-default): New function.
authorRichard M. Stallman <rms@gnu.org>
Fri, 31 Jul 1998 10:53:30 +0000 (10:53 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 31 Jul 1998 10:53:30 +0000 (10:53 +0000)
lisp/subr.el

index 5f0947d75d5bd12363f196407170226504b6abef..b80df9423f10101a346d86be3d3ec23d2b1e7b6e 100644 (file)
@@ -93,6 +93,18 @@ If N is bigger than the length of X, return X."
     (while (cdr x)
       (setq x (cdr x)))
     x))
+
+(defun assoc-default (el alist test default)
+  "Find object EL in a pseudo-alist ALIST.
+ALIST is a list of conses or objects.  Each element (or the element's
+car, if it. is a cons) is compared with EL by calling TEST.
+If TEST returns non-nil, the element matches;
+then `assoc-default' returns the cdr of the element (if it is a cons),
+or DEFAULT if the element is not a cons.
+If no element matches, the value is nil."
+  (dolist (rr alist)
+    (when (funcall test el (if (consp rr) (car rr) rr))
+      (return (if (consp rr) (cdr rr) default)))))
 \f
 ;;;; Keymap support.