diff --git a/src/posix.c b/src/posix.c index e026480e..45dbf0aa 100644 --- a/src/posix.c +++ b/src/posix.c @@ -112,8 +112,9 @@ SCM read_char (SCM port) /*:((arity . n)) */ { int fd = __stdin; - if (TYPE (port) == TPAIR && TYPE (car (port)) == TNUMBER) - __stdin = VALUE (CAR (port)); + if (TYPE (port) == TPAIR) + if (TYPE (CAR (port)) == TNUMBER) + __stdin = VALUE (CAR (port)); SCM c = make_char (readchar ()); __stdin = fd; return c;