[#37762] tcltklibの作りかた — Mitsuo Igarashi <mitsu5@...>
mitsu5 です。
8 messages
2003/06/07
[#37774] Ruby/zlibのインストール方法はどのようにするのですか? — "igusa" <igusa@...>
いぐさです。
6 messages
2003/06/09
[#37801] 動的に生成したクラスメソッドのundef — Ryuichiro Hara <r@...>
動的に生成したメソッドを除く方法を知りたく質問します。
6 messages
2003/06/19
[#37814] Re: Oniguruma and PHP — kkosako@...
> スラッシュドットでも話題になっていましたが、Onigurumaを
1 message
2003/06/23
[#37815] 配列の使い方 — Kouji Miyauchi <koji.miyauchi@...>
宮内と申します。
9 messages
2003/06/23
[#37830] reference from nested class to a constant in a module included by the parent class — NISHIMATSU Takeshi <t-nissie@...>
西松と申します.
6 messages
2003/06/27
[#37838] Raccのインストールについて (MacOS X) — "Ken'ichiro Nakatani" <kenzo@...>
はじめまして。中谷と申します。
8 messages
2003/06/27
[#37839] Re: Raccのインストールについて (MacOS X)
— Ogino Junya <ogino@...>
2003/06/28
荻野ともうします。
[ruby-list:37797] Re: Zlib::BufError with Zlib::GzipReader
From:
UENO Katsuhiro <unnie@...>
Date:
2003-06-18 14:16:10 UTC
List:
ruby-list #37797
うえのです。
On Wed, 18 Jun 2003 21:11:40 +0900
Tanaka Akira <akr@m17n.org> wrote:
> とあるデータに対し、Zlib::GzipReader が Zlib::BufError を返すことに気
> がつきました。(そのデータは最後に添付します。)
snip..
> この sites.lirs.gz というものは gzip -d や zlib 付属の minigzip ではと
> くに問題なく展開できますし、次のようにして Zlib::Inflate を使っても問
> 題なく展開でき、gzip -d の出力と一致します。
snip..
> というわけで、この Zlib::BufError が出るというのは Zlib::GzipReader の
> 問題なのではないかと思うんですが、実際のところどうなんでしょう?
Zlib::Inflate 側の問題でした。このようにすると Zlib::Inflate でも
Zlib::BufError が発生します。
% ruby -r./zlib -e 's = File.read("sites.lirs.gz")
i = Zlib::Inflate.new(-Zlib::MAX_WBITS)
i.inflate s[10...2048]
i.inflate s[2048..-9]
i.finish'
-e:3:in `inflate': buffer error (Zlib::BufError)
from -e:3
Index: zlib.c
===================================================================
RCS file: /src/shim/ruby16/ext/zlib/zlib.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -p -r1.14 -r1.15
--- zlib.c 6 Apr 2003 09:14:49 -0000 1.14
+++ zlib.c 18 Jun 2003 14:10:02 -0000 1.15
@@ -3,7 +3,7 @@
*
* Copyright (C) UENO Katsuhiro 2000-2003
*
- * $Id: zlib.c,v 1.14 2003/04/06 09:14:49 katsu Exp $
+ * $Id: zlib.c,v 1.15 2003/06/18 14:10:02 katsu Exp $
*/
#include <ruby.h>
@@ -788,6 +788,11 @@ zstream_run(z, src, len, flush)
break;
}
if (err != Z_OK) {
+ if (flush != Z_FINISH && err == Z_BUF_ERROR
+ && z->stream.avail_out > 0) {
+ z->flags |= ZSTREAM_FLAG_IN_STREAM;
+ break;
+ }
zstream_reset_input(z);
if (z->stream.avail_in > 0) {
zstream_append_input(z, z->stream.next_in, z->stream.avail_in);
-- ---- - - - -- -
うえの かつひろ <unnie@blue.sky.or.jp>