From 83ccb6192031a3fb4bec84611c53ced83a1a27ad Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Thu, 15 Nov 2012 10:07:19 +1100 Subject: [PATCH] vpatch: update display correctly when editing the merge. If an edit changes the merge so that we don't need to show two separate streams any more, then the display must be updated to not show the stream. And the reverse. Signed-off-by: NeilBrown --- vpatch.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/vpatch.c b/vpatch.c index eeb4666..97f8f95 100644 --- a/vpatch.c +++ b/vpatch.c @@ -1452,6 +1452,14 @@ static int merge_window(struct plist *p, FILE *f, int reverse) vispos = pos; /* visible position - if cursor is in * alternate pane, pos might not be visible * in main pane. */ + if (check_line(vispos, fm, fb, fa, ci.merger, mode) + & CHANGES) { + if (vispos.state == 0) + vispos.state = 1; + } else { + vispos.state = 0; + } + if (visible(mode, ci.merger, &vispos) < 0) prev_mline(&vispos, fm, fb, fa, ci.merger, mode); @@ -1507,6 +1515,13 @@ static int merge_window(struct plist *p, FILE *f, int reverse) struct mpos spos = pos; int smode = BEFORE|AFTER; int srow = (rows + splitrow)/2; + if (check_line(spos, fm, fb, fa, ci.merger, smode) + & CHANGES) { + if (spos.state == 0) + spos.state = 1; + } else { + spos.state = 0; + } if (visible(smode, ci.merger, &spos) < 0) prev_mline(&spos, fm, fb, fa, ci.merger, smode); /* Now hi/lo might be wrong, so lets fix it. */ -- 2.39.5