summaryrefslogtreecommitdiff
path: root/include/stream/file.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/stream/file.h')
-rw-r--r--include/stream/file.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/include/stream/file.h b/include/stream/file.h
new file mode 100644
index 00000000..c87ccf5d
--- /dev/null
+++ b/include/stream/file.h
@@ -0,0 +1,38 @@
+typedef struct fz_file_s fz_file;
+
+enum { FZ_READ, FZ_WRITE, FZ_APPEND };
+
+struct fz_file_s
+{
+ int mode; /* FZ_READ or FZ_WRITE */
+ int fd;
+ int depth;
+ fz_filter *filter;
+ fz_buffer *in;
+ fz_buffer *out;
+ fz_error *error;
+};
+
+fz_error *fz_openfile(fz_file **filep, char *path, int mode);
+fz_error *fz_openbuffer(fz_file **filep, fz_buffer *buf, int mode);
+fz_error *fz_pushfilter(fz_file *file, fz_filter *filter);
+void fz_popfilter(fz_file *file);
+void fz_closefile(fz_file *file);
+fz_error *fz_ferror(fz_file *f);
+
+int fz_seek(fz_file *f, int ofs, int whence);
+int fz_tell(fz_file *f);
+
+int fz_readbyte(fz_file *f);
+int fz_peekbyte(fz_file *f);
+int fz_readline(fz_file *f, char *buf, int n);
+int fz_read(fz_file *f, unsigned char *buf, int n);
+
+fz_error *fz_readfile(fz_buffer **bufp, fz_file *file);
+
+int fz_printstring(fz_file *f, char *s);
+int fz_printobj(fz_file *f, fz_obj *o, int tight);
+int fz_print(fz_file *f, char *fmt, ...);
+int fz_write(fz_file *f, unsigned char *buf, int n);
+int fz_flush(fz_file *f);
+