From 2af69f4135253573ccc3a14f0cb9555bdba6ac3b Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Tue, 24 Nov 2009 13:02:05 +0100 Subject: [PATCH] Fix GZlibCompressorFormat names What used to be called RAW is really the zlib header format. There is a real "raw" format, so rename the default and add a RAW type. --- gio/gioenums.h | 8 +++++--- gio/gzlibcompressor.c | 12 ++++++++++-- gio/gzlibdecompressor.c | 9 +++++++-- gio/tests/filter-cat.c | 4 ++-- 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/gio/gioenums.h b/gio/gioenums.h index 2c9433ea..09d2393a 100644 --- a/gio/gioenums.h +++ b/gio/gioenums.h @@ -675,8 +675,9 @@ typedef enum { /** * GZlibCompressorFormat: - * @G_ZLIB_COMRESSOR_FORMAT_RAW: Raw zlib compression data + * @G_ZLIB_COMRESSOR_FORMAT_ZLIB: deflate compression with zlib header * @G_ZLIB_COMRESSOR_FORMAT_GZIP: gzip file format + * @G_ZLIB_COMRESSOR_FORMAT_RAW: deflate compression with no header * * Used to select the type of data format to use for #GZlibDecompressor * and #GZlibCompressor. @@ -684,8 +685,9 @@ typedef enum { * Since: 2.24 */ typedef enum { - G_ZLIB_COMPRESSOR_FORMAT_RAW, - G_ZLIB_COMPRESSOR_FORMAT_GZIP + G_ZLIB_COMPRESSOR_FORMAT_ZLIB, + G_ZLIB_COMPRESSOR_FORMAT_GZIP, + G_ZLIB_COMPRESSOR_FORMAT_RAW } GZlibCompressorFormat; G_END_DECLS diff --git a/gio/gzlibcompressor.c b/gio/gzlibcompressor.c index 20fd8ff0..4c722e2a 100644 --- a/gio/gzlibcompressor.c +++ b/gio/gzlibcompressor.c @@ -157,7 +157,15 @@ g_zlib_compressor_constructed (GObject *object) MAX_WBITS + 16, 8, Z_DEFAULT_STRATEGY); } - else + else if (compressor->format == G_ZLIB_COMPRESSOR_FORMAT_RAW) + { + /* negative wbits for raw */ + res = deflateInit2 (&compressor->zstream, + compressor->level, Z_DEFLATED, + -MAX_WBITS, 8, + Z_DEFAULT_STRATEGY); + } + else /* ZLIB */ res = deflateInit (&compressor->zstream, compressor->level); if (res == Z_MEM_ERROR ) @@ -183,7 +191,7 @@ g_zlib_compressor_class_init (GZlibCompressorClass *klass) P_("compression format"), P_("The format of the compressed data"), G_TYPE_ZLIB_COMPRESSOR_FORMAT, - G_ZLIB_COMPRESSOR_FORMAT_RAW, + G_ZLIB_COMPRESSOR_FORMAT_ZLIB, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, diff --git a/gio/gzlibdecompressor.c b/gio/gzlibdecompressor.c index e19c28e9..1587dd53 100644 --- a/gio/gzlibdecompressor.c +++ b/gio/gzlibdecompressor.c @@ -144,7 +144,12 @@ g_zlib_decompressor_constructed (GObject *object) /* + 16 for gzip */ res = inflateInit2 (&decompressor->zstream, MAX_WBITS + 16); } - else + else if (decompressor->format == G_ZLIB_COMPRESSOR_FORMAT_RAW) + { + /* Negative for gzip */ + res = inflateInit2 (&decompressor->zstream, -MAX_WBITS); + } + else /* ZLIB */ res = inflateInit (&decompressor->zstream); if (res == Z_MEM_ERROR ) @@ -170,7 +175,7 @@ g_zlib_decompressor_class_init (GZlibDecompressorClass *klass) P_("compression format"), P_("The format of the compressed data"), G_TYPE_ZLIB_COMPRESSOR_FORMAT, - G_ZLIB_COMPRESSOR_FORMAT_RAW, + G_ZLIB_COMPRESSOR_FORMAT_ZLIB, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/gio/tests/filter-cat.c b/gio/tests/filter-cat.c index 0c1cc136..770ab1a9 100644 --- a/gio/tests/filter-cat.c +++ b/gio/tests/filter-cat.c @@ -76,7 +76,7 @@ cat (GFile * file) if (decompress) { GInputStream *old; - conv = (GConverter *)g_zlib_decompressor_new (gzip?G_ZLIB_COMPRESSOR_FORMAT_GZIP:G_ZLIB_COMPRESSOR_FORMAT_RAW); + conv = (GConverter *)g_zlib_decompressor_new (gzip?G_ZLIB_COMPRESSOR_FORMAT_GZIP:G_ZLIB_COMPRESSOR_FORMAT_ZLIB); old = in; in = (GInputStream *) g_converter_input_stream_new (in, conv); g_object_unref (conv); @@ -108,7 +108,7 @@ cat (GFile * file) if (compress) { GInputStream *old; - conv = (GConverter *)g_zlib_compressor_new (gzip?G_ZLIB_COMPRESSOR_FORMAT_GZIP:G_ZLIB_COMPRESSOR_FORMAT_RAW, -1); + conv = (GConverter *)g_zlib_compressor_new (gzip?G_ZLIB_COMPRESSOR_FORMAT_GZIP:G_ZLIB_COMPRESSOR_FORMAT_ZLIB, -1); old = in; in = (GInputStream *) g_converter_input_stream_new (in, conv); g_object_unref (conv); -- 2.34.1