From: Mischa POSLAWSKY Date: Sun, 4 Mar 2007 05:32:54 +0000 (+0100) Subject: allocate just the right amount of memory for title bar X-Git-Url: http://git.shiar.net/netris.git/commitdiff_plain/e799b9a7fe08744f8c99557a067ecb442860b69c allocate just the right amount of memory for title bar Should prevent truncation on terminals over 254 characters wide. --- diff --git a/curses.c b/curses.c index bb3834e..11fac6e 100644 --- a/curses.c +++ b/curses.c @@ -202,7 +202,7 @@ void OutputTermStr(char *str, int flush) void DrawTitle(void) { int rows, cols; - char s[255]; + char *s; #ifdef HAVE_NCURSES attrset(A_REVERSE); @@ -210,12 +210,15 @@ void DrawTitle(void) 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 }