--- libkml-1.3.0/src/kml/base/contrib/minizip/iomem_simple.h.orig	2018-12-18 13:58:42.418375500 +0300
+++ libkml-1.3.0/src/kml/base/contrib/minizip/iomem_simple.h	2018-12-18 14:00:58.606614700 +0300
@@ -35,13 +35,6 @@
 extern "C" {
 #endif
 
-typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode));
-typedef uLong  (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size));
-typedef uLong  (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
-typedef long   (ZCALLBACK *tell_file_func) OF((voidpf opaque, voidpf stream));
-typedef long   (ZCALLBACK *seek_file_func) OF((voidpf opaque, voidpf stream, uLong offset, int origin));
-typedef int    (ZCALLBACK *close_file_func) OF((voidpf opaque, voidpf stream));
-typedef int    (ZCALLBACK *testerror_file_func) OF((voidpf opaque, voidpf stream));
 /** KMR already defined in minizip/ioapi.h
 typedef struct zlib_filefunc_def_s
 {
