version 1.48, 2009/06/05 18:02:06 |
version 1.49, 2009/11/12 16:37:14 |
|
|
int doto; |
int doto; |
char *cp1, *cp2; |
char *cp1, *cp2; |
size_t len; |
size_t len; |
char *sv; |
char *sv = NULL; |
int end; |
int end; |
int s; |
int s; |
|
int rval = FALSE; |
|
|
if ((s = checkdirty(curbp)) != TRUE) |
if ((s = checkdirty(curbp)) != TRUE) |
return (s); |
return (s); |
if (curbp->b_flag & BFREADONLY) { |
if (curbp->b_flag & BFREADONLY) { |
ewprintf("Buffer is read only"); |
ewprintf("Buffer is read only"); |
return (FALSE); |
goto out; |
} |
} |
len = n; |
len = n; |
if ((sv = calloc(1, len + 1)) == NULL) |
if ((sv = calloc(1, len + 1)) == NULL) |
return (FALSE); |
goto out; |
end = 0; |
end = 0; |
|
|
undo_add_delete(curwp->w_dotp, curwp->w_doto, n, (kflag & KREG)); |
undo_add_delete(curwp->w_dotp, curwp->w_doto, n, (kflag & KREG)); |
|
|
doto = curwp->w_doto; |
doto = curwp->w_doto; |
/* Hit the end of the buffer */ |
/* Hit the end of the buffer */ |
if (dotp == curbp->b_headp) |
if (dotp == curbp->b_headp) |
return (FALSE); |
goto out; |
/* Size of the chunk */ |
/* Size of the chunk */ |
chunk = dotp->l_used - doto; |
chunk = dotp->l_used - doto; |
|
|
|
|
/* End of line, merge */ |
/* End of line, merge */ |
if (chunk == 0) { |
if (chunk == 0) { |
if (dotp == blastlp(curbp)) |
if (dotp == blastlp(curbp)) |
return (FALSE); |
goto out; |
lchange(WFFULL); |
lchange(WFFULL); |
if (ldelnewline() == FALSE) |
if (ldelnewline() == FALSE) |
return (FALSE); |
goto out; |
end = strlcat(sv, "\n", len + 1); |
end = strlcat(sv, "\n", len + 1); |
--n; |
--n; |
continue; |
continue; |
|
|
n -= chunk; |
n -= chunk; |
} |
} |
if (kchunk(sv, (RSIZE)len, kflag) != TRUE) |
if (kchunk(sv, (RSIZE)len, kflag) != TRUE) |
return (FALSE); |
goto out; |
|
rval = TRUE; |
|
out: |
free(sv); |
free(sv); |
return (TRUE); |
return (rval); |
} |
} |
|
|
/* |
/* |