unzip applet by Laurence Anderson
----------------------------------------------------------------------
diff --git a/archival/libunarchive/unarchive.c b/archival/libunarchive/unarchive.c
index ff9b587..41be963 100644
--- a/archival/libunarchive/unarchive.c
+++ b/archival/libunarchive/unarchive.c
@@ -120,7 +120,8 @@
 						return NULL;
 					}
 					archive_offset += file_entry->size;
-					copy_file_chunk(src_stream, dst_stream, file_entry->size);			
+					if (file_entry->extract_func) file_entry->extract_func(src_stream, dst_stream);
+					else copy_file_chunk(src_stream, dst_stream, file_entry->size);			
 					fclose(dst_stream);
 				}
 				break;