version 1.32, 2012/05/30 06:13:32 |
version 1.33, 2012/05/31 10:55:53 |
|
|
int |
int |
backpage(int f, int n) |
backpage(int f, int n) |
{ |
{ |
struct line *lp; |
struct line *lp, *lp2; |
|
|
if (!(f & FFARG)) { |
if (!(f & FFARG)) { |
n = curwp->w_ntrows - 2; /* Default scroll. */ |
n = curwp->w_ntrows - 2; /* Default scroll. */ |
|
|
n = 1; /* window is tiny. */ |
n = 1; /* window is tiny. */ |
} else if (n < 0) |
} else if (n < 0) |
return (forwpage(f | FFRAND, -n)); |
return (forwpage(f | FFRAND, -n)); |
lp = curwp->w_linep; |
|
|
lp = lp2 = curwp->w_linep; |
|
|
while (n-- && lback(lp) != curbp->b_headp) { |
while (n-- && lback(lp) != curbp->b_headp) { |
lp = lback(lp); |
lp = lback(lp); |
} |
} |
curwp->w_linep = lp; |
curwp->w_linep = lp; |
curwp->w_rflag |= WFFULL; |
curwp->w_rflag |= WFFULL; |
|
|
/* if in current window, don't move dot */ |
/* if in current window, don't move dot */ |
for (n = curwp->w_ntrows; n-- && lp != curbp->b_headp; lp = lforw(lp)) |
for (n = curwp->w_ntrows; n-- && lp != curbp->b_headp; lp = lforw(lp)) |
if (lp == curwp->w_dotp) |
if (lp == curwp->w_dotp) |
return (TRUE); |
return (TRUE); |
|
|
|
lp2 = lforw(lp2); |
|
|
/* Move the dot the slow way, for line nos */ |
/* Move the dot the slow way, for line nos */ |
while (curwp->w_dotp != curwp->w_linep) { |
while (curwp->w_dotp != lp2) { |
curwp->w_dotp = lback(curwp->w_dotp); |
curwp->w_dotp = lback(curwp->w_dotp); |
curwp->w_dotline--; |
curwp->w_dotline--; |
} |
} |