Fix journalling of output ids
This commit is contained in:
parent
59bdc1cbcc
commit
342ab5c22a
3 changed files with 26 additions and 17 deletions
|
@ -42,7 +42,7 @@ int journal_reopen(void);
|
||||||
void journal_login(void);
|
void journal_login(void);
|
||||||
void journal_logout(void);
|
void journal_logout(void);
|
||||||
void journal_prng(unsigned);
|
void journal_prng(unsigned);
|
||||||
void journal_output(struct player *, char *);
|
void journal_output(struct player *, int, char *);
|
||||||
void journal_input(char *);
|
void journal_input(char *);
|
||||||
void journal_command(char *);
|
void journal_command(char *);
|
||||||
void journal_update(int);
|
void journal_update(int);
|
||||||
|
|
|
@ -67,7 +67,7 @@ static char journal_fname[] = "journal.log";
|
||||||
static FILE *journal;
|
static FILE *journal;
|
||||||
|
|
||||||
static void journal_entry(char *fmt, ...) ATTRIBUTE((format (printf, 1, 2)));
|
static void journal_entry(char *fmt, ...) ATTRIBUTE((format (printf, 1, 2)));
|
||||||
static void journal_output_1(struct player *, char *, char *, int);
|
static void journal_output_1(struct player *, int, char *, char *, int);
|
||||||
|
|
||||||
static FILE *
|
static FILE *
|
||||||
journal_open(void)
|
journal_open(void)
|
||||||
|
@ -173,35 +173,45 @@ journal_logout(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
journal_output(struct player *pl, char *output)
|
journal_output(struct player *pl, int id, char *output)
|
||||||
{
|
{
|
||||||
static char buf[1024];
|
static char buf[1024];
|
||||||
|
static struct player *bpl;
|
||||||
|
static int bid;
|
||||||
char *s, *e;
|
char *s, *e;
|
||||||
|
|
||||||
if (keep_journal < 2)
|
if (keep_journal < 2)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (s = output; (e = strchr(s, '\n')); s = e + 1) {
|
if (buf[0] && (pl != bpl && id != bid)) {
|
||||||
journal_output_1(pl, buf, s, (int)(e + 1 - s));
|
journal_output_1(bpl, bid, buf, "", -1);
|
||||||
buf[0] = 0;
|
buf[0] = 0;
|
||||||
}
|
}
|
||||||
if (strlen(buf) + strlen(s) < 1024)
|
|
||||||
|
for (s = output; (e = strchr(s, '\n')); s = e + 1) {
|
||||||
|
journal_output_1(pl, id, buf, s, (int)(e + 1 - s));
|
||||||
|
buf[0] = 0;
|
||||||
|
}
|
||||||
|
if (strlen(buf) + strlen(s) < 1024) {
|
||||||
strcpy(buf + strlen(buf), s);
|
strcpy(buf + strlen(buf), s);
|
||||||
else {
|
bpl = pl;
|
||||||
journal_output_1(pl, buf, s, -1);
|
bid = id;
|
||||||
|
} else {
|
||||||
|
journal_output_1(pl, id, buf, s, -1);
|
||||||
buf[0] = 0;
|
buf[0] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
journal_output_1(struct player *pl, char *buf1, char *buf2, int buf2prec)
|
journal_output_1(struct player *pl, int id,
|
||||||
|
char *buf1, char *buf2, int buf2prec)
|
||||||
{
|
{
|
||||||
if (pl && pl->state == PS_PLAYING)
|
if (pl && pl->state == PS_PLAYING)
|
||||||
journal_entry("output %d %s%.*s",
|
journal_entry("output %d %d %s%.*s",
|
||||||
pl->cnum, buf1, buf2prec, buf2);
|
pl->cnum, id, buf1, buf2prec, buf2);
|
||||||
else
|
else
|
||||||
journal_entry("output %p %s%.*s",
|
journal_entry("output %p %id %s%.*s",
|
||||||
pl, buf1, buf2prec, buf2);
|
pl, id, buf1, buf2prec, buf2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -125,7 +125,7 @@ pr_id(struct player *p, int id, char *format, ...)
|
||||||
|
|
||||||
if (p->curid >= 0) {
|
if (p->curid >= 0) {
|
||||||
io_puts(p->iop, "\n");
|
io_puts(p->iop, "\n");
|
||||||
journal_output(p, "\n");
|
journal_output(p, p->curid, "\n");
|
||||||
p->curid = -1;
|
p->curid = -1;
|
||||||
}
|
}
|
||||||
va_start(ap, format);
|
va_start(ap, format);
|
||||||
|
@ -247,7 +247,7 @@ pr_player(struct player *pl, int id, char *buf)
|
||||||
bp += len;
|
bp += len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
journal_output(pl, buf);
|
journal_output(pl, id, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -302,7 +302,7 @@ upr_player(struct player *pl, int id, char *buf)
|
||||||
io_puts(pl->iop, printbuf);
|
io_puts(pl->iop, printbuf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
journal_output(pl, buf);
|
journal_output(pl, id, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -324,7 +324,6 @@ outid(struct player *pl, int n)
|
||||||
buf[1] = ' ';
|
buf[1] = ' ';
|
||||||
buf[2] = '\0';
|
buf[2] = '\0';
|
||||||
io_puts(pl->iop, buf);
|
io_puts(pl->iop, buf);
|
||||||
journal_output(pl, buf);
|
|
||||||
pl->curid = n;
|
pl->curid = n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue