-/* Return the zip member in the reader ZR, called MEMBER */
-struct zip_member *zip_member_open (struct zip_reader *zr, const char *member);
+/* Opens the zip member named MEMBER in ZR. If successful, stores the new
+ zip_member in *ZMP and returns NULL; on error, returns an error message that
+ the caller must free and stores NULL in *ZMP. */
+char *zip_member_open (struct zip_reader *zr, const char *member,
+ struct zip_member **zmp) WARN_UNUSED_RESULT;