From 9d5b3a3d1d4a940ce003afd2192b8d56c3b6e1af Mon Sep 17 00:00:00 2001 From: Laurent Mazet Date: Sat, 18 Jan 2025 16:43:01 +0100 Subject: [PATCH] put error message in red --- display.c | 27 +++++++++++++++++++-------- display.h | 4 ++-- fm.c | 33 +++++++++------------------------ 3 files changed, 30 insertions(+), 34 deletions(-) diff --git a/display.c b/display.c index 26e2837..f67b12e 100644 --- a/display.c +++ b/display.c @@ -140,7 +140,11 @@ int helpwindow (char *msg, int xoffset, int yoffset) int j = 2; j += _helpwindow (msg, xoffset, yoffset + j, length); _dobound (length, j, xoffset, yoffset); - set_color (black); + set_color (white); + + while (getch () == ERR) { + usleep (200 * 1000); + } return j; } @@ -420,7 +424,7 @@ char *getwindow (char *msg, window_t *win, int length, int size, char *init) return name; } -void msgwindow (char *msg, window_t *win, int length) +void _msgwindow (char *msg, window_t *win, int length) { int xsize = (length > 0) ? length : (int)strlen (msg); int xoffset = win->xoffset + (win->xsize - xsize) / 2; @@ -429,17 +433,17 @@ void msgwindow (char *msg, window_t *win, int length) } int yoffset = win->yoffset + (win->ysize - 1) / 2; - set_color (wblue); _dobound (xsize, 1, xoffset, yoffset); mvaddstr (yoffset, xoffset, msg); - set_color (white); } int askwindow (char *msg, window_t *win, char *ok, char *ko) { size_t i; - msgwindow (msg, win, 0); + set_color (wblue); + _msgwindow (msg, win, 0); + set_color (white); int stop = 0; while (!stop) { @@ -478,6 +482,16 @@ int askwindow (char *msg, window_t *win, char *ok, char *ko) return stop; } +void errorwindow (char *msg, window_t *win) +{ + set_color (wred); + _msgwindow (msg, win, 0); + set_color (white); + while (getch () == ERR) { + usleep (200 * 1000); + } +} + char *filewindow (char *name, window_t *win) { static char *_help = @@ -524,9 +538,6 @@ char *filewindow (char *name, window_t *win) break; case 'h': helpwindow (_help, (win->xsize - strmaxlen (_help, '\n')) / 2, 3 * win->yoffset); - while (getch () == ERR) { - usleep (200 * 1000); - } break; case 'i': case KEY_UP: diff --git a/display.h b/display.h index e45887e..fe438a0 100644 --- a/display.h +++ b/display.h @@ -13,10 +13,10 @@ void elementwindow (window_t *win, char *status, int *index); char *getwindow (char *msg, window_t *win, int length, int size, char *init); -void msgwindow (char *msg, window_t *win, int length); - int askwindow (char *msg, window_t *win, char *ok, char *ko); +void errorwindow (char *msg, window_t *win); + char *filewindow (char *name, window_t *win); #define KEY_DELETE 0x014a diff --git a/fm.c b/fm.c index 7b5805f..f740261 100644 --- a/fm.c +++ b/fm.c @@ -266,9 +266,6 @@ int main (int argc, char *argv[]) case 'H': case 'h': helpwindow (help, (width - strmaxlen (help, '\n')) / 2, 3 * yoffset); - while (getch () == ERR) { - usleep (200 * 1000); - } break; case KEY_UP: case 'i': @@ -316,8 +313,7 @@ int main (int argc, char *argv[]) char *dest = dirname[(panel + 1 ) % MAXPANELS]; char *msg = processcopy (dest, src); if (msg) { - msgwindow (msg, winscreen, 0); - getch (); + errorwindow (msg, winscreen); free (msg); } free (src); @@ -335,8 +331,7 @@ int main (int argc, char *argv[]) char *src = newfilename (dirname[panel], current->name); char *msg = processdelete (src); if (msg) { - msgwindow (msg, winscreen, 0); - getch (); + errorwindow (msg, winscreen); free (msg); } free (src); @@ -354,9 +349,6 @@ int main (int argc, char *argv[]) break; case ALT_H: /* help */ helpwindow (help, (width - strmaxlen (help, '\n')) / 2, 3 * yoffset); - while (getch () == ERR) { - usleep (200 * 1000); - } break; case ALT_M: /* move */ for (i = 0; i < list[panel]->nb; i++) { @@ -366,8 +358,7 @@ int main (int argc, char *argv[]) char *dest = newfilename (dirname[(panel + 1 ) % MAXPANELS], current->name); char *msg = processmove (dest, src); if (msg) { - msgwindow (msg, winscreen, 0); - getch (); + errorwindow (msg, winscreen); free (msg); } free (src); @@ -385,8 +376,7 @@ int main (int argc, char *argv[]) char *dest = newfilename (dirname[panel], string); char *msg = processmkdir (dest); if (msg) { - msgwindow (msg, winscreen, 0); - getch (); + errorwindow (msg, winscreen); free (msg); } free (dest); @@ -407,16 +397,14 @@ int main (int argc, char *argv[]) if (string) { if (strchr (string, *SEPARATOR) != NULL) { char *buf = strdupcat ("Can't rename file to '", string, "'", NULL); - msgwindow (buf, winscreen, 0); - getch (); + errorwindow (buf, winscreen); free (buf); } else { char *src = newfilename (dirname[panel], current->name); char *dest = newfilename (dirname[panel], string); char *msg = processmove (dest, src); if (msg) { - msgwindow (msg, winscreen, 0); - getch (); + errorwindow (msg, winscreen); free (msg); } free (src); @@ -444,8 +432,7 @@ int main (int argc, char *argv[]) char *src = newfilename (dirname[panel], current->name); char *msg = filewindow (src, winscreen); if (msg) { - msgwindow (msg, winscreen, 0); - getch (); + errorwindow (msg, winscreen); free (msg); } free (src); @@ -459,8 +446,7 @@ int main (int argc, char *argv[]) int mode = strtol (string, &endptr, 8); if ((*endptr != '\0') || (mode <= 0) || (mode > 0777)) { char *buf = strdupcat ("Can't change file(s) to mode '", string, "'" , NULL); - msgwindow (buf, winscreen, 0); - getch (); + errorwindow (buf, winscreen); free (buf); } else { for (i = 0; i < list[panel]->nb; i++) { @@ -469,8 +455,7 @@ int main (int argc, char *argv[]) char *src = newfilename (dirname[panel], current->name); char *msg = processchmod (src, mode); if (msg) { - msgwindow (msg, winscreen, 0); - getch (); + errorwindow (msg, winscreen); free (msg); } free (src); -- 2.30.2