This commit adds some needed terminal emulator infrastructure.
We allow to "open" (and close) a vte object (resp. terminal object).
We then create a pty pair, fork and exec a shell. We route input to the
shell and draw its output to the console.
We add callbacks for when
- The buffer changes (through the vte object). We can then schedule a
screen redraw.
- The shell (child process) exits. We can then exit ourselves, start up
a new shell, etc.
There is not yet any real VTE processing, so we display raw escape
codes and so on. However, this should provide immediate feedback for
any further vte development, as we start to act like a real terminal
emulator.
Signed-off-by: Ran Benita <ran234@gmail.com>