diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-08-29 20:03:43 +0100 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-08-29 20:03:43 +0100 |
commit | fadbbd892794e0298696f890d69ae72fcfdb4f85 (patch) | |
tree | 9bbba03b2aee17277ed7e480868a7ff21ab979b5 | |
parent | b403368d113197ee3e0d690b31cef4d9b85b3272 (diff) | |
download | alisp-fadbbd892794e0298696f890d69ae72fcfdb4f85.tar.gz alisp-fadbbd892794e0298696f890d69ae72fcfdb4f85.tar.bz2 alisp-fadbbd892794e0298696f890d69ae72fcfdb4f85.zip |
make eoc also check feof on STREAM_TYPE_FILE
-rw-r--r-- | stream.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -101,7 +101,8 @@ bool stream_eoc(stream_t *stream) case STREAM_TYPE_STRING: return stream->position >= stream->string.size; case STREAM_TYPE_FILE: - return stream->position >= stream->pipe.cache.size; + return feof(stream->pipe.file) && + stream->position >= stream->pipe.cache.size; default: FAIL("Unreachable"); return 0; @@ -144,7 +145,7 @@ char stream_peek(stream_t *stream) { // If we've reached end of stream, and end of content, there's really nothing // to check here. - if (stream_eoc(stream) && stream_eos(stream)) + if (stream_eoc(stream)) return '\0'; switch (stream->type) @@ -188,7 +189,7 @@ bool stream_seek(stream_t *stream, i64 offset) bool stream_seek_forward(stream_t *stream, u64 offset) { - if (stream_eos(stream) && stream_eoc(stream)) + if (stream_eoc(stream)) return false; switch (stream->type) @@ -242,7 +243,7 @@ bool stream_seek_backward(stream_t *stream, u64 offset) sv_t stream_substr(stream_t *stream, u64 size) { - if (stream_eos(stream) && stream_eoc(stream)) + if (stream_eoc(stream)) return SV(NULL, 0); // TODO: this is kinda disgusting, any better way of doing this |