home *** CD-ROM | disk | FTP | other *** search
- /* INKEY_ -- read a character from terminal (if available) with no echo
-
- Copyright (c) 1984 by JMI Software Consultants, Inc.
- */
- #include "bio.h"
-
- TEXT *INKEY_(ss)
- FAST TEXT **ss;
- {
- IMPORT BF **bfiles;
- IMPORT INT rr_inkey, strlpfx;
- IMPORT COUNT brd_slot;
- EXFUNC TEXT *s_new();
- TEXT c;
- COUNT x, n;
- BF *bf;
-
- bf = bfiles[sf_IN];
- if (--bf->bf_count < 0)
- {
- bf->bf_count = 0;
- x = rawread(sf_IN, &c, 1, rr_inkey);
- if (x > 0)
- {
- n = ((int)c) ? 1 : 2;
- *ss = s_new(*ss, n);
- *(*ss + strlpfx) = c;
- if (n == 2)
- {
- rawread(sf_IN, &c, 1, rr_inkey);
- *(*ss + strlpfx + 1) = c;
- }
- }
- else
- *ss = s_new(*ss, 0);
- }
- else
- {
- *ss = s_new(*ss, 1);
- *(*ss + strlpfx) = *bf->bf_bufptr++;
- }
- return (*ss);
- }