[#23805] net/smtp — 佐藤 大輔 <densuke@...2.so-net.ne.jp>

佐藤です。

26 messages 2000/07/12
[#23806] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23808] Re: net/smtp — 佐藤 大輔 <densuke@...2.so-net.ne.jp> 2000/07/12

佐藤です。

[#23809] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23811] Re: net/smtp — Minero Aoki <aamine@...> 2000/07/12

あおきです。

[#23812] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23890] Ruby Entry Package and cygwin1.dll — Noritsugu Nakamura <nnakamur@...>

25 messages 2000/07/18
[#23895] Re: Ruby Entry Package and cygwin1.dll — WATANABE Hirofumi <eban@...> 2000/07/18

わたなべです.

[#23896] Re: Ruby Entry Package and cygwin1.dll — Noritsugu Nakamura <nnakamur@...> 2000/07/18

[#23897] Re: Ruby Entry Package and cygwin1.dll — Katsuyuki Komatsu <komatsu@...> 2000/07/19

小松です。

[#23898] Re: Ruby Entry Package and cygwin1.dll — WATANABE Hirofumi <eban@...> 2000/07/19

わたなべです.

[#23899] Re: Ruby Entry Package and cygwin1.dll — Katsuyuki Komatsu <komatsu@...> 2000/07/19

小松です。

[#23923] Re: [ruby-dev:10353] Re: should prohibit `module_function' for class Class — Masatoshi SEKI <m_seki@...>

11 messages 2000/07/19

[#23940] String#unpack と scanf の関係 — kiwamu <kiwamu@...>

こんにちは。岡部@東京都立大学と申します。

16 messages 2000/07/20

[ruby-list:23926] Re: flush deflate buffer with Ruby/zlib

From: Ueno Katsuhiro <unnie@...>
Date: 2000-07-20 03:39:02 UTC
List: ruby-list #23926
うえの@ぶるーすかいです。

From: Tanaka Akira <akr@m17n.org>
> d = Deflate.new
> p d.deflate("a" * 1000)
> p d.deflate("", Deflate::SYNC_FLUSH)
>
> として、"a" * 1000 を展開可能な圧縮結果を得たいのですが、
> d.deflate("", Deflate::SYNC_FLUSH) が "" になってしまいます。
snip..
> # zstream_run_internal の先頭でいきなり z->stream.avail_in == 0 などと
> # いうテストをしているのが問題なのかなぁ、という気もしますが。

多分 (って自分でやったんだが)、安全側に倒していたんだと思います。
空文字列を zlib に渡すとバッファの状態によっては
Z_BUF_ERROR が返ってきますので。

ちょっと見直してみました。

--- zlib.c	2000/07/19 10:25:39	1.16
+++ zlib.c	2000/07/20 02:53:30
@@ -377,9 +377,6 @@
 	int err;
 	unsigned long start;

-	if (flush != Z_FINISH && z->stream.avail_in == 0)
-		return;
-
 	do {
 		if (z->stream.avail_out == 0)
 			zstream_expand_buffer(z);
@@ -390,6 +387,8 @@
 		z->buf_filled += z->stream.total_out - start;

 		if (err == Z_STREAM_END)
+			break;
+		if (err == Z_BUF_ERROR && flush != Z_FINISH)
 			break;
 		if (err != Z_OK)
 			raise_zlib_error(err, z->stream.msg);


> flush_out かなぁ、とも思いましたが、やはり意図した結果は得られません。
> (同様に "" が返ってきます。)

flush_out は zlib からの出力を受ける ZStream オブジェクト内の
バッファをフラッシュします。zlib のバッファまではフラッシュしません。

# flush_out って名前はものすごく紛らわしいと思うんですけど
# 全然いい名前が思いつかなくて…


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

In This Thread