6324 |
intersection (l1, l2) |
intersection (l1, l2) |
6325 |
Lisp_Object l1, l2; |
Lisp_Object l1, l2; |
6326 |
{ |
{ |
6327 |
Lisp_Object val; |
Lisp_Object val = Fcons (Qnil, Qnil), tail; |
6328 |
|
|
6329 |
for (val = Qnil; CONSP (l1); l1 = XCDR (l1)) |
for (tail = val; CONSP (l1); l1 = XCDR (l1)) |
6330 |
{ |
{ |
6331 |
if (!NILP (Fmemq (XCAR (l1), l2))) |
if (!NILP (Fmemq (XCAR (l1), l2))) |
6332 |
val = Fcons (XCAR (l1), val); |
{ |
6333 |
|
XSETCDR (tail, Fcons (XCAR (l1), Qnil)); |
6334 |
|
tail = XCDR (tail); |
6335 |
|
} |
6336 |
} |
} |
6337 |
return val; |
return XCDR (val); |
6338 |
} |
} |
6339 |
|
|
6340 |
|
|