diff --git a/src/winio.c b/src/winio.c index e5044f319c207d91d06b8848f68bdf70c1b3ce70..6a667df91d2cabca1c3f837791fac7963fdcc678 100644 --- a/src/winio.c +++ b/src/winio.c @@ -4120,17 +4120,22 @@ void do_credits(void) break; if (crpos < CREDIT_LEN) { - const char *what = credits[crpos]; + char *what; size_t start_x; - if (what == NULL) { + if (credits[crpos] == NULL) { assert(0 <= xlpos && xlpos < XLCREDIT_LEN); - what = _(xlcredits[xlpos]); + + what = mallocstrcpy(NULL, _(xlcredits[xlpos])); xlpos++; - } + } else + what = make_mbstring(credits[crpos]); + start_x = COLS / 2 - strlenpt(what) / 2 - 1; - mvwaddstr(edit, editwinrows - 1 - editwinrows % 2, start_x, - what); + mvwaddstr(edit, editwinrows - 1 - (editwinrows % 2), + start_x, what); + + free(what); } napms(700);