aboutsummaryrefslogtreecommitdiff
path: root/archive/hgewin/ZLIB/ioapi.c
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2015-10-26 22:52:36 +0800
committerGravatar Chris Xiong <chirs241097@gmail.com> 2015-10-26 22:52:36 +0800
commit3bd383baf6a17e734329e1fc677c7e86283db772 (patch)
tree69a9148087577f797624ceb9c71323a2563d6bb4 /archive/hgewin/ZLIB/ioapi.c
parent543e4f570be9b279ba558ca61cc02cda251af384 (diff)
downloadbullet-lab-remix-3bd383baf6a17e734329e1fc677c7e86283db772.tar.xz
Added support for relative line numbers.
Added instructions for, brk and cont. (They are still untested...) Parser code cleanup. Removed garbage output to stderr. Reorganize the repository structure. Updated BLR2 code move it into archive. Added BLR1 files.
Diffstat (limited to 'archive/hgewin/ZLIB/ioapi.c')
-rw-r--r--archive/hgewin/ZLIB/ioapi.c107
1 files changed, 107 insertions, 0 deletions
diff --git a/archive/hgewin/ZLIB/ioapi.c b/archive/hgewin/ZLIB/ioapi.c
new file mode 100644
index 0000000..9ac1985
--- /dev/null
+++ b/archive/hgewin/ZLIB/ioapi.c
@@ -0,0 +1,107 @@
+/* ioapi.c -- IO base function header for compress/uncompress .zip
+files using zlib + zip or unzip API
+
+Version 1.01, May 8th, 2004
+
+Copyright (C) 1998-2004 Gilles Vollant
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "zlib.h"
+#include "ioapi.h"
+
+
+void *ZCALLBACK fopen_file_func(void *opaque, const char *filename, int mode)
+{
+ FILE *file = NULL;
+
+ const char *mode_fopen = NULL;
+
+ if ((mode &ZLIB_FILEFUNC_MODE_READWRITEFILTER) == ZLIB_FILEFUNC_MODE_READ)
+ {
+ mode_fopen = "rb";
+ }
+ else
+ {
+ if (mode &ZLIB_FILEFUNC_MODE_EXISTING)
+ {
+ mode_fopen = "r+b";
+ }
+ else
+ {
+ if (mode &ZLIB_FILEFUNC_MODE_CREATE)
+ {
+ mode_fopen = "wb";
+ }
+ }
+ }
+
+ if ((filename != NULL) && (mode_fopen != NULL))
+ {
+ file = fopen(filename, mode_fopen);
+ }
+ return file;
+}
+
+//-------------------------------------------------------------------------
+
+
+DWORD ZCALLBACK fread_file_func(void *opaque, void *stream, void *buf, DWORD size)
+{
+ return fread(buf, 1, (size_t)size, (FILE*)stream);
+}
+
+//-------------------------------------------------------------------------
+
+
+DWORD ZCALLBACK fwrite_file_func(void *opaque, void *stream, const void *buf, DWORD size)
+{
+ return fwrite(buf, 1, (size_t)size, (FILE*)stream);
+}
+
+//-------------------------------------------------------------------------
+
+long ZCALLBACK ftell_file_func(void *opaque, void *stream)
+{
+ return ftell((FILE*)stream);
+}
+
+//-------------------------------------------------------------------------
+
+long ZCALLBACK fseek_file_func(void *opaque, void *stream, DWORD offset, int origin)
+{
+ fseek((FILE*)stream, offset, origin);
+
+ return 0;
+}
+
+//-------------------------------------------------------------------------
+
+int ZCALLBACK fclose_file_func(void *opaque, void *stream)
+{
+ return fclose((FILE*)stream);
+}
+
+//-------------------------------------------------------------------------
+
+int ZCALLBACK ferror_file_func(void *opaque, void *stream)
+{
+ return ferror((FILE*)stream);
+}
+
+//-------------------------------------------------------------------------
+
+void fill_fopen_filefunc(zlib_filefunc_def *pzlib_filefunc_def)
+{
+ pzlib_filefunc_def->zopen_file = fopen_file_func;
+ pzlib_filefunc_def->zread_file = fread_file_func;
+ pzlib_filefunc_def->zwrite_file = fwrite_file_func;
+ pzlib_filefunc_def->ztell_file = ftell_file_func;
+ pzlib_filefunc_def->zseek_file = fseek_file_func;
+ pzlib_filefunc_def->zclose_file = fclose_file_func;
+ pzlib_filefunc_def->zerror_file = ferror_file_func;
+ pzlib_filefunc_def->opaque = NULL;
+}