Dziekuję za zgłoszenie usterki. Rzeczywiście istniała ścieżka, gdzie job->tmodes było zainicjowane samymi zerami zamiast stanem terminala, który zastała powłoka. Poniższa łatka naprawia błąd.
diff --git a/projekt-shell/jobs.c b/projekt-shell/jobs.c
index 536c2cb..3533c2f 100644
--- a/projekt-shell/jobs.c
+++ b/projekt-shell/jobs.c
@@ -90,6 +90,7 @@ int addjob(pid_t pgid, int bg) {
job->command = NULL;
job->proc = NULL;
job->nproc = 0;
+ job->tmodes = shell_tmodes;
return j;
}
Można ją zaaplikować wydając polecenie patch -p2 < łatka w katalogu projekt-shell.