mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
Exit curses mode while programs run
This commit is contained in:
parent
4e818a3980
commit
fdf42ec502
38
noice.c
38
noice.c
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue