diff options
| author | Miguel <m.i@gmx.at> | 2018-10-12 00:30:44 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-10-12 00:30:44 +0200 |
| commit | b461c3558b2fe765a4bac512638b0acf5185b4bb (patch) | |
| tree | 62d025135865f1752c7d884ac92fdcdd39b21654 /userspace/xterm/xterm.c | |
| parent | 2e8d1bc3b6aa0671995860ca8a09c97523f3538d (diff) | |
imeplemented /dev/tty and minimalistic "less"
Diffstat (limited to 'userspace/xterm/xterm.c')
| -rw-r--r-- | userspace/xterm/xterm.c | 32 |
1 files changed, 18 insertions, 14 deletions
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 <stdlib.h> +#include <stdio.h> + 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(); } |
