zip-reader: New function zip_reader_contains_member().
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 25 Dec 2018 04:53:09 +0000 (20:53 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Sun, 10 Feb 2019 00:00:47 +0000 (16:00 -0800)
This function will have its first user in an upcoming commit.

src/libpspp/zip-reader.c
src/libpspp/zip-reader.h

index d46af3415f14f7cd425d2dee921a20b8d23bf1bb..6c7c4e41bccec78651c87c33312e84ac527b344f 100644 (file)
@@ -407,7 +407,7 @@ zip_reader_create (const char *file_name, struct string *errs)
 }
 
 static struct zip_entry *
-zip_entry_find (struct zip_reader *zr, const char *member)
+zip_entry_find (const struct zip_reader *zr, const char *member)
 {
   for (int i = 0; i < zr->n_entries; ++i)
     {
@@ -424,6 +424,13 @@ zip_reader_get_member_name(const struct zip_reader *zr, size_t idx)
   return idx < zr->n_entries ? zr->entries[idx].name : NULL;
 }
 
+/* Returns true if ZR contains a member named MEMBER, false otherwise. */
+bool
+zip_reader_contains_member (const struct zip_reader *zr, const char *member)
+{
+  return zip_entry_find (zr, member) != NULL;
+}
+
 /* Return the member called MEMBER from the reader ZR  */
 struct zip_member *
 zip_member_open (struct zip_reader *zr, const char *member)
index 7293aba3185ff18383d08bf14b5e951327daaa3e..6a65f58c1c95f13d8b7345662f33f796663483dd 100644 (file)
@@ -36,6 +36,10 @@ void zip_reader_destroy (struct zip_reader *zr);
 const char *zip_reader_get_member_name(const struct zip_reader *zr,
                                        size_t idx);
 
+/* Returns true if ZR contains a member named MEMBER, false otherwise. */
+bool zip_reader_contains_member (const struct zip_reader *zr,
+                                 const char *member);
+
 /* Return the zip member in the reader ZR, called MEMBER */
 struct zip_member *zip_member_open (struct zip_reader *zr, const char *member);