date and time created 83/03/09 16:23:09 by ralph
authorRalph Campbell <ralph@ucbvax.Berkeley.EDU>
Thu, 10 Mar 1983 08:23:09 +0000 (00:23 -0800)
committerRalph Campbell <ralph@ucbvax.Berkeley.EDU>
Thu, 10 Mar 1983 08:23:09 +0000 (00:23 -0800)
SCCS-vsn: old/lib2648/rawchar.c 4.1

usr/src/old/lib2648/rawchar.c [new file with mode: 0644]

diff --git a/usr/src/old/lib2648/rawchar.c b/usr/src/old/lib2648/rawchar.c
new file mode 100644 (file)
index 0000000..73f40e8
--- /dev/null
@@ -0,0 +1,37 @@
+/*     rawchar.c       4.1     83/03/09        */
+/*
+ * get a character from the terminal, with no line buffering.
+ */
+
+#include "2648.h"
+
+rawchar()
+{
+       char c;
+
+       sync();
+       escseq(NONE);
+       fflush(stdout);
+       if (_pb_front && _on2648) {
+               c = *_pb_front++;
+#ifdef TRACE
+               if (trace)
+                       fprintf(trace, "%s from queue, front=%d, back=%d\n", rdchar(c), _pb_front-_pushback, _pb_back-_pushback);
+#endif
+               if (_pb_front > _pb_back) {
+                       _pb_front = _pb_back = NULL;
+#ifdef TRACE
+                       if (trace)
+                               fprintf(trace, "reset pushback to null\n");
+#endif
+               }
+               return (c);
+       }
+       _outcount = 0;
+       c = getchar();
+#ifdef TRACE
+       if (trace)
+               fprintf(trace, "rawchar '%s'\n", rdchar(c));
+#endif
+       return (c);
+}