diff options
author | Tom Smeding <tom@tomsmeding.com> | 2024-07-14 10:25:56 +0200 |
---|---|---|
committer | Tom Smeding <tom@tomsmeding.com> | 2024-07-14 10:25:56 +0200 |
commit | 1168c8ab426105bcd1b65aaf1f62c7a6144b0ae8 (patch) | |
tree | dd7d13be9988d234d9b3284b4bc88a9dd7f74d46 /src/io/lines.h | |
parent | 723828d1d473b70f77fa7878f855c2956ddcacc4 (diff) |
file_lines module, herschrijf omd ermee
Diffstat (limited to 'src/io/lines.h')
-rw-r--r-- | src/io/lines.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/io/lines.h b/src/io/lines.h new file mode 100644 index 0000000..b09b756 --- /dev/null +++ b/src/io/lines.h @@ -0,0 +1,25 @@ +#pragma once + +#include <stdio.h> +#include <stdbool.h> + +#include "util/string_view.h" + + +struct file_lines { + const char *progname, *fname; + + FILE *f; + size_t cap; + char *buffer; + size_t cursor; + size_t readfrom; // if -1, no newline in buffer +}; + +// Returns false on EOF. FILE remains ownership of the caller. +bool file_lines_open(const char *progname, const char *fname, FILE *f, struct file_lines *dst); + +// Returns whether successful +bool file_lines_read(struct file_lines *fl, struct string_view *dst); + +void file_lines_close(struct file_lines *fl); |