version 1.33, 2013/05/22 19:23:45 |
version 1.34, 2014/03/20 07:47:29 |
|
|
if ((s = checkdirty(curbp)) != TRUE) |
if ((s = checkdirty(curbp)) != TRUE) |
return (s); |
return (s); |
if (curbp->b_flag & BFREADONLY) { |
if (curbp->b_flag & BFREADONLY) { |
|
dobeep(); |
ewprintf("Buffer is read-only"); |
ewprintf("Buffer is read-only"); |
return (FALSE); |
return (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) { |
|
dobeep(); |
ewprintf("Buffer is read-only"); |
ewprintf("Buffer is read-only"); |
return (FALSE); |
return (FALSE); |
} |
} |
|
|
long fsize, bsize; |
long fsize, bsize; |
|
|
if (curwp->w_markp == NULL) { |
if (curwp->w_markp == NULL) { |
|
dobeep(); |
ewprintf("No mark set in this window"); |
ewprintf("No mark set in this window"); |
return (FALSE); |
return (FALSE); |
} |
} |
|
|
} |
} |
} |
} |
} |
} |
|
dobeep(); |
ewprintf("Bug: lost mark"); |
ewprintf("Bug: lost mark"); |
return (FALSE); |
return (FALSE); |
} |
} |
|
|
{ |
{ |
rp->r_size = size; |
rp->r_size = size; |
if (rp->r_size != size) { |
if (rp->r_size != size) { |
|
dobeep(); |
ewprintf("Region is too large"); |
ewprintf("Region is too large"); |
return (FALSE); |
return (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) { |
|
dobeep(); |
ewprintf("Buffer is read-only"); |
ewprintf("Buffer is read-only"); |
return (FALSE); |
return (FALSE); |
} |
} |
|
|
return (ABORT); |
return (ABORT); |
|
|
if (curwp->w_markp == NULL) { |
if (curwp->w_markp == NULL) { |
|
dobeep(); |
ewprintf("The mark is not set now, so there is no region"); |
ewprintf("The mark is not set now, so there is no region"); |
return (FALSE); |
return (FALSE); |
} |
} |
|
|
len = region.r_size; |
len = region.r_size; |
|
|
if ((text = malloc(len + 1)) == NULL) { |
if ((text = malloc(len + 1)) == NULL) { |
|
dobeep(); |
ewprintf("Cannot allocate memory."); |
ewprintf("Cannot allocate memory."); |
return (FALSE); |
return (FALSE); |
} |
} |
|
|
char *err; |
char *err; |
|
|
if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, s) == -1) { |
if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, s) == -1) { |
|
dobeep(); |
ewprintf("socketpair error"); |
ewprintf("socketpair error"); |
return (FALSE); |
return (FALSE); |
} |
} |
|
|
switch(fork()) { |
switch(fork()) { |
case -1: |
case -1: |
|
dobeep(); |
ewprintf("Can't fork"); |
ewprintf("Can't fork"); |
return (FALSE); |
return (FALSE); |
case 0: |
case 0: |
|
|
leftover[0] = '\0'; |
leftover[0] = '\0'; |
} |
} |
if (nfds == 0) { |
if (nfds == 0) { |
|
dobeep(); |
ewprintf("poll timed out"); |
ewprintf("poll timed out"); |
return (FALSE); |
return (FALSE); |
} else if (nfds == -1) { |
} else if (nfds == -1) { |
|
dobeep(); |
ewprintf("poll error"); |
ewprintf("poll error"); |
return (FALSE); |
return (FALSE); |
} |
} |
|
|
*q++ = '\0'; |
*q++ = '\0'; |
if (strlcat(leftover, p, sizeof(leftover)) >= |
if (strlcat(leftover, p, sizeof(leftover)) >= |
sizeof(leftover)) { |
sizeof(leftover)) { |
|
dobeep(); |
ewprintf("line too long"); |
ewprintf("line too long"); |
return (FALSE); |
return (FALSE); |
} |
} |
|
|
p = q; |
p = q; |
} |
} |
if (strlcpy(leftover, p, sizeof(leftover)) >= sizeof(leftover)) { |
if (strlcpy(leftover, p, sizeof(leftover)) >= sizeof(leftover)) { |
|
dobeep(); |
ewprintf("line too long"); |
ewprintf("line too long"); |
return (FALSE); |
return (FALSE); |
} |
} |