fix getwindow function
authorLaurent MAZET <laurent.mazet@thalesgroup.com>
Thu, 9 Jan 2025 13:58:21 +0000 (14:58 +0100)
committerLaurent MAZET <laurent.mazet@thalesgroup.com>
Thu, 9 Jan 2025 13:58:21 +0000 (14:58 +0100)
display.c

index 32736a8fb427937d786a5b0ea29e377ed96d6087..92b600e9bf7fcecc49ffffd7c1b54f028ece4dc4 100644 (file)
--- 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;