diff --git a/patch/newterm.c b/patch/newterm.c index 7e3ab28..d4a1735 100644 --- a/patch/newterm.c +++ b/patch/newterm.c @@ -7,9 +7,19 @@ newterm(const Arg* a) die("fork failed: %s\n", strerror(errno)); break; case 0: - res = chdir(getcwd_by_pid(pid)); - execlp("st", "./st", NULL); - break; + switch (fork()) { + case -1: + die("fork failed: %s\n", strerror(errno)); + break; + case 0: + res = chdir(getcwd_by_pid(pid)); + execlp("st", "./st", NULL); + break; + default: + exit(0); + } + default: + wait(NULL); } }