From: Neil Brown Date: Sat, 3 Jun 2006 09:31:21 +0000 (+0000) Subject: Page up and down X-Git-Tag: v0.7~30 X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=6e10a94d0c9d75d455e9812250927d3c185d9028;p=wiggle.git Page up and down Control-V and ESC-v Signed-off-by: Neil Brown --- diff --git a/TODO b/TODO index f21ecf2..083e5ac 100644 --- a/TODO +++ b/TODO @@ -183,7 +183,7 @@ DONE - blank after end and before begining next/prev diff next/prev conflict incr-search - page up/down + DONE page up/down - handle single .rej file - allow updates to be saved - allow editing??? diff --git a/vpatch.c b/vpatch.c index ad1f6eb..ae212b3 100644 --- a/vpatch.c +++ b/vpatch.c @@ -1313,7 +1313,8 @@ void merge_window(struct plist *p, FILE *f, int reverse) int row,start = 0; struct mpos pos; - struct mpos tpos, tpos2; + struct mpos tpos, toppos, botpos; + int toprow,botrow; int mode2; int meta = 0, tmeta; int num= -1, tnum; @@ -1384,7 +1385,7 @@ void merge_window(struct plist *p, FILE *f, int reverse) row = (rows-1)/2+1; if (row >= rows) row = rows-1; - tpos = pos; tpos2.p = pos.hi; + tpos = pos; for (i=row-1; i>=1 && tpos.p.m >= 0; ) { prev_mline(&tpos, fm,fb,fa,ci.merger, mode); mode2 = check_line(tpos, fm,fb,fa, ci.merger, mode); @@ -1400,9 +1401,10 @@ void merge_window(struct plist *p, FILE *f, int reverse) else if ((tpos.side == 0 || tpos.side == -1) && (mode2 & (ORIG|BEFORE))) draw_mline(i--,tpos,fm,fb,fa,ci.merger,start,cols, mode2&(ORIG|BEFORE|CHANGED|CHANGES)); } + toppos = tpos; toprow = i; while (i >= 1) blank(i--, 0, cols, a_void); - tpos = pos; tpos2.p = pos.lo; + tpos = pos; for (i=row; i= 1) row -= (toprow+1); break; + case 'V'-64: /* page down */ + pos = botpos; + if (botrow < rows) + row = botrow; + else + row = 2; + refresh = 1; + break; + case META('v'): /* page up */ + pos = toppos; + if (toprow >= 1) + row = toprow+1; + else + row = rows-2; + refresh = 1; + break; case 'j': case 'n':