mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-24 00:44:23 +00:00
Upload
Digital Research
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
|
||||
/*
|
||||
Copyright 1983
|
||||
Alcyon Corporation
|
||||
8716 Production Ave.
|
||||
San Diego, CA 92121
|
||||
|
||||
@(#) getchar.c - Sep 12, 1983 REGULUS 4.1
|
||||
*/
|
||||
|
||||
/* v6 getchar routine */
|
||||
|
||||
#define BSIZE 512
|
||||
|
||||
struct iob {
|
||||
int fd; /* file descriptor */
|
||||
int cc; /* char count */
|
||||
char *cp; /* ptr to next character */
|
||||
char cbuf[BSIZE]; /* char buffer */
|
||||
} fin;
|
||||
|
||||
getchar()
|
||||
{
|
||||
char c;
|
||||
register int i;
|
||||
|
||||
if (fin.fd == 0) {
|
||||
if (read(0,&c,1) <= 0 || c==4)
|
||||
return(0);
|
||||
i = c;
|
||||
return(i & 0xff);
|
||||
}
|
||||
if (fin.cc <= 0) {
|
||||
fin.cp = &(fin.cbuf[0]);
|
||||
fin.cc = read(fin.fd,fin.cp,BSIZE);
|
||||
}
|
||||
if (fin.cc <= 0)
|
||||
return(0);
|
||||
fin.cc--;
|
||||
i = *(fin.cp)++;
|
||||
return(i & 0xff);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user