From 17222e95615eab116893d29a7fc78ea63b18f968 Mon Sep 17 00:00:00 2001 From: Viliam Mateicka Date: Tue, 20 Jan 2009 17:22:45 +0100 Subject: archiveapi: adding seeking support in zip archives --- src/archive/zip_plugin.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/archive/zip_plugin.c b/src/archive/zip_plugin.c index 1aa311065..d318adc06 100644 --- a/src/archive/zip_plugin.c +++ b/src/archive/zip_plugin.c @@ -111,8 +111,8 @@ zip_setup_stream(struct archive_file *file, struct input_stream *is) is->plugin = &zip_inputplugin; //insert back reference is->archive = context; - //we are not seekable - is->seekable = false; + //we are seekable (but its not recommendent to do so) + is->seekable = true; } @@ -163,6 +163,12 @@ static bool zip_is_seek(G_GNUC_UNUSED struct input_stream *is, G_GNUC_UNUSED off_t offset, G_GNUC_UNUSED int whence) { + zip_context *context = (zip_context *) is->archive; + zzip_off_t ofs = zzip_seek(context->file, offset, whence); + if (ofs != -1) { + is->offset = ofs; + return true; + } return false; } -- cgit v1.2.3