]> git.neil.brown.name Git - wiggle.git/commitdiff
Browser: remove some more infinite loops.
authorNeilBrown <neilb@suse.de>
Fri, 23 Aug 2013 05:29:55 +0000 (15:29 +1000)
committerNeilBrown <neilb@suse.de>
Fri, 23 Aug 2013 05:29:55 +0000 (15:29 +1000)
More places where we can get confused and then spin forever.

Signed-off-by: NeilBrown <neilb@suse.de>
vpatch.c

index 44043ef340af584a59c2ed4b30ff8e433b82e7ab..001bdf2bb9849d0dee7e68b3b5a07b87766e7b87 100644 (file)
--- a/vpatch.c
+++ b/vpatch.c
@@ -1533,8 +1533,11 @@ static int merge_window(struct plist *p, FILE *f, int reverse, int replace,
                               * in main pane. */
                if (check_line(vispos, fm, fb, fa, ci.merger, mode)
                    & CHANGES) {
-                       if (vispos.state == 0)
+                       if (vispos.state == 0) {
                                vispos.state = 1;
+                               vispos.lo = vispos.p;
+                               vispos.hi = vispos.p;
+                       }
                } else {
                        vispos.state = 0;
                }
@@ -1571,7 +1574,7 @@ static int merge_window(struct plist *p, FILE *f, int reverse, int replace,
                                           tpos, NULL);
 
                        }
-                       if (i) {
+                       if (i > 0) {
                                row -= (i+1);
                                refresh = 1;
                                goto retry;