read can print telegram without header after deletion prompt
rea() loops if more telegrams arrive while we wait for the player to
confirm deletion. If the first new one is a continuation of the last
old one, its header is suppressed. Don't do that.
Broken in commit 17223e8f
, v4.3.29.
This commit is contained in:
parent
330f8ca567
commit
c72e2cbf25
1 changed files with 5 additions and 2 deletions
|
@ -59,7 +59,7 @@ rea(void)
|
|||
char mbox_buf[256]; /* Maximum path length */
|
||||
struct telstr tgm;
|
||||
FILE *telfp;
|
||||
int teles;
|
||||
int teles, need_hdr;
|
||||
char buf[1024];
|
||||
char *kind;
|
||||
int n, res;
|
||||
|
@ -99,6 +99,7 @@ rea(void)
|
|||
return RET_FAIL;
|
||||
}
|
||||
teles = 0;
|
||||
need_hdr = 1;
|
||||
for (;;) {
|
||||
res = tel_read_header(telfp, mbox, &tgm);
|
||||
more:
|
||||
|
@ -115,7 +116,7 @@ rea(void)
|
|||
}
|
||||
if (!teles && *kind == 'a')
|
||||
pr("\nAnnouncements since %s", ctime(&then));
|
||||
if (!teles || !tgm.tel_cont) {
|
||||
if (need_hdr || !tgm.tel_cont) {
|
||||
pr("\n> ");
|
||||
pr("%s ", telnames[tgm.tel_type]);
|
||||
if ((tgm.tel_type == TEL_NORM) ||
|
||||
|
@ -125,6 +126,7 @@ rea(void)
|
|||
pr(" dated %s", ctime(&tgm.tel_date));
|
||||
}
|
||||
teles++;
|
||||
need_hdr = 0;
|
||||
res = tel_read_body(telfp, mbox, &tgm, print_sink, NULL);
|
||||
if (res < 0)
|
||||
break;
|
||||
|
@ -169,6 +171,7 @@ rea(void)
|
|||
res = tel_read_header(telfp, mbox, &tgm);
|
||||
if (res != 0) {
|
||||
pr("Wait a sec! A new %s has arrived...\n", kind);
|
||||
need_hdr = 1;
|
||||
goto more;
|
||||
}
|
||||
/* Here, we just re-open the file for "w" only,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue