[#17002] strict prototype for c++ — Takaaki Tateishi <ttate@...>
立石です.
At Fri, 3 May 2002 02:59:36 +0900,
[#17017] 標準添付案 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
At Wed, 8 May 2002 19:50:17 +0900,
At Wed, 8 May 2002 22:45:06 +0900,
At Thu, 9 May 2002 00:47:46 +0900,
田中です。一応 blade は見てます。
堀之内です。
堀之内です。
At Tue, 14 May 2002 14:45:28 +0900,
[#17031] double acosh — WATANABE Hirofumi <eban@...>
わたなべです。
なかだです。
わたなべです。
まつもと ゆきひろです
わたなべです。
[#17037] here document2 つで __LINE__ がずれる — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#17053] socket in Win32 — nobu.nakada@...
なかだです。
[#17059] [PATCH] mswin32 configure — nobu.nakada@...
なかだです。
[#17060] rb_warn — Tadayoshi Funaba <tadf@...>
ふなばです。
[#17095] irb & jarh — Tanaka Akira <akr@...17n.org>
ふと、irb で jarh をいくつか試したのですが、うまく扱えないものがあるようです。
けいじゅ@日本ラショナルソフトウェアです.
In article <200205160811.RAA31441@ishitsuka.com>,
[#17112] [Cleanup] rb_thread_select() — nobu.nakada@...
なかだです。
[#17122] Array#bsearch — Beyond <beyond@...>
[#17128] Thread: deadlock trouble — nagai@...
永井@知能.九工大です.
At Fri, 17 May 2002 14:47:53 +0900,
[#17134] argv[0] — Tanaka Akira <akr@...17n.org>
ふと ruby インタプリタの C における argv[0] を知りたくなったんですが、
まつもと ゆきひろです
In article <1021723554.017958.5113.nullmailer@picachu.netlab.jp>,
In article <1021723554.017958.5113.nullmailer@picachu.netlab.jp>,
[#17144] Re: msvcrt — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
なかだです。
[#17158] else without rescue — nobu.nakada@...
なかだです。
[#17179] コマンドラインオプションの順序制約 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
[#17194] [RCR] Array#rotate{,!} — nobu.nakada@...
なかだです。
まつもと ゆきひろです
[#17208] Etc — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#17223] race condition on Queue#pop? — Tanaka Akira <akr@...17n.org>
なんとなく thread.rb を眺めていて、Queue#pop に race condition がある
なかだです。
まつもと ゆきひろです
なかだです。
[#17228] Re: [ruby-list:35305] Re: ((1.2)..(3.4)).to_a — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
たけ(tk)です。
まつもと ゆきひろです
たけ(tk)です。
まつもと ゆきひろです
あづみです。
[#17238] Re: [ruby-list:35304] Re: ((1.2)..(3.4)).to_a — siena@... (Siena.)
Siena. です。
[ruby-dev:17225] Re: StringIO
なかだです。
At Thu, 30 May 2002 10:00:13 +0900,
Tanaka Akira wrote:
> > そこで気が付いたのですが、String を IO のように使いたい、というのとは
> > 逆に、IO のかわりに String を使いたい、という場合には、StringIO#size
> > ではなく、StringIO#stat.size が欲しいように思います。
(snip)
> というような IO#size を加える方がよいと思います。
それは賛成ですが、とりあえずこんなのも作ってみました。
# うーん、size以外はどうすればいいんだろう。
Index: stringio.c
===================================================================
RCS file: /cvs/ruby/src/ruby/ext/stringio/stringio.c,v
retrieving revision 1.6
diff -u -2 -p -r1.6 stringio.c
--- ext/stringio/stringio.c 2002/04/23 16:22:06 1.6
+++ ext/stringio/stringio.c 2002/05/30 01:38:30
@@ -15,4 +15,5 @@
#include "ruby.h"
#include "rubyio.h"
+#include <sys/stat.h>
#define STRIO_APPEND 4
@@ -865,4 +866,47 @@ strio_truncate(self, len)
}
+static VALUE cStrioStat;
+
+static struct stat *
+strio_get_stat(ptr)
+ struct StringIO *ptr;
+{
+ /* never fail except for fatal memory error */
+ struct stat *st = ALLOC(struct stat);
+ memset(st, 0, sizeof(*st));
+ if (!CLOSED(ptr)) {
+ st->st_size = RSTRING(ptr->string)->len;
+#ifdef HAVE_ST_BLKSIZE
+ st->st_blksize = 1;
+#endif
+#ifdef HAVE_ST_BLOCKS
+ st->st_blocks = st->st_size;
+#endif
+ }
+ return st;
+}
+
+static VALUE
+strio_stat(self)
+ VALUE self;
+{
+#if 1
+ struct StringIO *ptr = StringIO(self);
+ VALUE stat = Data_Wrap_Struct(cStrioStat, NULL, free, 0);
+ DATA_PTR(stat) = strio_get_stat(ptr);
+ return stat;
+#else
+ return rb_class_new_instance(1, &self, cStrioStat);
+#endif
+}
+
+static VALUE
+strio_stat_initialize(self, strio)
+ VALUE self, strio;
+{
+ DATA_PTR(self) = strio_get_stat(StringIO(strio));
+ return self;
+}
+
void
Init_stringio()
@@ -930,3 +974,8 @@ Init_stringio()
rb_define_method(StringIO, "length", strio_size, 0);
rb_define_method(StringIO, "truncate", strio_truncate, 1);
+
+ rb_define_method(StringIO, "stat", strio_stat, 0);
+ cStrioStat = rb_const_get_at(rb_cFile, rb_intern("Stat"));
+ cStrioStat = rb_define_class_under(StringIO, "Stat", cStrioStat);
+ rb_define_method(cStrioStat, "initialize", strio_stat_initialize, 1);
}
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦