diff options
author | Remi Collet <remi@fedoraproject.org> | 2015-05-06 14:36:18 +0200 |
---|---|---|
committer | Remi Collet <remi@php.net> | 2015-05-06 15:16:43 +0200 |
commit | 9e0cc7a1d926c1364a834177cadea431cd8b39a7 (patch) | |
tree | f63c505073d6aa0b74bde71eb6a67e6e4c23d8bd /ext/zip/lib/zip_source_layered.c | |
parent | 31f516b4888fcf096fe0912828948bed84f2ad1c (diff) | |
download | php-git-9e0cc7a1d926c1364a834177cadea431cd8b39a7.tar.gz |
update libzip to version 1.0.1
Diffstat (limited to 'ext/zip/lib/zip_source_layered.c')
-rw-r--r-- | ext/zip/lib/zip_source_layered.c | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/ext/zip/lib/zip_source_layered.c b/ext/zip/lib/zip_source_layered.c index c53d4fa3da..94b3310109 100644 --- a/ext/zip/lib/zip_source_layered.c +++ b/ext/zip/lib/zip_source_layered.c @@ -1,6 +1,6 @@ /* zip_source_layered.c -- create layered source - Copyright (C) 2009 Dieter Baron and Thomas Klausner + Copyright (C) 2009-2014 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> @@ -17,7 +17,7 @@ 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 @@ -32,28 +32,38 @@ */ - #include <stdlib.h> #include "zipint.h" - -struct zip_source * -zip_source_layered(struct zip *za, struct zip_source *src, - zip_source_layered_callback cb, void *ud) +zip_source_t * +zip_source_layered(zip_t *za, zip_source_t *src, zip_source_layered_callback cb, void *ud) { - struct zip_source *zs; - if (za == NULL) - return NULL; + return NULL; + + return zip_source_layered_create(src, cb, ud, &za->error); +} - if ((zs=_zip_source_new(za)) == NULL) - return NULL; +zip_source_t * +zip_source_layered_create(zip_source_t *src, zip_source_layered_callback cb, void *ud, zip_error_t *error) +{ + zip_source_t *zs; + + if ((zs=_zip_source_new(error)) == NULL) + return NULL; + + zip_source_keep(src); zs->src = src; zs->cb.l = cb; zs->ud = ud; + zs->supports = cb(src, ud, NULL, 0, ZIP_SOURCE_SUPPORTS); + if (zs->supports < 0) { + zs->supports = ZIP_SOURCE_SUPPORTS_READABLE; + } + return zs; } |