diff --git a/main.c b/main.c index 98f2878..4f69209 100644 --- a/main.c +++ b/main.c @@ -20,14 +20,18 @@ int main(void) { - stream_t stream = {0}; - // const char data[] = "Hello, world!"; - // const sv_t sv = SV(data, ARRSIZE(data) - 1); + stream_t stream = {0}; + const char data[] = "Hello, world!"; + const sv_t sv = SV(data, ARRSIZE(data) - 1); + char filename[] = "test.txt"; + // stream_init_string(&stream, NULL, sv); - // stream_init_file(&stream, "test.txt"); + // FILE *fp = fopen(filename, "rb"); + // stream_init_file(&stream, filename, fp); stream_init_file(&stream, "stdin", stdin); + printf("[debug]: setup stream pipe\n"); do { @@ -36,5 +40,6 @@ int main(void) } while (!stream_eoc(&stream)); printf("%lu/%lu\n", stream.position, stream_size(&stream)); stream_stop(&stream); + // fclose(fp); return 0; } diff --git a/stream.c b/stream.c index a7fb72e..5013e3f 100644 --- a/stream.c +++ b/stream.c @@ -142,7 +142,9 @@ char stream_next(stream_t *stream) char stream_peek(stream_t *stream) { - if (stream_eos(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)) return '\0'; switch (stream->type)