]> granicus.if.org Git - nethack/commitdiff
score feedback punctuation
authorPatR <rankin@nethack.org>
Tue, 3 Jan 2023 07:25:38 +0000 (23:25 -0800)
committerPatR <rankin@nethack.org>
Tue, 3 Jan 2023 07:25:38 +0000 (23:25 -0800)
"Killed by Ms. Manlobbi, the shopkeeper" has the comma changed to
a semi-colon prior to being stored in 'record'.  That's intentional,
but "Killed by Ms. Manlobbi; the shopkeeper" looks strange when shown
to the player.  Change semi-colon back to comma when writing scores
for display.

src/topten.c

index be47f08a65459ca4ade6e93513045ab5c4a9cd67..6bd833d32c342507be8bfd5dd3c84da86d8efcf9 100644 (file)
@@ -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)