void DrawTitle(void)
{
int rows, cols;
- char s[255];
+ char *s;
#ifdef HAVE_NCURSES
attrset(A_REVERSE);
standout();
#endif
getmaxyx(stdscr, rows, cols);
+ s = malloc(cols + 1);
sprintf(s, " " MSG_TITLE " %s", version_string);
- memset(&s[strlen(s)], ' ', 254 - strlen(s));
- if (cols > strlen(MSG_TITLE) + 2 + strlen(version_string) + 1 + strlen(MSG_TITLESUB))
+ const int titlelen = strlen(s);
+ memset(&s[titlelen], ' ', cols - strlen(MSG_TITLE)); // pad
+ if (cols > titlelen + 1 + strlen(MSG_TITLESUB))
memcpy(&s[cols - 1 - strlen(MSG_TITLESUB)], MSG_TITLESUB, sizeof(MSG_TITLESUB) - 1);
memcpy(&s[cols], "\0", 1);
mvaddstr(0, 0, s);
+ free(s);
standend(); //normal text
}