From 1abd7f599dd0d773add0a98fa3b612bc15aaf422 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 24 Dec 2018 20:53:09 -0800 Subject: [PATCH] zip-reader: New function zip_reader_contains_member(). This function will have its first user in an upcoming commit. --- src/libpspp/zip-reader.c | 9 ++++++++- src/libpspp/zip-reader.h | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/libpspp/zip-reader.c b/src/libpspp/zip-reader.c index d46af3415f..6c7c4e41bc 100644 --- a/src/libpspp/zip-reader.c +++ b/src/libpspp/zip-reader.c @@ -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) diff --git a/src/libpspp/zip-reader.h b/src/libpspp/zip-reader.h index 7293aba318..6a65f58c1c 100644 --- a/src/libpspp/zip-reader.h +++ b/src/libpspp/zip-reader.h @@ -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); -- 2.30.2