--- a/test.c +++ b/test.c @@ -1202,7 +1202,7 @@ void block_move(int iter, int me) } else { pe = end; } - if (pe >= end) { + if ((pe >= end && end != 0) || (pe < p && end == 0)) { pe = end; done++; } @@ -1280,7 +1280,7 @@ void block_move(int iter, int me) } else { pe = end; } - if (pe >= end) { + if ((pe >= end && end != 0) || (pe < p && end == 0)) { pe = end; done++; } @@ -1359,7 +1359,7 @@ void block_move(int iter, int me) } else { pe = end; } - if (pe >= end) { + if ((pe >= end && end != 0) || (pe < p && end == 0)) { pe = end; done++; }