1*11488Sralph /* rawchar.c 4.1 83/03/09 */ 2*11488Sralph /* 3*11488Sralph * get a character from the terminal, with no line buffering. 4*11488Sralph */ 5*11488Sralph 6*11488Sralph #include "2648.h" 7*11488Sralph 8*11488Sralph rawchar() 9*11488Sralph { 10*11488Sralph char c; 11*11488Sralph 12*11488Sralph sync(); 13*11488Sralph escseq(NONE); 14*11488Sralph fflush(stdout); 15*11488Sralph if (_pb_front && _on2648) { 16*11488Sralph c = *_pb_front++; 17*11488Sralph #ifdef TRACE 18*11488Sralph if (trace) 19*11488Sralph fprintf(trace, "%s from queue, front=%d, back=%d\n", rdchar(c), _pb_front-_pushback, _pb_back-_pushback); 20*11488Sralph #endif 21*11488Sralph if (_pb_front > _pb_back) { 22*11488Sralph _pb_front = _pb_back = NULL; 23*11488Sralph #ifdef TRACE 24*11488Sralph if (trace) 25*11488Sralph fprintf(trace, "reset pushback to null\n"); 26*11488Sralph #endif 27*11488Sralph } 28*11488Sralph return (c); 29*11488Sralph } 30*11488Sralph _outcount = 0; 31*11488Sralph c = getchar(); 32*11488Sralph #ifdef TRACE 33*11488Sralph if (trace) 34*11488Sralph fprintf(trace, "rawchar '%s'\n", rdchar(c)); 35*11488Sralph #endif 36*11488Sralph return (c); 37*11488Sralph } 38