diff --git a/src/topten.c b/src/topten.c index be47f08a6..6bd833d32 100644 --- a/src/topten.c +++ b/src/topten.c @@ -1029,8 +1029,14 @@ outentry(int rank, struct toptenentry *t1, boolean so) Strcat(linebuf, "."); /* Quit, starved, ascended, and escaped contain no second line */ - if (second_line) - Sprintf(eos(linebuf), " %c%s.", highc(*(t1->death)), t1->death + 1); + if (second_line) { + bp = eos(linebuf); + Sprintf(bp, " %c%s.", highc(*(t1->death)), t1->death + 1); + /* fix up "Killed by Mr. Asidonhopo; the shopkeeper"; that starts + with a comma but has it changed to semi-colon to keep the comma + out of 'record'; change it back for display */ + (void) strsubst(bp, "; the ", ", the "); + } lngr = (int) strlen(linebuf); if (t1->hp <= 0) @@ -1038,9 +1044,9 @@ outentry(int rank, struct toptenentry *t1, boolean so) else Sprintf(hpbuf, "%d", t1->hp); /* beginning of hp column after padding (not actually padded yet) */ - hppos = COLNO - (sizeof(" Hp [max]") - 1); /* sizeof(str) includes \0 */ + hppos = COLNO - (int) (sizeof " Hp [max]" - sizeof ""); while (lngr >= hppos) { - for (bp = eos(linebuf); !(*bp == ' ' && (bp - linebuf < hppos)); bp--) + for (bp = eos(linebuf); !(*bp == ' ' && bp - linebuf < hppos); bp--) ; /* special case: word is too long, wrap in the middle */ if (linebuf + 15 >= bp)