前田です。

"Kikutani, Makoto" <kikutani / sprintmail.com> writes:

> s-lang MLにポストしてたんですが、昨日まで書いた時点で
> やはりrubyの専門家にも見ていただいたほうがいいかと

専門家じゃないですけど、ちょっとだけ。
# s-langの方にポストするのは何となく気が引けるのでこっちにします(^_^;

> しかしエンジニア(特にプログラマ?)共通の気質、
> 
>      「ドキュメントを書くのは大嫌いだ」

ボクもです:-)
まつもとさんみたいに「ソースがドキュメントだ」と言いたいところですが、
自分が書いたものでも後で見ると何やってるのかわからないことがしばしば(^_^;

> require "slang"
> include Slang
> 
> slang_init_terminal(1, 1)

slang_init_terminalという名前になっていますが、Slangモジュールのモ
ジュール関数なら、init_terminalという名前の方が良いように思います。
名前の衝突が気になる時は、Slangをincludeせずに、

Slang::init_terminal(1, 1)

とすれば良いので。

>    int b = NUM2INT(rbegin); // 領域の行のはじまり

コメントがC++風なのですね(^_^;

> 	 if (rb_respond_to(self, rb_intern("write_line"))) {
> 	    VALUE argv[2];
> 	    argv[0] = line->data;
> 	    argv[1] = (row == curline) ? TRUE : FALSE;
> 	    rb_funcall2(self, rb_intern("write_line"), 2, argv);
> 	 }

rb_funcall(self, rb_intern("write_line"), 2,
           line->data, (row == curline) ? TRUE : FALSE);

のように、rb_funcall()を使った方が楽かもしれません。

-- 
前田 修吾