summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--stream.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/stream.c b/stream.c
index 20cf1e14..5a74bdc6 100644
--- a/stream.c
+++ b/stream.c
@@ -1720,9 +1720,10 @@ static val cat_get_line(val stream)
val line = get_line(fs);
if (line)
return line;
- close_stream(fs, t);
- if ((streams = rest(streams)) != nil)
+ if ((streams = rest(streams)) != nil) {
+ close_stream(fs, t);
set(mkloc(s->streams, stream), streams);
+ }
}
return nil;
@@ -1738,9 +1739,10 @@ static val cat_get_char(val stream)
val ch = get_char(fs);
if (ch)
return ch;
- close_stream(fs, t);
- if ((streams = rest(streams)) != nil)
+ if ((streams = rest(streams)) != nil) {
+ close_stream(fs, t);
set(mkloc(s->streams, stream), streams);
+ }
}
return nil;
@@ -1756,9 +1758,10 @@ static val cat_get_byte(val stream)
val byte = get_byte(fs);
if (byte)
return byte;
- close_stream(fs, t);
- if ((streams = rest(streams)) != nil)
+ if ((streams = rest(streams)) != nil) {
+ close_stream(fs, t);
set(mkloc(s->streams, stream), streams);
+ }
}
return nil;