version 1.17, 2005/03/10 16:58:57 |
version 1.18, 2005/04/03 02:09:28 |
|
|
LINE *lp; |
LINE *lp; |
|
|
if (n < 0) |
if (n < 0) |
return forwchar(f, -n); |
return (forwchar(f, -n)); |
while (n--) { |
while (n--) { |
if (curwp->w_doto == 0) { |
if (curwp->w_doto == 0) { |
if ((lp = lback(curwp->w_dotp)) == curbp->b_linep) { |
if ((lp = lback(curwp->w_dotp)) == curbp->b_linep) { |
|
|
} else |
} else |
curwp->w_doto--; |
curwp->w_doto--; |
} |
} |
return TRUE; |
return (TRUE); |
} |
} |
|
|
/* |
/* |
|
|
int |
int |
forwchar(int f, int n) |
forwchar(int f, int n) |
{ |
{ |
|
|
if (n < 0) |
if (n < 0) |
return backchar(f, -n); |
return (backchar(f, -n)); |
while (n--) { |
while (n--) { |
if (curwp->w_doto == llength(curwp->w_dotp)) { |
if (curwp->w_doto == llength(curwp->w_dotp)) { |
curwp->w_dotp = lforw(curwp->w_dotp); |
curwp->w_dotp = lforw(curwp->w_dotp); |
|
|
curwp->w_dotp = lback(curwp->w_dotp); |
curwp->w_dotp = lback(curwp->w_dotp); |
if (!(f & FFRAND)) |
if (!(f & FFRAND)) |
ewprintf("End of buffer"); |
ewprintf("End of buffer"); |
return FALSE; |
return (FALSE); |
} |
} |
curwp->w_doto = 0; |
curwp->w_doto = 0; |
curwp->w_flag |= WFMOVE; |
curwp->w_flag |= WFMOVE; |
} else |
} else |
curwp->w_doto++; |
curwp->w_doto++; |
} |
} |
return TRUE; |
return (TRUE); |
} |
} |
|
|
/* |
/* |
|
|
int |
int |
gotobob(int f, int n) |
gotobob(int f, int n) |
{ |
{ |
|
|
(void) setmark(f, n); |
(void) setmark(f, n); |
curwp->w_dotp = lforw(curbp->b_linep); |
curwp->w_dotp = lforw(curbp->b_linep); |
curwp->w_doto = 0; |
curwp->w_doto = 0; |
curwp->w_flag |= WFHARD; |
curwp->w_flag |= WFHARD; |
return TRUE; |
return (TRUE); |
} |
} |
|
|
/* |
/* |
|
|
int |
int |
gotoeob(int f, int n) |
gotoeob(int f, int n) |
{ |
{ |
|
|
(void) setmark(f, n); |
(void) setmark(f, n); |
curwp->w_dotp = lback(curbp->b_linep); |
curwp->w_dotp = lback(curbp->b_linep); |
curwp->w_doto = llength(curwp->w_dotp); |
curwp->w_doto = llength(curwp->w_dotp); |
curwp->w_flag |= WFHARD; |
curwp->w_flag |= WFHARD; |
return TRUE; |
return (TRUE); |
} |
} |
|
|
/* |
/* |
|
|
LINE *dlp; |
LINE *dlp; |
|
|
if (n < 0) |
if (n < 0) |
return backline(f | FFRAND, -n); |
return (backline(f | FFRAND, -n)); |
if ((lastflag & CFCPCN) == 0) /* Fix goal. */ |
if ((lastflag & CFCPCN) == 0) /* Fix goal. */ |
setgoal(); |
setgoal(); |
thisflag |= CFCPCN; |
thisflag |= CFCPCN; |
if (n == 0) |
if (n == 0) |
return TRUE; |
return (TRUE); |
dlp = curwp->w_dotp; |
dlp = curwp->w_dotp; |
while (dlp != curbp->b_linep && n--) |
while (dlp != curbp->b_linep && n--) |
dlp = lforw(dlp); |
dlp = lforw(dlp); |
|
|
curwp->w_doto = 0; |
curwp->w_doto = 0; |
while (n-- >= 0) { |
while (n-- >= 0) { |
if ((dlp = lalloc(0)) == NULL) |
if ((dlp = lalloc(0)) == NULL) |
return FALSE; |
return (FALSE); |
dlp->l_fp = curbp->b_linep; |
dlp->l_fp = curbp->b_linep; |
dlp->l_bp = lback(dlp->l_fp); |
dlp->l_bp = lback(dlp->l_fp); |
dlp->l_bp->l_fp = dlp->l_fp->l_bp = dlp; |
dlp->l_bp->l_fp = dlp->l_fp->l_bp = dlp; |
|
|
curwp->w_dotp = dlp; |
curwp->w_dotp = dlp; |
curwp->w_doto = getgoal(dlp); |
curwp->w_doto = getgoal(dlp); |
} |
} |
return TRUE; |
return (TRUE); |
} |
} |
|
|
/* |
/* |
|
|
LINE *dlp; |
LINE *dlp; |
|
|
if (n < 0) |
if (n < 0) |
return forwline(f | FFRAND, -n); |
return (forwline(f | FFRAND, -n)); |
if ((lastflag & CFCPCN) == 0) /* Fix goal. */ |
if ((lastflag & CFCPCN) == 0) /* Fix goal. */ |
setgoal(); |
setgoal(); |
thisflag |= CFCPCN; |
thisflag |= CFCPCN; |
|
|
curwp->w_dotp = dlp; |
curwp->w_dotp = dlp; |
curwp->w_doto = getgoal(dlp); |
curwp->w_doto = getgoal(dlp); |
curwp->w_flag |= WFMOVE; |
curwp->w_flag |= WFMOVE; |
return TRUE; |
return (TRUE); |
} |
} |
|
|
/* |
/* |
|
|
else { |
else { |
char tmp[5]; |
char tmp[5]; |
|
|
snprintf(tmp, sizeof tmp, "\\%o", c); |
snprintf(tmp, sizeof(tmp), "\\%o", c); |
col += strlen(tmp); |
col += strlen(tmp); |
} |
} |
if (col > curgoal) |
if (col > curgoal) |
|
|
if (n <= 0) /* Forget the overlap */ |
if (n <= 0) /* Forget the overlap */ |
n = 1; /* if tiny window. */ |
n = 1; /* if tiny window. */ |
} else if (n < 0) |
} else if (n < 0) |
return backpage(f | FFRAND, -n); |
return (backpage(f | FFRAND, -n)); |
#ifdef CVMVAS |
#ifdef CVMVAS |
else /* Convert from pages */ |
else /* Convert from pages */ |
n *= curwp->w_ntrows; /* to lines. */ |
n *= curwp->w_ntrows; /* to lines. */ |
|
|
/* 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_linep; lp = lforw(lp)) |
for (n = curwp->w_ntrows; n-- && lp != curbp->b_linep; lp = lforw(lp)) |
if (lp == curwp->w_dotp) |
if (lp == curwp->w_dotp) |
return TRUE; |
return (TRUE); |
curwp->w_dotp = curwp->w_linep; |
curwp->w_dotp = curwp->w_linep; |
curwp->w_doto = 0; |
curwp->w_doto = 0; |
return TRUE; |
return (TRUE); |
} |
} |
|
|
/* |
/* |
|
|
if (n <= 0) /* Don't blow up if the */ |
if (n <= 0) /* Don't blow up if the */ |
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)); |
#ifdef CVMVAS |
#ifdef CVMVAS |
else /* Convert from pages */ |
else /* Convert from pages */ |
n *= curwp->w_ntrows; /* to lines. */ |
n *= curwp->w_ntrows; /* to lines. */ |
|
|
/* 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_linep; lp = lforw(lp)) |
for (n = curwp->w_ntrows; n-- && lp != curbp->b_linep; lp = lforw(lp)) |
if (lp == curwp->w_dotp) |
if (lp == curwp->w_dotp) |
return TRUE; |
return (TRUE); |
curwp->w_dotp = curwp->w_linep; |
curwp->w_dotp = curwp->w_linep; |
curwp->w_doto = 0; |
curwp->w_doto = 0; |
return TRUE; |
return (TRUE); |
} |
} |
|
|
/* |
/* |
|
|
f = FFUNIV; |
f = FFUNIV; |
} |
} |
forwpage(f | FFRAND, n); |
forwpage(f | FFRAND, n); |
return TRUE; |
return (TRUE); |
} |
} |
|
|
int |
int |
|
|
f = FFUNIV; |
f = FFUNIV; |
} |
} |
backpage(f | FFRAND, n); |
backpage(f | FFRAND, n); |
return TRUE; |
return (TRUE); |
} |
} |
|
|
/* |
/* |
|
|
|
|
if (wheadp->w_wndp == NULL) { |
if (wheadp->w_wndp == NULL) { |
ewprintf("No other window"); |
ewprintf("No other window"); |
return FALSE; |
return (FALSE); |
} |
} |
wp = curwp; |
wp = curwp; |
(void) nextwind(f, n); |
(void) nextwind(f, n); |
(void) forwpage(f, n); |
(void) forwpage(f, n); |
curwp = wp; |
curwp = wp; |
curbp = wp->w_bufp; |
curbp = wp->w_bufp; |
return TRUE; |
return (TRUE); |
} |
} |
|
|
/* |
/* |
|
|
int |
int |
setmark(int f, int n) |
setmark(int f, int n) |
{ |
{ |
|
|
isetmark(); |
isetmark(); |
ewprintf("Mark set"); |
ewprintf("Mark set"); |
return TRUE; |
return (TRUE); |
} |
} |
|
|
/* |
/* |
|
|
|
|
if (curwp->w_markp == NULL) { |
if (curwp->w_markp == NULL) { |
ewprintf("No mark in this window"); |
ewprintf("No mark in this window"); |
return FALSE; |
return (FALSE); |
} |
} |
odotp = curwp->w_dotp; |
odotp = curwp->w_dotp; |
odoto = curwp->w_doto; |
odoto = curwp->w_doto; |
|
|
curwp->w_markp = odotp; |
curwp->w_markp = odotp; |
curwp->w_marko = odoto; |
curwp->w_marko = odoto; |
curwp->w_flag |= WFMOVE; |
curwp->w_flag |= WFMOVE; |
return TRUE; |
return (TRUE); |
} |
} |
|
|
/* |
/* |
|
|
|
|
if (!(f & FFARG)) { |
if (!(f & FFARG)) { |
if ((bufp = ereply("Goto line: ", buf, sizeof(buf))) == NULL) |
if ((bufp = ereply("Goto line: ", buf, sizeof(buf))) == NULL) |
return ABORT; |
return (ABORT); |
else if (bufp[0] == '\0') |
else if (bufp[0] == '\0') |
return FALSE; |
return (FALSE); |
|
|
nl = strtol(bufp, &tmp, 10); |
nl = strtol(bufp, &tmp, 10); |
if (bufp[0] == '\0' || *tmp != '\0') { |
if (bufp[0] == '\0' || *tmp != '\0') { |
ewprintf("Invalid number"); |
ewprintf("Invalid number"); |
return FALSE; |
return (FALSE); |
} |
} |
if (nl >= INT_MAX || nl <= INT_MIN) { |
if (nl >= INT_MAX || nl <= INT_MIN) { |
ewprintf("Out of range"); |
ewprintf("Out of range"); |
return FALSE; |
return (FALSE); |
} |
} |
n = (int)nl; |
n = (int)nl; |
} |
} |
|
|
curwp->w_dotp = clp; |
curwp->w_dotp = clp; |
curwp->w_doto = 0; |
curwp->w_doto = 0; |
curwp->w_flag |= WFMOVE; |
curwp->w_flag |= WFMOVE; |
return TRUE; |
return (TRUE); |
} |
} |