とみたです。

At Mon, 27 Dec 1999 20:19:15 -0500,
Yasushi Shoji <yashi / yashi.com> wrote:

> > > では、とりあえずpositionには値そのものが渡るようにしてしまいます。

> > やっぱり、それがすっきりしますね。

> あれ、すっきりされてる(^^;

すいません、言い出しっぺなのに…(^^;

# 今悩まなくてもいいことは、後で悩めばいい…ということで :-)

> class Text < String
>   def initialize
>     @position = 0
>   end
>   attr_accessor :position
> end
> 
> と、Cで書けなくてなやんでるんです‥‥‥。

こんな感じかなぁ(試してません)。

		〜
	cText = rb_define_class("Text", rb_cString);
	rb_define_method(cText, "position", text_get_position, 0);
	rb_define_method(cText, "position=", text_set_position, 1);
		〜
	static VALUE text_get_position(VALUE self)
	{
	    return rb_iv_get(self, "position");
	}
	static VALUE text_set_position(VALUE self, VALUE pos)
	{
	    rb_iv_set(self, "position", pos);
	    return Qnil;
	}

# やっぱり、たった1つのクラスのたった1つのシグナルのたった1つの引数の
# ために、新しいクラスを作るのは少々大げさな気もします…。

--
とみたまさひろ <tommy / tmtm.org>