|
|
1.1 ! root 1: #include <X/mit-copyright.h> ! 2: ! 3: /* Copyright Massachusetts Institute of Technology 1984, 1985 */ ! 4: ! 5: /* buf.c */ ! 6: ! 7: #ifndef lint ! 8: static char *rcsid_buf_c = "$Header: buf.c,v 10.8 86/02/01 16:05:37 tony Rel $"; ! 9: #endif lint ! 10: ! 11: #include <stdio.h> ! 12: #include <errno.h> ! 13: #include <X/Xlib.h> ! 14: #include "ptyx.h" ! 15: #include <ctype.h> ! 16: ! 17: extern int errno; ! 18: extern int am_slave; ! 19: ! 20: /* ! 21: * If no input available, returns -1. Else, reads characters from ! 22: * trmbuf->fildes and puts them in the buffer, then returns first ! 23: * character read. ! 24: */ ! 25: fill(trmbuf) ! 26: register Buffer *trmbuf; ! 27: { ! 28: #ifdef JUMPSCROLL ! 29: extern Terminal term; ! 30: register Screen *screen = &term.screen; ! 31: ! 32: if (screen->scroll_amt) ! 33: FlushScroll(screen); ! 34: #endif JUMPSCROLL ! 35: trmbuf->ptr = &trmbuf->buf[0]; ! 36: trmbuf->cnt = read(trmbuf->fildes, trmbuf->ptr, BUF_SIZE); ! 37: ! 38: if (trmbuf->cnt == -1) { ! 39: if (errno != EWOULDBLOCK) { ! 40: if (errno == EIO && am_slave) exit(0); /* pty closed */ ! 41: else Panic("fill: read returned unexpected error (%d)\n", ! 42: errno); ! 43: } ! 44: return(-1); ! 45: } ! 46: ! 47: if (--trmbuf->cnt < 0) ! 48: Panic("fill: read returned %d\n", trmbuf->cnt+1); ! 49: return(*trmbuf->ptr++ & 0177); ! 50: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.