From 23ce776e12341b8de194aa4eabc67bd7d503ea54 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Thu, 15 Nov 2012 10:23:59 +1100 Subject: [PATCH] vpatch: add 'C' command to go to next conflicted hunk. This makes it easy to find conflicts. Signed-off-by: NeilBrown --- vpatch.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/vpatch.c b/vpatch.c index 975b4a3..ee31ba1 100644 --- a/vpatch.c +++ b/vpatch.c @@ -1188,6 +1188,7 @@ static char *merge_window_help[] = { " ESC-v BACKSPC page up", " N go to next patch chunk", " P go to previous patch chunk", + " C go to next conflicted chunk", " O move cursor to alternate pane", " ^ control-A go to start of line", " $ control-E go to end of line", @@ -1814,6 +1815,25 @@ static int merge_window(struct plist *p, FILE *f, int reverse) && ci.merger[tpos.p.m].type != End); break; + case 'C': + /* Next conflict */ + tpos = pos; row--; + do { + pos = tpos; row++; + next_mline(&tpos, fm, fb, fa, ci.merger, mmode); + } while (!(check_line(pos, fm, fb, fa, ci.merger, mmode) + & CONFLICTED) == 0 + && ci.merger[tpos.p.m].type != End); + tpos = pos; row--; + do { + pos = tpos; row++; + next_mline(&tpos, fm, fb, fa, ci.merger, mmode); + } while ((check_line(pos, fm, fb, fa, ci.merger, mmode) + & CONFLICTED) == 0 + && ci.merger[tpos.p.m].type != End); + + break; + case 'P': /* Previous diff */ tpos = pos; row++; -- 2.39.5