Changes on process and input handling. Small but impactful.
Before launching a command, stdin is set to line mode and paused on the father process. It is then set back to raw mode once the command ends. Also put a handler for SIGINT in place which just ignores the signal. This allows to terminate commands like ping without terminating the shell. Still don't know how programs which keep going from back to foreground will behave.