|
|
@@ -983,20 +983,14 @@ static void spawn(const char *file, const char *arg1, const char *arg2, const ch |
|
|
|
arg2 = tmp; |
|
|
|
} |
|
|
|
|
|
|
|
if (flag & F_NORMAL) |
|
|
|
exitcurses(); |
|
|
|
|
|
|
|
pid = fork(); |
|
|
|
if (pid == 0) { |
|
|
|
if (flag & F_NORMAL) |
|
|
|
exitcurses(); |
|
|
|
|
|
|
|
if (dir != NULL) |
|
|
|
status = chdir(dir); |
|
|
|
|
|
|
|
tmp = getenv(env_cfg[NNNLVL]); |
|
|
|
|
|
|
|
/* Show a marker (to indicate nnn spawned shell) */ |
|
|
|
if (flag & F_MARKER && tmp) |
|
|
|
fprintf(stdout, "\n +-++-++-+\n | n n n | %d\n +-++-++-+\n\n", xatoi(tmp)); |
|
|
|
|
|
|
|
/* Suppress stdout and stderr */ |
|
|
|
if (flag & F_NOTRACE) { |
|
|
|
int fd = open("/dev/null", O_WRONLY, 0200); |
|
|
@@ -1025,9 +1019,10 @@ static void spawn(const char *file, const char *arg1, const char *arg2, const ch |
|
|
|
|
|
|
|
DPRINTF_D(pid); |
|
|
|
if (flag & F_NORMAL) { |
|
|
|
refresh(); |
|
|
|
exitcurses(); |
|
|
|
fflush(stdout); |
|
|
|
initcurses(); |
|
|
|
refresh(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|