mpreduce: Don't stop bit scanner too early.
[u/mdw/catacomb] / mpreduce.c
index 0f20ed8..02ce2cf 100644 (file)
@@ -101,10 +101,11 @@ int mpreduce_create(mpreduce *r, mp *p)
       case X0 | 0: st =  Z; printf("+ %lu\n", i - 1); break;
     }
   }
-  if (st >= X) printf("+ %lu\n", i);
+  if (st >= X) printf("+ %lu\n", i - 1);
+  st = Z;
 #endif
 
-  for (i = 0, mp_scan(&sc, p); i < d  - 1 && mp_step(&sc); i++) {
+  for (i = 0, mp_scan(&sc, p); i < d && mp_step(&sc); i++) {
     switch (st | mp_bit(&sc)) {
       case  Z | 1: st = Z1; break;
       case Z1 | 0: st =  Z; op = MPRI_SUB; goto instr;