(shuffle): Fix the logic of setting up the cycle.
authorKenichi Handa <handa@m17n.org>
Fri, 17 Jul 2009 01:28:58 +0000 (01:28 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 17 Jul 2009 01:28:58 +0000 (01:28 +0000)
src/ChangeLog
src/casetab.c

index ba05615..11189fc 100644 (file)
@@ -1,3 +1,8 @@
+<<<<<<< ChangeLog
+2009-07-17  Kenichi Handa  <handa@m17n.org>
+
+       * casetab.c (shuffle): Fix the logic of setting up the cycle.
+
 2009-07-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
        * nsfns.m (Fns_set_alpha): Remove function.
index 423251d..95fca03 100644 (file)
@@ -229,7 +229,6 @@ shuffle (table, c, elt)
 {
   if (NATNUMP (elt))
     {
-      Lisp_Object tem = Faref (table, elt);
       int from, to;
 
       if (CONSP (c))
@@ -241,11 +240,11 @@ shuffle (table, c, elt)
        from = to = XINT (c);
 
       for (; from <= to; from++)
-       if (from != XINT (elt))
-         {
-           Faset (table, elt, make_number (from));
-           Faset (table, make_number (from), tem);
-         }
+       {
+         Lisp_Object tem = Faref (table, elt);
+         Faset (table, elt, make_number (from));
+         Faset (table, make_number (from), tem);
+       }
     }
 }
 \f