# HG changeset patch # User Richard M. Stallman # Date 901882410 0 # Node ID 349fa4ee1f27ec355c4a0f4a867c934c239d8d22 # Parent 16dcade0dd4acfdc83f2353023af672cbd7b5f8b (assoc-default): New function. diff -r 16dcade0dd4a -r 349fa4ee1f27 lisp/subr.el --- a/lisp/subr.el Fri Jul 31 10:24:41 1998 +0000 +++ b/lisp/subr.el Fri Jul 31 10:53:30 1998 +0000 @@ -93,6 +93,18 @@ (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))))) ;;;; Keymap support.