commit d5fe31b0596c3cddc539f3364fd630f06e4b6d66 from: Marcel Rodrigues date: Fri Nov 14 17:30:33 2014 UTC Move curs_set() calls into igetstr(). commit - 743e70b89c5512fa45ad7d31096ab4b7d4638065 commit + d5fe31b0596c3cddc539f3364fd630f06e4b6d66 blob - fd72225cf932c57b7920907fc2d654a78d3b6386 blob + 28b7aae7d7270c2158c7bf81f0b47b7a3d05d795 --- rover.c +++ rover.c @@ -551,9 +551,12 @@ igetstr(char *buffer, int maxlen) int ch, length; length = strlen(buffer); + curs_set(TRUE); ch = getch(); - if (ch == '\r' || ch == '\n' || ch == KEY_DOWN || ch == KEY_ENTER) + if (ch == '\r' || ch == '\n' || ch == KEY_DOWN || ch == KEY_ENTER) { + curs_set(FALSE); return 0; + } else if (ch == erasechar() || ch == KEY_LEFT || ch == KEY_BACKSPACE) { if (length) buffer[--length] = '\0'; @@ -755,7 +758,6 @@ main(int argc, char *argv[]) oldscroll = SCROLL; strcpy(INPUT, ""); update_input(prompt, DEFAULT); - curs_set(TRUE); while (igetstr(INPUT, INPUTSZ)) { int sel; color_t color = RED; @@ -784,7 +786,6 @@ main(int argc, char *argv[]) update_view(); update_input(prompt, color); } - curs_set(FALSE); mvhline(LINES - 1, 0, ' ', STATUSPOS); update_view(); } @@ -805,7 +806,6 @@ main(int argc, char *argv[]) char *prompt = "new file: "; strcpy(INPUT, ""); update_input(prompt, DEFAULT); - curs_set(TRUE); while (igetstr(INPUT, INPUTSZ)) { ok = 1; for (i = 0; i < rover.nfiles; i++) @@ -815,7 +815,6 @@ main(int argc, char *argv[]) } update_input(prompt, ok ? GREEN : RED); } - curs_set(FALSE); mvhline(LINES - 1, 0, ' ', STATUSPOS); if (strlen(INPUT)) { if (ok) addfile(INPUT); @@ -828,7 +827,6 @@ main(int argc, char *argv[]) char *prompt = "new directory: "; strcpy(INPUT, ""); update_input(prompt, DEFAULT); - curs_set(TRUE); while (igetstr(INPUT, INPUTSZ)) { ok = 1; for (i = 0; i < rover.nfiles; i++) @@ -838,7 +836,6 @@ main(int argc, char *argv[]) } update_input(prompt, ok ? GREEN : RED); } - curs_set(FALSE); mvhline(LINES - 1, 0, ' ', STATUSPOS); if (strlen(INPUT)) { if (ok) adddir(INPUT);