Mercurial > emacs
changeset 90408:cc49fe5026c6
(assoc_no_quit): New function.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Tue, 06 Jun 2006 03:51:12 +0000 |
parents | a5e4ef15f5c1 |
children | 0347a454915c |
files | src/fns.c |
diffstat | 1 files changed, 16 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/fns.c Tue Jun 06 03:50:58 2006 +0000 +++ b/src/fns.c Tue Jun 06 03:51:12 2006 +0000 @@ -1524,6 +1524,22 @@ return result; } +/* Like Fassoc but never report an error and do not allow quits. + Use only on lists known never to be circular. */ + +Lisp_Object +assoc_no_quit (key, list) + Lisp_Object key, list; +{ + while (CONSP (list) + && (!CONSP (XCAR (list)) + || (!EQ (XCAR (XCAR (list)), key) + && NILP (Fequal (XCAR (XCAR (list)), key))))) + list = XCDR (list); + + return CONSP (list) ? XCAR (list) : Qnil; +} + DEFUN ("rassq", Frassq, Srassq, 2, 2, 0, doc: /* Return non-nil if KEY is `eq' to the cdr of an element of LIST. The value is actually the first element of LIST whose cdr is KEY. */)