[#24698] NKF(nkf2)を1.8ブランチに入れました — "NARUSE, Yui" <naruse@...>

naruseです。

14 messages 2004/11/03
[#24734] Re: NKF(nkf2)を1.8ブランチに入れました — 堀川 久 <vzw00011@...> 2004/11/06

こんにちは。

[#24720] メール関係ライブラリの標準添付について — MoonWolf <moonwolf@...>

MoonWolfです。

17 messages 2004/11/05
[#24721] Re: メール関係ライブラリの標準添付について — Yukihiro Matsumoto <matz@...> 2004/11/05

まつもと ゆきひろです

[#24722] Re: メール関係ライブラリの標準添付について — MoonWolf <moonwolf@...> 2004/11/05

MoonWolfです。

[#24804] Re: まつもとさんの負担を減らすために、何ができるだろう — "URABE Shyouhei aka.mput" <root@...>

mput です。 ruby-dev に移動します。

21 messages 2004/11/13
[#24805] Re: まつもとさんの負担を減らすために、何ができるだろう — Tanaka Akira <akr@...17n.org> 2004/11/13

In article <2D6284E3-351D-11D9-B7EF-000393735AAE@mput.dip.jp>,

[#24806] Re: まつもとさんの負担を減らすために、何ができるだろう — "URABE Shyouhei aka.mput" <root@...> 2004/11/13

mput です。

[#24808] Re: まつもとさんの負担を減らすために、何ができるだろう — Masayoshi Takahashi <maki@...> 2004/11/13

高橋征義です。

[#24809] Re: まつもとさんの負担を減らすために、何ができるだろう — "URABE Shyouhei aka.mput" <root@...> 2004/11/13

mput です。

[#24834] Process.getrlimit and Process.setrlimit — Tanaka Akira <akr@...17n.org>

Process.getrlimit と Process.setrlimit が欲しいので実装してみました。

25 messages 2004/11/13

[#24965] sync and stdio buffering — Tanaka Akira <akr@...17n.org>

ちょっとした思いつきなのですが、

12 messages 2004/11/26

[#24993] rb_io_sysread dumps core [BUG] rb_sys_fail() - errno == 0 — Tietew <tietew-ml-ruby-dev@...>

ソケットとスレッドを大量に使うアプリ(具体的には IRCbot です)を

13 messages 2004/11/29

[#25003] IO#flush dumps core again — Tanaka Akira <akr@...17n.org>

次のようにすると core を吐きます。

28 messages 2004/11/30
[#25004] Re: IO#flush dumps core again — nobu@... 2004/11/30

なかだです。

[#25005] Re: IO#flush dumps core again — Yukihiro Matsumoto <matz@...> 2004/11/30

まつもと ゆきひろです

[#25009] Re: IO#flush dumps core again — Tanaka Akira <akr@...17n.org> 2004/12/01

In article <1101836040.635395.27476.nullmailer@x31.priv.netlab.jp>,

[#25014] Re: IO#flush dumps core again — Tanaka Akira <akr@...17n.org> 2004/12/01

In article <1101878558.979715.1359.nullmailer@x31.priv.netlab.jp>,

[#25015] Re: IO#flush dumps core again — Yukihiro Matsumoto <matz@...> 2004/12/01

まつもと ゆきひろです

[#25056] Re: IO#flush dumps core again — Tanaka Akira <akr@...17n.org> 2004/12/05

In article <1101888165.570792.4192.nullmailer@x31.priv.netlab.jp>,

[#25074] Re: IO#flush dumps core again — Tanaka Akira <akr@...17n.org> 2004/12/06

In article <1102293033.356112.2288.nullmailer@x31.priv.netlab.jp>,

[ruby-dev:24870] StringIO#read(size, buf)

From: akira yamada / やまだあきら <akira@...>
Date: 2004-11-16 07:53:21 UTC
List: ruby-dev #24870
<URL:http://www.yo.rim.or.jp/~nov/d/?date=20041116#p03>
でStringIO#readの第二引数を与えると
いつでもStringIOの文字列の先頭から
読み込んでしまう問題が報告されています。

以下のような変更はどうでしょうか。

Index: ext/stringio/stringio.c
===================================================================
RCS file: /var/cvs/src/ruby/ext/stringio/stringio.c,v
retrieving revision 1.26.2.4
diff -u -r1.26.2.4 stringio.c
--- ext/stringio/stringio.c	6 Oct 2004 17:57:19 -0000	1.26.2.4
+++ ext/stringio/stringio.c	16 Nov 2004 07:50:24 -0000
@@ -889,7 +889,7 @@
 	long rest = RSTRING(ptr->string)->len - ptr->pos;
 	if (len > rest) len = rest;
 	rb_str_resize(str, len);
-	MEMCPY(RSTRING(str)->ptr, RSTRING(ptr->string)->ptr, char, len);
+	MEMCPY(RSTRING(str)->ptr, RSTRING(ptr->string)->ptr + ptr->pos, char,
len);
     }
     if (NIL_P(str)) {
 	if (!(ptr->flags & STRIO_EOF)) str = rb_str_new(0, 0);
Index: test/stringio/test_stringio.rb
===================================================================
RCS file: /var/cvs/src/ruby/test/stringio/test_stringio.rb,v
retrieving revision 1.4.2.2
diff -u -r1.4.2.2 test_stringio.rb
--- test/stringio/test_stringio.rb	8 Sep 2004 09:44:46 -0000	1.4.2.2
+++ test/stringio/test_stringio.rb	16 Nov 2004 07:50:24 -0000
@@ -30,4 +30,24 @@
     io.print "last"
     assert_equal("\0" * n + "last", io.string)
   end
+
+  def test_read
+    io = StringIO.new("0123456789")
+    buf = ""
+    io.read(2, buf)
+    io.read(2, buf)
+    assert_equal(4, io.pos)
+    assert_equal("23", buf)
+    buf << io.read(2)
+    buf << io.read(2)
+    assert_equal("234567", buf)
+    assert_equal(8, io.pos)
+
+    io.rewind
+    buf = ""
+    io.read(5, buf)
+    buf << io.read(5)
+    assert_equal("0123456789", buf)
+    assert_equal(10, io.pos)
+  end
 end

-- 
やまだあきら / akira yamada  <http://arika.org>


In This Thread

Prev Next