Exit curses mode while programs run

This commit is contained in:
lostd 2014-10-07 11:37:23 +00:00 committed by lostd
parent 4e818a3980
commit fdf42ec502
1 changed files with 27 additions and 11 deletions

38
noice.c
View File

@ -42,8 +42,8 @@
int die = 0;
struct assoc {
char *ext;
char *bin;
char *ext; /* Extension */
char *bin; /* Program */
} assocs[] = {
{ "avi", "mplayer" },
{ "mp4", "mplayer" },
@ -88,6 +88,25 @@ dentcmp(const void *va, const void *vb)
return strcmp(a->d_name, b->d_name);
}
void
initcurses(void)
{
initscr();
cbreak();
noecho();
nonl();
intrflush(stdscr, FALSE);
keypad(stdscr, TRUE);
curs_set(FALSE); /* Hide cursor */
}
void
exitcurses(void)
{
endwin(); /* Restore terminal */
}
/* Warning shows up at the bottom */
void
printwarn(char *prefix)
@ -318,6 +337,8 @@ nochange:
DPRINTF_S(ext);
DPRINTF_S(bin);
exitcurses();
/* Run program */
pid = fork();
if (pid == 0)
@ -325,6 +346,8 @@ nochange:
else
waitpid(pid, NULL, 0);
initcurses();
free(file);
/* Screen may be messed up */
@ -360,18 +383,11 @@ main(int argc, char *argv[])
/* Set locale before curses setup */
setlocale(LC_ALL, "");
/* Init curses */
initscr();
cbreak();
noecho();
nonl();
intrflush(stdscr, FALSE);
keypad(stdscr, TRUE);
curs_set(FALSE); /* Hide cursor */
initcurses();
browse(ipath);
endwin(); /* Restore terminal */
exitcurses();
return 0;
}