From b461c3558b2fe765a4bac512638b0acf5185b4bb Mon Sep 17 00:00:00 2001 From: Miguel Date: Fri, 12 Oct 2018 00:30:44 +0200 Subject: imeplemented /dev/tty and minimalistic "less" --- userspace/xterm/xterm.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) (limited to 'userspace/xterm') diff --git a/userspace/xterm/xterm.c b/userspace/xterm/xterm.c index 4680ab8..fdee768 100644 --- a/userspace/xterm/xterm.c +++ b/userspace/xterm/xterm.c @@ -1,47 +1,51 @@ +#include +#include + extern char**environ; int main(int argc, char **argv) { _gui_win(); - int xterm_in[2]; - int xterm_out[2]; - - _pipe(xterm_in); - _pipe(xterm_out); vesa_init(); void *tty=terminal_init_vesa(); + //int xterm_in[2]; + int xterm_out[2]; + + //_pipe(xterm_in); + _pipe(xterm_out); + int pid=_fork(); if(!pid) { - _close(xterm_in[1]); + int tty_fd=_open("/dev/tty"); + + //_close(xterm_in[1]); _close(xterm_out[0]); - _dup2(xterm_in[0],0);// stdin + _dup2(tty_fd,0);// stdin _dup2(xterm_out[1],1);// stdout _dup2(xterm_out[1],2);// stderr - _close(xterm_in[0]); - _close(xterm_out[1]); - _execve(argv[1],argv,environ); // replace process with our foolshell or whatever + + while(1); } - _close(xterm_in[0]); + //_close(xterm_in[0]); _close(xterm_out[1]); - _dup2(xterm_in[1],0); // compositor writes here. - _close(xterm_in[1]); + //_dup2(xterm_in[1],0); // compositor writes here. + //_close(xterm_in[1]); while(1) { char buf[1]; _read(xterm_out[0],buf,1); // show what foolshell writes to its stdout/stderr - terminal_put(tty,buf[0]); _gui_rect(); } -- cgit v1.2.3