version 1.10, 1997/04/28 06:03:51 |
version 1.11, 1997/09/11 19:02:55 |
|
|
qopt = YES; |
qopt = YES; |
break; |
break; |
|
|
case 'r': /* restricted */ |
case 'r': /* restricted */ |
restricted = YES; |
restricted = YES; |
break; |
break; |
|
|
|
|
case 's': /* sending TO msgs */ |
case 's': /* sending TO msgs */ |
|
|
msgsrc = fopen(fname, "r"); |
msgsrc = fopen(fname, "r"); |
if (msgsrc) { |
if (msgsrc) { |
newrc = NO; |
newrc = NO; |
fscanf(msgsrc, "%d\n", &nextmsg); |
fscanf(msgsrc, "%d\n", &nextmsg); |
fclose(msgsrc); |
fclose(msgsrc); |
if (nextmsg > lastmsg+1) { |
if (nextmsg > lastmsg+1) { |
printf("Warning: bounds have been reset (%d, %d)\n", |
printf("Warning: bounds have been reset (%d, %d)\n", |
firstmsg, lastmsg); |
firstmsg, lastmsg); |
truncate(fname, (off_t)0); |
truncate(fname, (off_t)0); |
|
|
else if (!rcfirst) |
else if (!rcfirst) |
rcfirst = nextmsg - rcback; |
rcfirst = nextmsg - rcback; |
} |
} |
else |
else |
newrc = YES; |
newrc = YES; |
msgsrc = fopen(fname, "r+"); |
msgsrc = fopen(fname, "r+"); |
if (msgsrc == NULL) |
if (msgsrc == NULL) |
msgsrc = fopen(fname, "w"); |
msgsrc = fopen(fname, "w"); |
if (msgsrc == NULL) { |
if (msgsrc == NULL) { |
perror(fname); |
perror(fname); |
exit(errno); |
exit(errno); |
|
|
if (use_pager && length > Lpp) { |
if (use_pager && length > Lpp) { |
signal(SIGPIPE, SIG_IGN); |
signal(SIGPIPE, SIG_IGN); |
signal(SIGQUIT, SIG_IGN); |
signal(SIGQUIT, SIG_IGN); |
if ((env_pager = getenv("PAGER")) == NULL) { |
if ((env_pager = getenv("PAGER")) == NULL) { |
snprintf(cmdbuf, sizeof(cmdbuf), _PATH_PAGER, Lpp); |
snprintf(cmdbuf, sizeof(cmdbuf), _PATH_PAGER, Lpp); |
} else { |
} else { |
strcpy(cmdbuf, env_pager); |
snprintf(cmdbuf, sizeof(cmdbuf), env_pager); |
} |
} |
outf = popen(cmdbuf, "w"); |
outf = popen(cmdbuf, "w"); |
if (!outf) |
if (!outf) |
outf = stdout; |
outf = stdout; |
|
|
/* |
/* |
* Handle 'mail' and 'save' here. |
* Handle 'mail' and 'save' here. |
*/ |
*/ |
if (((inch = inbuf[0]) == 's' || inch == 'm') && !restricted) { |
if (((inch = inbuf[0]) == 's' || inch == 'm') && !restricted) { |
if (inbuf[1] == '-') |
if (inbuf[1] == '-') |
cmsg = prevmsg; |
cmsg = prevmsg; |
else if (isdigit(inbuf[1])) |
else if (isdigit(inbuf[1])) |