summaryrefslogtreecommitdiff
path: root/ext/zip/lib/zip_get_num_entries.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2013-12-15 16:55:29 +0800
committerXinchen Hui <laruence@gmail.com>2013-12-15 16:55:29 +0800
commit5eb8d9d70009c0bf9bfbbf511f2713e64dc8ee83 (patch)
tree2480a26e79d85b4b7f2eacb5a2187eb13f029094 /ext/zip/lib/zip_get_num_entries.c
parent10964b78548a5878254f5aa75f4cfdcedb0543bc (diff)
parent904721189ff949c67795ec418f04b67951cbd57b (diff)
downloadphp-git-5eb8d9d70009c0bf9bfbbf511f2713e64dc8ee83.tar.gz
Merge branch 'PHP-5.6' of https://git.php.net/push/php-src into PHP-5.6
Diffstat (limited to 'ext/zip/lib/zip_get_num_entries.c')
-rw-r--r--ext/zip/lib/zip_get_num_entries.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/ext/zip/lib/zip_get_num_entries.c b/ext/zip/lib/zip_get_num_entries.c
index dd392e9095..26484baff2 100644
--- a/ext/zip/lib/zip_get_num_entries.c
+++ b/ext/zip/lib/zip_get_num_entries.c
@@ -37,16 +37,19 @@
-ZIP_EXTERN(zip_uint64_t)
-zip_get_num_entries(struct zip *za, int flags)
+ZIP_EXTERN zip_int64_t
+zip_get_num_entries(struct zip *za, zip_flags_t flags)
{
+ zip_uint64_t n;
+
if (za == NULL)
return -1;
if (flags & ZIP_FL_UNCHANGED) {
- if (za->cdir == NULL)
- return 0;
- return za->cdir->nentry;
+ n = za->nentry;
+ while (n>0 && za->entry[n-1].orig == NULL)
+ --n;
+ return (zip_int64_t)n;
}
- return za->nentry;
+ return (zip_int64_t)za->nentry;
}