- use read instead of fgetc for input (works now on Mac OS X)
This commit is contained in:
@ -34,6 +34,18 @@ void sys_keys_off(void) {
|
||||
}
|
||||
}
|
||||
|
||||
static int getChar(void) {
|
||||
unsigned char c;
|
||||
int rt;
|
||||
|
||||
rt = read(STDIN_FILENO, &c, 1);
|
||||
if (rt<=0) {
|
||||
return EOF;
|
||||
} else {
|
||||
return c;
|
||||
}
|
||||
}
|
||||
|
||||
int sys_select_or_key(fd_set *mask, int msecTmo, int *key) {
|
||||
int fd, iret, fd1, chr;
|
||||
struct timeval tmo, tmo0={0,0};
|
||||
@ -47,8 +59,9 @@ int sys_select_or_key(fd_set *mask, int msecTmo, int *key) {
|
||||
perror("error in select");
|
||||
}
|
||||
fd1=STDIN_FILENO;
|
||||
chr=fgetc(stdin);
|
||||
if (chr==EOF && iret==0) {
|
||||
/* chr=fgetc(stdin); */
|
||||
chr = getChar();
|
||||
if (chr == EOF && iret==0) { /* */
|
||||
rmask=*mask;
|
||||
FD_SET(STDIN_FILENO, &rmask);
|
||||
if (msecTmo>=0) {
|
||||
@ -68,7 +81,8 @@ int sys_select_or_key(fd_set *mask, int msecTmo, int *key) {
|
||||
perror("error in select");
|
||||
}
|
||||
if (FD_ISSET(STDIN_FILENO, &rmask)) {
|
||||
chr=fgetc(stdin);
|
||||
chr = getChar();
|
||||
/* chr=fgetc(stdin); */
|
||||
}
|
||||
FD_CLR(STDIN_FILENO, &rmask);
|
||||
}
|
||||
|
Reference in New Issue
Block a user