From 0bc8c0c1da4490aad502dddbbc7c60564c4083a7 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 16 Dec 2009 16:28:26 +0100 Subject: archive_plugin: wrap method calls Make archive_file a "real" struct, extended by all plugins. Add the plugin pointer to it. Wrap all method calls in functions. --- src/archive/bz2_archive_plugin.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/archive/bz2_archive_plugin.c') diff --git a/src/archive/bz2_archive_plugin.c b/src/archive/bz2_archive_plugin.c index 766c558e..e8e5c556 100644 --- a/src/archive/bz2_archive_plugin.c +++ b/src/archive/bz2_archive_plugin.c @@ -40,6 +40,8 @@ #define BZ_BUFSIZE 5000 struct bz2_archive_file { + struct archive_file base; + char *name; bool reset; struct input_stream istream; @@ -102,6 +104,7 @@ bz2_open(const char *pathname) int len; context = g_malloc(sizeof(*context)); + archive_file_init(&context->base, &bz2_archive_plugin); //open archive if (!input_stream_open(&context->istream, pathname, NULL)) { @@ -118,7 +121,7 @@ bz2_open(const char *pathname) context->name[len - 4] = 0; //remove .bz2 suffix } - return (struct archive_file *) context; + return &context->base; } static void -- cgit v1.2.3