(intersection): Keep the elements of the returned list
in the same order as in the first list.
This commit is contained in:
parent
b670783a4b
commit
eef762fc0f
2 changed files with 12 additions and 4 deletions
11
src/coding.c
11
src/coding.c
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue