diff options
-rw-r--r-- | src/cmd/9term/OpenBSD.c | 62 | ||||
-rw-r--r-- | src/cmd/9term/rcstart.c | 1 |
2 files changed, 9 insertions, 54 deletions
diff --git a/src/cmd/9term/OpenBSD.c b/src/cmd/9term/OpenBSD.c index ec8c5efb..a9bf6f9a 100644 --- a/src/cmd/9term/OpenBSD.c +++ b/src/cmd/9term/OpenBSD.c @@ -1,59 +1,15 @@ -#include <u.h> -#include <sys/types.h> -#include <sys/ioctl.h> -#include <termios.h> -#include <sys/termios.h> -#include <util.h> -#include <libc.h> -#include "term.h" +#define getpts not_using_this_getpts +#include "bsdpty.c" +#undef getpts int getpts(int fd[], char *slave) { - return openpty(&fd[1], &fd[0], slave, 0, 0); -} - -int -childpty(int fd[], char *slave) -{ - int sfd; - - close(fd[1]); - setsid(); - sfd = open(slave, ORDWR); - if(sfd < 0) - sysfatal("open %s: %r\n", slave); - if(ioctl(sfd, TIOCSCTTY, 0) < 0) - fprint(2, "ioctl TIOCSCTTY: %r\n"); - return sfd; -} - -struct winsize ows; - -void -updatewinsize(int row, int col, int dx, int dy) -{ - struct winsize ws; - - ws.ws_row = row; - ws.ws_col = col; - ws.ws_xpixel = dx; - ws.ws_ypixel = dy; - if(ws.ws_row != ows.ws_row || ws.ws_col != ows.ws_col) - if(ioctl(rcfd[0], TIOCSWINSZ, &ws) < 0) - fprint(2, "ioctl: %r\n"); - ows = ws; -} - -int -israw(int fd) -{ - return 0; -} - -int -setecho(int fd, int on) -{ + if(openpty(&fd[1], &fd[0], NULL, NULL, NULL) >= 0){ + fchmod(fd[1], 0620); + strcpy(slave, ttyname(fd[0])); + return 0; + } + sysfatal("no ptys"); return 0; } - diff --git a/src/cmd/9term/rcstart.c b/src/cmd/9term/rcstart.c index edf161c2..1aa46dce 100644 --- a/src/cmd/9term/rcstart.c +++ b/src/cmd/9term/rcstart.c @@ -24,7 +24,6 @@ sys(char *buf, int devnull) _exit(2); default: waitpid(); -fprint(2, "done waiting\n"); } } |