aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.c13
-rw-r--r--stream.c4
2 files changed, 12 insertions, 5 deletions
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)