(intersection): Keep the elements of the returned list

in the same order as in the first list.
This commit is contained in:
Andreas Schwab 2002-05-11 16:00:10 +00:00
parent b670783a4b
commit eef762fc0f
2 changed files with 12 additions and 4 deletions

View file

@ -6324,14 +6324,17 @@ static Lisp_Object
intersection (l1, l2)
Lisp_Object l1, l2;
{
Lisp_Object val;
Lisp_Object val = Fcons (Qnil, Qnil), tail;
for (val = Qnil; CONSP (l1); l1 = XCDR (l1))
for (tail = val; CONSP (l1); l1 = XCDR (l1))
{
if (!NILP (Fmemq (XCAR (l1), l2)))
val = Fcons (XCAR (l1), val);
{
XSETCDR (tail, Fcons (XCAR (l1), Qnil));
tail = XCDR (tail);
}
}
return val;
return XCDR (val);
}