From: NeilBrown Date: Tue, 20 Aug 2013 05:12:42 +0000 (+1000) Subject: Browse: make sure 'X' doesn't loop forever searching backwards. X-Git-Tag: v1.0~31 X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=76292234cf98aa3244161fd7588d816031f6f28e;p=wiggle.git Browse: make sure 'X' doesn't loop forever searching backwards. it did once.. Signed-off-by: NeilBrown --- diff --git a/vpatch.c b/vpatch.c index 1f510e6..f93b522 100644 --- a/vpatch.c +++ b/vpatch.c @@ -2261,6 +2261,8 @@ static int merge_window(struct plist *p, FILE *f, int reverse, int replace, && ci.merger[tpos.p.m].type != Unchanged) do_mark = 1; e = prev_melmnt(&tpos.p, fm, fb, fa, ci.merger); + if (tpos.p.m < 0) + break; } while (!ends_line(e) || visible(mode & (RESULT|AFTER), ci.merger, &tpos) < 0); tpos = pos; @@ -2274,6 +2276,8 @@ static int merge_window(struct plist *p, FILE *f, int reverse, int replace, ci.merger[tpos.p.m].oldtype; } e = prev_melmnt(&tpos.p, fm, fb, fa, ci.merger); + if (tpos.p.m < 0) + break; } while (!ends_line(e) || visible(mode & (RESULT|AFTER), ci.merger, &tpos) < 0); p->conflicts = isolate_conflicts(