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  | 
