| #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" |
| |
| 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) |
| { |
| return 0; |
| } |
| |