]> git.eshelyaron.com Git - emacs.git/commitdiff
(intersection): Keep the elements of the returned list
authorAndreas Schwab <schwab@suse.de>
Sat, 11 May 2002 16:00:10 +0000 (16:00 +0000)
committerAndreas Schwab <schwab@suse.de>
Sat, 11 May 2002 16:00:10 +0000 (16:00 +0000)
in the same order as in the first list.

src/ChangeLog
src/coding.c

index c92e4b5cff4dffb70b662c1a39588c6c42cf6f75..570c82c962845977e6bb906f65c8c38c7718bd92 100644 (file)
@@ -1,3 +1,8 @@
+2002-05-11  Andreas Schwab  <schwab@suse.de>
+
+       * coding.c (intersection): Keep the elements of the returned list
+       in the same order as in the first list.
+
 2002-05-11  Kim F. Storm  <storm@cua.dk>
 
        * keymap.c (current_minor_maps): Fixed resizing of cmm_maps;
index 8c54f86e531618040899cc683a321b6b1d2aea09..baf6acf08af286ba1af8ff15c81c7757f9a041db 100644 (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);
 }