From: Ueno Katsuhiro Date: 2000-07-20T18:41:19+09:00 Subject: [ruby-list:23939] Re: flush deflate buffer with Ruby/zlib うえの@ぶるーすかいです。 From: Tanaka Akira > あー、説明が足りませんでしたが、私の用途では 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 --= ---=----===- http://www.blue.sky.or.jp/ -==