From: Ben Pfaff Date: Sun, 16 Jul 2017 03:41:08 +0000 (-0700) Subject: zip-reader: New function zip_reader_get_member_name(). X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pspp;a=commitdiff_plain;h=62b7d6a20be776ebd070d9c3fc9f62e5a541b71b zip-reader: New function zip_reader_get_member_name(). This allows the caller to obtain a list of .zip members. --- diff --git a/src/libpspp/zip-reader.c b/src/libpspp/zip-reader.c index f9a24cf717..b84a411fe0 100644 --- a/src/libpspp/zip-reader.c +++ b/src/libpspp/zip-reader.c @@ -372,6 +372,12 @@ zip_entry_find (struct zip_reader *zr, const char *member) return NULL; } +const char * +zip_reader_get_member_name(const struct zip_reader *zr, size_t idx) +{ + return idx < zr->n_entries ? zr->entries[idx].name : 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 842864143d..225c5fecc5 100644 --- a/src/libpspp/zip-reader.h +++ b/src/libpspp/zip-reader.h @@ -31,6 +31,11 @@ struct zip_reader *zip_reader_create (const char *filename, struct string *errs) /* Destroy the zip reader */ void zip_reader_destroy (struct zip_reader *zr); +/* Returns the name of ZR's member IDX, IDX >= 0. Returns NULL if ZR has fewer + than (IDX + 1) members. */ +const char *zip_reader_get_member_name(const struct zip_reader *zr, + size_t idx); + /* Return the zip member in the reader ZR, called MEMBER */ struct zip_member *zip_member_open (struct zip_reader *zr, const char *member); @@ -41,4 +46,5 @@ int zip_member_read (struct zip_member *zm, void *buf, size_t n); void zip_member_finish (struct zip_member *zm); + #endif