From 77b33d6a3cdc2655fa0319a2c5a077eb709cb6aa Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 15 Jan 2021 19:27:25 -0800 Subject: Renaming files: printing->print, file_loader->files --- files.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 files.h (limited to 'files.h') diff --git a/files.h b/files.h new file mode 100644 index 0000000..cee341c --- /dev/null +++ b/files.h @@ -0,0 +1,38 @@ +// +// files.h - Definitions of an API for loading files. +// +#ifndef FILES__H +#define FILES__H + +#include + +struct allocated_pat_s; // declared in types.h + +typedef struct file_s { + struct file_s *next; + const char *filename; + char *contents, **lines, *end; + size_t nlines; + struct allocated_pat_s *pats; + unsigned int mmapped:1; +} file_t; + +__attribute__((format(printf,2,3))) +file_t *load_file(file_t **files, const char *fmt, ...); +__attribute__((nonnull(3), returns_nonnull)) +file_t *spoof_file(file_t **files, const char *filename, const char *text); +__attribute__((nonnull)) +void intern_file(file_t *f); +__attribute__((nonnull)) +void destroy_file(file_t **f); +__attribute__((pure, nonnull)) +size_t get_line_number(file_t *f, const char *p); +__attribute__((pure, nonnull)) +size_t get_char_number(file_t *f, const char *p); +__attribute__((pure, nonnull)) +const char *get_line(file_t *f, size_t line_number); +__attribute__((nonnull(1,2,3), format(printf,5,6))) +void fprint_line(FILE *dest, file_t *f, const char *start, const char *end, const char *fmt, ...); + +#endif +// vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1 -- cgit v1.2.3