Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(305)

Side by Side Diff: third_party/zlib/contrib/minizip/ioapi.c

Issue 8873039: Add an API to unpack Zip files directly from and to file descriptors. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Lint fixes. Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* ioapi.h -- IO base function header for compress/uncompress .zip 1 /* ioapi.h -- IO base function header for compress/uncompress .zip
2 part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) 2 part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
3 3
4 Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage. com/zLibDll/minizip.html ) 4 Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage. com/zLibDll/minizip.html )
5 5
6 Modifications for Zip64 support 6 Modifications for Zip64 support
7 Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) 7 Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
8 8
9 For more info read MiniZip_info.txt 9 For more info read MiniZip_info.txt
10 10
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 mode_fopen = "r+b"; 109 mode_fopen = "r+b";
110 else 110 else
111 if (mode & ZLIB_FILEFUNC_MODE_CREATE) 111 if (mode & ZLIB_FILEFUNC_MODE_CREATE)
112 mode_fopen = "wb"; 112 mode_fopen = "wb";
113 113
114 if ((filename!=NULL) && (mode_fopen != NULL)) 114 if ((filename!=NULL) && (mode_fopen != NULL))
115 file = fopen64((const char*)filename, mode_fopen); 115 file = fopen64((const char*)filename, mode_fopen);
116 return file; 116 return file;
117 } 117 }
118 118
119 // Google
120 voidpf ZCALLBACK fdopen_file_func (opaque, filename, mode)
121 voidpf opaque;
122 const char* filename;
123 int mode;
124 {
125 FILE* file = NULL;
126 const char* mode_fopen = NULL;
127 if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
128 mode_fopen = "rb";
129 else
130 if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
131 mode_fopen = "r+b";
132 else
133 if (mode & ZLIB_FILEFUNC_MODE_CREATE)
134 mode_fopen = "wb";
135
136 if ((filename!=NULL) && (mode_fopen != NULL))
137 file = fdopen(*(int*)opaque, mode_fopen);
138 return file;
139 }
140
119 141
120 static uLong ZCALLBACK fread_file_func (voidpf opaque, voidpf stream, void* buf, uLong size) 142 static uLong ZCALLBACK fread_file_func (voidpf opaque, voidpf stream, void* buf, uLong size)
121 { 143 {
122 uLong ret; 144 uLong ret;
123 ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream); 145 ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);
124 return ret; 146 return ret;
125 } 147 }
126 148
127 static uLong ZCALLBACK fwrite_file_func (voidpf opaque, voidpf stream, const voi d* buf, uLong size) 149 static uLong ZCALLBACK fwrite_file_func (voidpf opaque, voidpf stream, const voi d* buf, uLong size)
128 { 150 {
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 { 248 {
227 pzlib_filefunc_def->zopen64_file = fopen64_file_func; 249 pzlib_filefunc_def->zopen64_file = fopen64_file_func;
228 pzlib_filefunc_def->zread_file = fread_file_func; 250 pzlib_filefunc_def->zread_file = fread_file_func;
229 pzlib_filefunc_def->zwrite_file = fwrite_file_func; 251 pzlib_filefunc_def->zwrite_file = fwrite_file_func;
230 pzlib_filefunc_def->ztell64_file = ftell64_file_func; 252 pzlib_filefunc_def->ztell64_file = ftell64_file_func;
231 pzlib_filefunc_def->zseek64_file = fseek64_file_func; 253 pzlib_filefunc_def->zseek64_file = fseek64_file_func;
232 pzlib_filefunc_def->zclose_file = fclose_file_func; 254 pzlib_filefunc_def->zclose_file = fclose_file_func;
233 pzlib_filefunc_def->zerror_file = ferror_file_func; 255 pzlib_filefunc_def->zerror_file = ferror_file_func;
234 pzlib_filefunc_def->opaque = NULL; 256 pzlib_filefunc_def->opaque = NULL;
235 } 257 }
258
259 // Google
260 void fill_fdopen_filefunc (zlib_filefunc_def* pzlib_filefunc_def, int fd)
261 {
262 fill_fopen_filefunc(pzlib_filefunc_def);
263 pzlib_filefunc_def->zopen_file = fdopen_file_func;
264 int *ptr_fd = malloc(sizeof(int));
265 *ptr_fd = fd;
266 pzlib_filefunc_def->opaque = ptr_fd;
267 }
OLDNEW
« chrome/common/zip_reader_unittest.cc ('K') | « third_party/zlib/contrib/minizip/ioapi.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698