From: Laurent MAZET Date: Thu, 9 Jan 2025 13:58:21 +0000 (+0100) Subject: fix getwindow function X-Git-Tag: v1.0~58 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=0009c328adb62e6bca2d96edfa80bf12df7a88da;p=fm.git fix getwindow function --- diff --git a/display.c b/display.c index 32736a8..92b600e 100644 --- a/display.c +++ b/display.c @@ -309,17 +309,21 @@ char *getwindow (char *msg, window_t *win, int length) int yoffset = win->yoffset + (win->ysize - 1) / 2; set_color (black); - _dobound (strlen (msg) + 1 + length, 2, xoffset, yoffset); + _dobound (strlen (msg) + 1 + length, 1, xoffset, yoffset); mvaddstr (yoffset, xoffset, msg); + xoffset += strlen (msg); + mvaddch (yoffset, xoffset, ' '); + xoffset++; + set_color (byellow); + mvaddstr (yoffset, xoffset, name); set_color (white); - //xoffset += strlen (msg) + 1; int i = 0, j; int stop = 0; while (!stop) { for (j = 0; j < length; j++) { - set_color ((j == i) ? yellow : black); - mvaddch (yoffset + 1, xoffset + j, name[j]); + set_color ((j == i) ? yellow : byellow); + mvaddch (yoffset, xoffset + j, name[j]); set_color (white); } int ch = getch (); @@ -362,11 +366,15 @@ char *getwindow (char *msg, window_t *win, int length) } if (name) { - for (j = length - 1; j >= 0; j--) { - if (name[j] == ' ') { - name[j] = '\0'; - } + VERBOSE (DEBUG, fprintf (stderr, "name: '%s'\n", name)); + for (j = length - 1; (j >= 0) && (name[j] == ' '); j--) { + name[j] = '\0'; + } + for (i = 0; name[i] == ' '; i++); + if (i != 0) { + memmove (name, name + i, strlen (name) - i + 1); } + VERBOSE (DEBUG, fprintf (stderr, "name: '%s'\n", name)); if (*name == '\0') { free (name); name = NULL;