From: matz@... (Yukihiro Matsumoto) Date: 1998-03-06T17:20:34+09:00 Subject: [ruby-list:6996] Re: Curses and Slang Module (was Re: win32$BHG(Bruby $B$N(B getc $B$K$D$$$F(B) まつもと ゆきひろです In message "[ruby-list:6994] Re: Curses and Slang Module (was Re: win32版ruby の getc について)" on 98/03/06, Kazuhisa YANAGAWA writes: | そういえば, Win32 なんかでは curses モジュールって動くんでしょうか? | コンソールで十分な場合って, 多いですよね. DOS用のcursesって見たことがあります. | で, この curses ですが, addstr に String でないものを渡すと落ちます | ね. どうやら. これは「仕様」ということにするんでしょうか? 引数を | to_s してから使うようにするだけで問題なくなるような気もするんですが. 流石に仕様じゃないです.他にも若干修正しましたので,パッチを 出しておきます.このパッチの緊急度は非常に低いです diff -u -1 -r1.1.1.2.2.2 curses.c --- curses.c 1998/03/03 10:16:14 1.1.1.2.2.2 +++ curses.c 1998/03/06 08:18:18 @@ -101,3 +101,6 @@ { - endwin(); +#ifdef HAVE_ISENDWIN + if (!isendwin()) +#endif + endwin(); return Qnil; @@ -105,2 +108,11 @@ +static void +curses_finalize() +{ +#ifdef HAVE_ISENDWIN + if (!isendwin()) +#endif + endwin(); +} + /* def closed? */ @@ -109,3 +121,3 @@ { -#ifdef HAVE_ENDWIN +#ifdef HAVE_ISENDWIN if (isendwin()) { @@ -315,3 +327,3 @@ { - addstr(RSTRING(str)->ptr); + addstr(STR2CSTR(str)); return Qnil; @@ -661,3 +673,3 @@ GetWINDOW(obj, winp); - waddstr(winp->window, RSTRING(str)->ptr); + waddstr(winp->window, STR2CSTR(str)); @@ -789,2 +801,4 @@ rb_define_method(cWindow, "deleteln", window_deleteln, 0); + + rb_set_end_proc(curses_finalize, 0); }