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;
}
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;
}
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) {
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 =
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:
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':
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);
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);
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++) {
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);
char *dest = newfilename (dirname[panel], string);
char *msg = processmkdir (dest);
if (msg) {
- msgwindow (msg, winscreen, 0);
- getch ();
+ errorwindow (msg, winscreen);
free (msg);
}
free (dest);
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);
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);
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++) {
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);