Browse Source
- MFH: update to 0.9 (torrentzip support, files open only when necessary), windows fixes
PECL
- MFH: update to 0.9 (torrentzip support, files open only when necessary), windows fixes
PECL
15 changed files with 475 additions and 82 deletions
-
3ext/zip/config.w32
-
3ext/zip/lib/zip.h
-
188ext/zip/lib/zip_close.c
-
59ext/zip/lib/zip_dirent.c
-
4ext/zip/lib/zip_err_str.c
-
71ext/zip/lib/zip_filerange_crc.c
-
48ext/zip/lib/zip_get_archive_flag.c
-
23ext/zip/lib/zip_open.c
-
20ext/zip/lib/zip_rename.c
-
49ext/zip/lib/zip_set_archive_flag.c
-
17ext/zip/lib/zip_source_file.c
-
53ext/zip/lib/zip_source_filep.c
-
4ext/zip/lib/zip_source_zip.c
-
6ext/zip/lib/zip_unchange_archive.c
-
9ext/zip/lib/zipint.h
@ -0,0 +1,71 @@ |
|||
/* |
|||
zip_filerange_crc.c -- compute CRC32 for a range of a file |
|||
Copyright (C) 2008 Dieter Baron and Thomas Klausner |
|||
|
|||
This file is part of libzip, a library to manipulate ZIP archives. |
|||
The authors can be contacted at <libzip@nih.at> |
|||
|
|||
Redistribution and use in source and binary forms, with or without |
|||
modification, are permitted provided that the following conditions |
|||
are met: |
|||
1. Redistributions of source code must retain the above copyright |
|||
notice, this list of conditions and the following disclaimer. |
|||
2. Redistributions in binary form must reproduce the above copyright |
|||
notice, this list of conditions and the following disclaimer in |
|||
the documentation and/or other materials provided with the |
|||
distribution. |
|||
3. The names of the authors may not be used to endorse or promote |
|||
products derived from this software without specific prior |
|||
written permission. |
|||
|
|||
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS |
|||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY |
|||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
|||
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
|||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER |
|||
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
|||
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN |
|||
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|||
*/ |
|||
|
|||
|
|||
|
|||
#include <stdio.h> |
|||
#include <errno.h> |
|||
|
|||
#include "zipint.h" |
|||
|
|||
|
|||
|
|||
|
|||
int |
|||
_zip_filerange_crc(FILE *fp, off_t start, off_t len, uLong *crcp, |
|||
struct zip_error *errp) |
|||
{ |
|||
Bytef buf[BUFSIZE]; |
|||
size_t n; |
|||
|
|||
*crcp = crc32(0L, Z_NULL, 0); |
|||
|
|||
if (fseeko(fp, start, SEEK_SET) != 0) { |
|||
_zip_error_set(errp, ZIP_ER_SEEK, errno); |
|||
return -1; |
|||
} |
|||
|
|||
while (len > 0) { |
|||
n = len > BUFSIZE ? BUFSIZE : len; |
|||
if ((n=fread(buf, 1, n, fp)) <= 0) { |
|||
_zip_error_set(errp, ZIP_ER_READ, errno); |
|||
return -1; |
|||
} |
|||
|
|||
*crcp = crc32(*crcp, buf, n); |
|||
|
|||
len-= n; |
|||
} |
|||
|
|||
return 0; |
|||
} |
|||
@ -0,0 +1,48 @@ |
|||
/* |
|||
zip_get_archive_flag.c -- get archive global flag |
|||
Copyright (C) 2008 Dieter Baron and Thomas Klausner |
|||
|
|||
This file is part of libzip, a library to manipulate ZIP archives. |
|||
The authors can be contacted at <libzip@nih.at> |
|||
|
|||
Redistribution and use in source and binary forms, with or without |
|||
modification, are permitted provided that the following conditions |
|||
are met: |
|||
1. Redistributions of source code must retain the above copyright |
|||
notice, this list of conditions and the following disclaimer. |
|||
2. Redistributions in binary form must reproduce the above copyright |
|||
notice, this list of conditions and the following disclaimer in |
|||
the documentation and/or other materials provided with the |
|||
distribution. |
|||
3. The names of the authors may not be used to endorse or promote |
|||
products derived from this software without specific prior |
|||
written permission. |
|||
|
|||
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS |
|||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY |
|||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
|||
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
|||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER |
|||
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
|||
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN |
|||
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|||
*/ |
|||
|
|||
|
|||
|
|||
#include "zipint.h" |
|||
|
|||
|
|||
|
|||
ZIP_EXTERN(int) |
|||
zip_get_archive_flag(struct zip *za, int flag, int flags) |
|||
{ |
|||
int fl; |
|||
|
|||
fl = (flags & ZIP_FL_UNCHANGED) ? za->flags : za->ch_flags; |
|||
|
|||
return (fl & flag) ? 1 : 0; |
|||
} |
|||
@ -0,0 +1,49 @@ |
|||
/* |
|||
zip_get_archive_flag.c -- set archive global flag |
|||
Copyright (C) 2008 Dieter Baron and Thomas Klausner |
|||
|
|||
This file is part of libzip, a library to manipulate ZIP archives. |
|||
The authors can be contacted at <libzip@nih.at> |
|||
|
|||
Redistribution and use in source and binary forms, with or without |
|||
modification, are permitted provided that the following conditions |
|||
are met: |
|||
1. Redistributions of source code must retain the above copyright |
|||
notice, this list of conditions and the following disclaimer. |
|||
2. Redistributions in binary form must reproduce the above copyright |
|||
notice, this list of conditions and the following disclaimer in |
|||
the documentation and/or other materials provided with the |
|||
distribution. |
|||
3. The names of the authors may not be used to endorse or promote |
|||
products derived from this software without specific prior |
|||
written permission. |
|||
|
|||
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS |
|||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY |
|||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
|||
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
|||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER |
|||
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
|||
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN |
|||
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|||
*/ |
|||
|
|||
|
|||
|
|||
#include "zipint.h" |
|||
|
|||
|
|||
|
|||
ZIP_EXTERN(int) |
|||
zip_set_archive_flag(struct zip *za, int flag, int value) |
|||
{ |
|||
if (value) |
|||
za->ch_flags |= flag; |
|||
else |
|||
za->ch_flags &= ~flag; |
|||
|
|||
return 0; |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue