summaryrefslogtreecommitdiff
path: root/userspace/xterm
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-10-12 00:30:44 +0200
committerMiguel <m.i@gmx.at>2018-10-12 00:30:44 +0200
commitb461c3558b2fe765a4bac512638b0acf5185b4bb (patch)
tree62d025135865f1752c7d884ac92fdcdd39b21654 /userspace/xterm
parent2e8d1bc3b6aa0671995860ca8a09c97523f3538d (diff)
imeplemented /dev/tty and minimalistic "less"
Diffstat (limited to 'userspace/xterm')
-rw-r--r--userspace/xterm/xterm.c32
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();
}