うえの@ぶるーすかいです。

From: Tanaka Akira <akr / m17n.org>
> あー、説明が足りませんでしたが、私の用途では finish は使えないんです。
> なぜかというと、バッファをフラッシュした後にもさらにデータを送る必要が
> あるからです。
snip...
> 確実に展開できるような圧縮結果を生成する必要があります。これがバッファ
> をフラッシュする、という zlib の SYNC_FLUSH の機能です。
> 
> とゆーわけで、この機能を利用できるようにしていただけるとありがたいんで
> すが。

了解しました。どうも食い違っていたみたいですね。
# というか、何か妙だな、とは思ってました。すみません。

多分これでうまくいくはずです。

  http://www.blue.sky.or.jp/atelier/ruby/ruby-zlib-0.3.1.tar.gz

ちなみに変更点は 1行だけなので :-) 以下のパッチを当てるだけでも可です。


--- zlib.c	2000/07/20 06:14:49	1.17
+++ zlib.c	2000/07/20 09:31:46	1.18
@@ -392,7 +392,7 @@
 			break;
 		if (err != Z_OK)
 			raise_zlib_error(err, z->stream.msg);
-	} while (flush == Z_FINISH || z->stream.avail_in > 0);
+	} while (flush != Z_NO_FLUSH || z->stream.avail_in > 0);
 
 	if (err != Z_STREAM_END)
 		z->flag |= ZSTREAM_FLAG_IN_STREAM;


-=====--===-
   うえの かつひろ @ BLUE-SKYNET    <unnie / blue.sky.or.jp>  --=
---=----===-                    http://www.blue.sky.or.jp/  -==