ruby-changes:14632
From: yugui <ko1@a...>
Date: Sat, 30 Jan 2010 21:45:47 +0900 (JST)
Subject: [ruby-changes:14632] Ruby:r26477 (ruby_1_9_1): merges r25267 from trunk into ruby_1_9_1.
yugui 2010-01-30 21:45:28 +0900 (Sat, 30 Jan 2010) New Revision: 26477 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26477 Log: merges r25267 from trunk into ruby_1_9_1. -- * ext/curses/curses.c: Many functions of module Curses could cause a crash if the ncurses library was not properly initialized. Fix pointed out by Alexander Beisig [ruby-core:22592] Functions fixed: attroff, attron, attrset, bkgd, bkgdset, can_change_color, close_screen, closed, color_content, curs_set, def_prog_mode, delch, deleteln, getmouse, getstr, has_colors, init_color, init_pair, insertln, keyname, mouseinterval, mousemask, pair_content, pair_number, reset_prog_mode, resizeterm, scrl, setscrreg, standend, standout, start_color, timeout, ungetmouse, use_default_colors Modified files: branches/ruby_1_9_1/ChangeLog branches/ruby_1_9_1/ext/curses/curses.c branches/ruby_1_9_1/version.h Index: ruby_1_9_1/ChangeLog =================================================================== --- ruby_1_9_1/ChangeLog (revision 26476) +++ ruby_1_9_1/ChangeLog (revision 26477) @@ -1,3 +1,16 @@ +Fri Oct 9 02:12:02 2009 Marc-Andre Lafortune <ruby-core@m...> + + * ext/curses/curses.c: Many functions of module Curses could cause a + crash if the ncurses library was not properly initialized. + Fix pointed out by Alexander Beisig [ruby-core:22592] + Functions fixed: attroff, attron, attrset, bkgd, bkgdset, + can_change_color, close_screen, closed, color_content, curs_set, + def_prog_mode, delch, deleteln, getmouse, getstr, has_colors, + init_color, init_pair, insertln, keyname, mouseinterval, mousemask, + pair_content, pair_number, reset_prog_mode, resizeterm, scrl, + setscrreg, standend, standout, start_color, timeout, ungetmouse, + use_default_colors + Fri Oct 9 01:07:34 2009 Yusuke Endoh <mame@t...> * compile.c (ADD_TRACE): fire coverage event in ensure clause. Index: ruby_1_9_1/ext/curses/curses.c =================================================================== --- ruby_1_9_1/ext/curses/curses.c (revision 26476) +++ ruby_1_9_1/ext/curses/curses.c (revision 26477) @@ -84,7 +84,7 @@ #define GetWINDOW(obj, winp) do {\ if (!OBJ_TAINTED(obj) && rb_safe_level() >= 4)\ - rb_raise(rb_eSecurityError, "Insecure: operation on untainted window");\ + rb_raise(rb_eSecurityError, "Insecure: operation on untainted window");\ Data_Get_Struct(obj, struct windata, winp);\ if (winp->window == 0) no_window();\ } while (0) @@ -110,7 +110,7 @@ obj = rb_obj_alloc(class); Data_Get_Struct(obj, struct windata, winp); winp->window = window; - + return obj; } @@ -138,6 +138,7 @@ static VALUE curses_close_screen(void) { + curses_stdscr(); #ifdef HAVE_ISENDWIN if (!isendwin()) #endif @@ -151,9 +152,9 @@ { if (stdscr #ifdef HAVE_ISENDWIN - && !isendwin() + && !isendwin() #endif - ) + ) endwin(); rb_stdscr = 0; rb_gc_unregister_address(&rb_stdscr); @@ -164,6 +165,7 @@ curses_closed(void) { #ifdef HAVE_ISENDWIN + curses_stdscr(); if (isendwin()) { return Qtrue; } @@ -355,6 +357,7 @@ static VALUE curses_standout(VALUE obj) { + curses_stdscr(); standout(); return Qnil; } @@ -363,6 +366,7 @@ static VALUE curses_standend(VALUE obj) { + curses_stdscr(); standend(); return Qnil; } @@ -430,6 +434,7 @@ { char rtn[1024]; /* This should be big enough.. I hope */ + curses_stdscr(); rb_read_check(stdin); #if defined(HAVE_GETNSTR) getnstr(rtn,1023); @@ -443,6 +448,7 @@ static VALUE curses_delch(VALUE obj) { + curses_stdscr(); delch(); return Qnil; } @@ -451,6 +457,7 @@ static VALUE curses_deleteln(VALUE obj) { + curses_stdscr(); #if defined(HAVE_DELETELN) || defined(deleteln) deleteln(); #endif @@ -461,6 +468,7 @@ static VALUE curses_insertln(VALUE obj) { + curses_stdscr(); #if defined(HAVE_INSERTLN) || defined(insertln) insertln(); #endif @@ -475,6 +483,7 @@ int cc = curses_char(c); const char *name; + curses_stdscr(); name = keyname(cc); if (name) { return rb_str_new_cstr(name); @@ -503,72 +512,80 @@ curses_curs_set(VALUE obj, VALUE visibility) { #ifdef HAVE_CURS_SET - int n; - return (n = curs_set(NUM2INT(visibility)) != ERR) ? INT2FIX(n) : Qnil; + int n; + curses_stdscr(); + return (n = curs_set(NUM2INT(visibility)) != ERR) ? INT2FIX(n) : Qnil; #else - return Qnil; + return Qnil; #endif } static VALUE curses_scrl(VALUE obj, VALUE n) { - /* may have to raise exception on ERR */ + /* may have to raise exception on ERR */ #ifdef HAVE_SCRL - return (scrl(NUM2INT(n)) == OK) ? Qtrue : Qfalse; + curses_stdscr(); + return (scrl(NUM2INT(n)) == OK) ? Qtrue : Qfalse; #else - return Qfalse; + return Qfalse; #endif } static VALUE curses_setscrreg(VALUE obj, VALUE top, VALUE bottom) { - /* may have to raise exception on ERR */ + /* may have to raise exception on ERR */ #ifdef HAVE_SETSCRREG - return (setscrreg(NUM2INT(top), NUM2INT(bottom)) == OK) ? Qtrue : Qfalse; + curses_stdscr(); + return (setscrreg(NUM2INT(top), NUM2INT(bottom)) == OK) ? Qtrue : Qfalse; #else - return Qfalse; + return Qfalse; #endif } static VALUE curses_attroff(VALUE obj, VALUE attrs) { - return window_attroff(rb_stdscr,attrs); - /* return INT2FIX(attroff(NUM2INT(attrs))); */ + curses_stdscr(); + return window_attroff(rb_stdscr,attrs); + /* return INT2FIX(attroff(NUM2INT(attrs))); */ } static VALUE curses_attron(VALUE obj, VALUE attrs) { - return window_attron(rb_stdscr,attrs); - /* return INT2FIX(attroff(NUM2INT(attrs))); */ + curses_stdscr(); + return window_attron(rb_stdscr,attrs); + /* return INT2FIX(attroff(NUM2INT(attrs))); */ } static VALUE curses_attrset(VALUE obj, VALUE attrs) { - return window_attrset(rb_stdscr,attrs); - /* return INT2FIX(attroff(NUM2INT(attrs))); */ + curses_stdscr(); + return window_attrset(rb_stdscr,attrs); + /* return INT2FIX(attroff(NUM2INT(attrs))); */ } static VALUE curses_bkgdset(VALUE obj, VALUE ch) { #ifdef HAVE_BKGDSET - bkgdset(NUM2CH(ch)); + curses_stdscr(); + bkgdset(NUM2CH(ch)); #endif - return Qnil; + return Qnil; } static VALUE curses_bkgd(VALUE obj, VALUE ch) { #ifdef HAVE_BKGD - return (bkgd(NUM2CH(ch)) == OK) ? Qtrue : Qfalse; + curses_stdscr(); + return (bkgd(NUM2CH(ch)) == OK) ? Qtrue : Qfalse; #else - return Qfalse; + return Qfalse; #endif } @@ -576,9 +593,10 @@ curses_resizeterm(VALUE obj, VALUE lin, VALUE col) { #if defined(HAVE_RESIZETERM) - return (resizeterm(NUM2INT(lin),NUM2INT(col)) == OK) ? Qtrue : Qfalse; + curses_stdscr(); + return (resizeterm(NUM2INT(lin),NUM2INT(col)) == OK) ? Qtrue : Qfalse; #else - return Qnil; + return Qnil; #endif } @@ -586,82 +604,90 @@ static VALUE curses_start_color(VALUE obj) { - /* may have to raise exception on ERR */ - return (start_color() == OK) ? Qtrue : Qfalse; + /* may have to raise exception on ERR */ + curses_stdscr(); + return (start_color() == OK) ? Qtrue : Qfalse; } static VALUE curses_init_pair(VALUE obj, VALUE pair, VALUE f, VALUE b) { - /* may have to raise exception on ERR */ - return (init_pair(NUM2INT(pair),NUM2INT(f),NUM2INT(b)) == OK) ? Qtrue : Qfalse; + /* may have to raise exception on ERR */ + curses_stdscr(); + return (init_pair(NUM2INT(pair),NUM2INT(f),NUM2INT(b)) == OK) ? Qtrue : Qfalse; } static VALUE curses_init_color(VALUE obj, VALUE color, VALUE r, VALUE g, VALUE b) { - /* may have to raise exception on ERR */ - return (init_color(NUM2INT(color),NUM2INT(r), - NUM2INT(g),NUM2INT(b)) == OK) ? Qtrue : Qfalse; + /* may have to raise exception on ERR */ + curses_stdscr(); + return (init_color(NUM2INT(color),NUM2INT(r), + NUM2INT(g),NUM2INT(b)) == OK) ? Qtrue : Qfalse; } static VALUE curses_has_colors(VALUE obj) { - return has_colors() ? Qtrue : Qfalse; + curses_stdscr(); + return has_colors() ? Qtrue : Qfalse; } static VALUE curses_can_change_color(VALUE obj) { - return can_change_color() ? Qtrue : Qfalse; + curses_stdscr(); + return can_change_color() ? Qtrue : Qfalse; } static VALUE curses_color_content(VALUE obj, VALUE color) { - short r,g,b; + short r,g,b; - color_content(NUM2INT(color),&r,&g,&b); - return rb_ary_new3(3,INT2FIX(r),INT2FIX(g),INT2FIX(b)); + curses_stdscr(); + color_content(NUM2INT(color),&r,&g,&b); + return rb_ary_new3(3,INT2FIX(r),INT2FIX(g),INT2FIX(b)); } static VALUE curses_pair_content(VALUE obj, VALUE pair) { - short f,b; + short f,b; - pair_content(NUM2INT(pair),&f,&b); - return rb_ary_new3(2,INT2FIX(f),INT2FIX(b)); + curses_stdscr(); + pair_content(NUM2INT(pair),&f,&b); + return rb_ary_new3(2,INT2FIX(f),INT2FIX(b)); } static VALUE curses_color_pair(VALUE obj, VALUE attrs) { - return INT2FIX(COLOR_PAIR(NUM2INT(attrs))); + return INT2FIX(COLOR_PAIR(NUM2INT(attrs))); } static VALUE curses_pair_number(VALUE obj, VALUE attrs) { - return INT2FIX(PAIR_NUMBER(NUM2INT(attrs))); + curses_stdscr(); + return INT2FIX(PAIR_NUMBER(NUM2INT(attrs))); } #endif /* USE_COLOR */ #ifdef USE_MOUSE struct mousedata { - MEVENT *mevent; + MEVENT *mevent; }; static void no_mevent(void) { - rb_raise(rb_eRuntimeError, "no such mouse event"); + rb_raise(rb_eRuntimeError, "no such mouse event"); } #define GetMOUSE(obj, data) do {\ if (!OBJ_TAINTED(obj) && rb_safe_level() >= 4)\ - rb_raise(rb_eSecurityError, "Insecure: operation on untainted mouse");\ + rb_raise(rb_eSecurityError, "Insecure: operation on untainted mouse");\ Data_Get_Struct(obj, struct mousedata, data);\ if (data->mevent == 0) no_mevent();\ } while (0) @@ -669,49 +695,53 @@ static void curses_mousedata_free(struct mousedata *mdata) { - if (mdata->mevent) - xfree(mdata->mevent); + if (mdata->mevent) + xfree(mdata->mevent); } static VALUE curses_getmouse(VALUE obj) { - struct mousedata *mdata; - VALUE val; + struct mousedata *mdata; + VALUE val; - val = Data_Make_Struct(cMouseEvent,struct mousedata, - 0,curses_mousedata_free,mdata); - mdata->mevent = (MEVENT*)xmalloc(sizeof(MEVENT)); - return (getmouse(mdata->mevent) == OK) ? val : Qnil; + curses_stdscr(); + val = Data_Make_Struct(cMouseEvent,struct mousedata, + 0,curses_mousedata_free,mdata); + mdata->mevent = (MEVENT*)xmalloc(sizeof(MEVENT)); + return (getmouse(mdata->mevent) == OK) ? val : Qnil; } static VALUE curses_ungetmouse(VALUE obj, VALUE mevent) { - struct mousedata *mdata; + struct mousedata *mdata; - GetMOUSE(mevent,mdata); - return (ungetmouse(mdata->mevent) == OK) ? Qtrue : Qfalse; + curses_stdscr(); + GetMOUSE(mevent,mdata); + return (ungetmouse(mdata->mevent) == OK) ? Qtrue : Qfalse; } static VALUE curses_mouseinterval(VALUE obj, VALUE interval) { - return mouseinterval(NUM2INT(interval)) ? Qtrue : Qfalse; + curses_stdscr(); + return mouseinterval(NUM2INT(interval)) ? Qtrue : Qfalse; } static VALUE curses_mousemask(VALUE obj, VALUE mask) { - return INT2NUM(mousemask(NUM2UINT(mask),NULL)); + curses_stdscr(); + return INT2NUM(mousemask(NUM2UINT(mask),NULL)); } #define DEFINE_MOUSE_GET_MEMBER(func_name,mem) \ -static VALUE func_name (VALUE mouse) \ + static VALUE func_name (VALUE mouse) \ { \ - struct mousedata *mdata; \ - GetMOUSE(mouse, mdata); \ - return (UINT2NUM(mdata->mevent -> mem)); \ + struct mousedata *mdata; \ + GetMOUSE(mouse, mdata); \ + return (UINT2NUM(mdata->mevent -> mem)); \ } DEFINE_MOUSE_GET_MEMBER(curs_mouse_id, id) @@ -726,8 +756,9 @@ curses_timeout(VALUE obj, VALUE delay) { #ifdef HAVE_TIMEOUT - timeout(NUM2INT(delay)); - return Qnil; + curses_stdscr(); + timeout(NUM2INT(delay)); + return Qnil; #else rb_notimplement(); #endif @@ -737,7 +768,8 @@ curses_def_prog_mode(VALUE obj) { #ifdef HAVE_DEF_PROG_MODE - return def_prog_mode() == OK ? Qtrue : Qfalse; + curses_stdscr(); + return def_prog_mode() == OK ? Qtrue : Qfalse; #else rb_notimplement(); #endif @@ -747,7 +779,8 @@ curses_reset_prog_mode(VALUE obj) { #ifdef HAVE_RESET_PROG_MODE - return reset_prog_mode() == OK ? Qtrue : Qfalse; + curses_stdscr(); + return reset_prog_mode() == OK ? Qtrue : Qfalse; #else rb_notimplement(); #endif @@ -807,7 +840,7 @@ window_close(VALUE obj) { struct windata *winp; - + GetWINDOW(obj, winp); delwin(winp->window); winp->window = 0; @@ -820,10 +853,10 @@ window_clear(VALUE obj) { struct windata *winp; - + GetWINDOW(obj, winp); wclear(winp->window); - + return Qnil; } @@ -832,10 +865,10 @@ window_clrtoeol(VALUE obj) { struct windata *winp; - + GetWINDOW(obj, winp); wclrtoeol(winp->window); - + return Qnil; } @@ -844,10 +877,10 @@ window_refresh(VALUE obj) { struct windata *winp; - + GetWINDOW(obj, winp); wrefresh(winp->window); - + return Qnil; } @@ -872,7 +905,7 @@ window_move(VALUE obj, VALUE y, VALUE x) { struct windata *winp; - + GetWINDOW(obj, winp); mvwin(winp->window, NUM2INT(y), NUM2INT(x)); @@ -884,7 +917,7 @@ window_setpos(VALUE obj, VALUE y, VALUE x) { struct windata *winp; - + GetWINDOW(obj, winp); wmove(winp->window, NUM2INT(y), NUM2INT(x)); return Qnil; @@ -924,11 +957,11 @@ #if defined(getmaxy) return INT2FIX(getmaxy(winp->window)); #elif defined(getmaxyx) - { + { int x, y; getmaxyx(winp->window, y, x); return INT2FIX(y); - } + } #else return INT2FIX(winp->window->_maxy+1); #endif @@ -944,11 +977,11 @@ #if defined(getmaxx) return INT2FIX(getmaxx(winp->window)); #elif defined(getmaxyx) - { + { int x, y; getmaxyx(winp->window, y, x); return INT2FIX(x); - } + } #else return INT2FIX(winp->window->_maxx+1); #endif @@ -999,24 +1032,24 @@ box(winp->window, NUM2CH(vert), NUM2CH(hor)); if (!NIL_P(corn)) { - int cur_x, cur_y, x, y; - chtype c; + int cur_x, cur_y, x, y; + chtype c; - c = NUM2CH(corn); - getyx(winp->window, cur_y, cur_x); - x = NUM2INT(window_maxx(self)) - 1; - y = NUM2INT(window_maxy(self)) - 1; - wmove(winp->window, 0, 0); - waddch(winp->window, c); - wmove(winp->window, y, 0); - waddch(winp->window, c); - wmove(winp->window, y, x); - waddch(winp->window, c); - wmove(winp->window, 0, x); - waddch(winp->window, c); - wmove(winp->window, cur_y, cur_x); + c = NUM2CH(corn); + getyx(winp->window, cur_y, cur_x); + x = NUM2INT(window_maxx(self)) - 1; + y = NUM2INT(window_maxy(self)) - 1; + wmove(winp->window, 0, 0); + waddch(winp->window, c); + wmove(winp->window, y, 0); + waddch(winp->window, c); + wmove(winp->window, y, x); + waddch(winp->window, c); + wmove(winp->window, 0, x); + waddch(winp->window, c); + wmove(winp->window, cur_y, cur_x); } - + return Qnil; } @@ -1025,7 +1058,7 @@ window_standout(VALUE obj) { struct windata *winp; - + GetWINDOW(obj, winp); wstandout(winp->window); return Qnil; @@ -1036,7 +1069,7 @@ window_standend(VALUE obj) { struct windata *winp; - + GetWINDOW(obj, winp); wstandend(winp->window); return Qnil; @@ -1047,7 +1080,7 @@ window_inch(VALUE obj) { struct windata *winp; - + GetWINDOW(obj, winp); return CH2FIX(winch(winp->window)); } @@ -1057,10 +1090,10 @@ window_addch(VALUE obj, VALUE ch) { struct windata *winp; - + GetWINDOW(obj, winp); waddch(winp->window, NUM2CH(ch)); - + return Qnil; } @@ -1069,10 +1102,10 @@ window_insch(VALUE obj, VALUE ch) { struct windata *winp; - + GetWINDOW(obj, winp); winsch(winp->window, NUM2CH(ch)); - + return Qnil; } @@ -1124,7 +1157,7 @@ { struct windata *winp; char rtn[1024]; /* This should be big enough.. I hope */ - + GetWINDOW(obj, winp); rb_read_check(stdin); #if defined(HAVE_WGETNSTR) @@ -1140,7 +1173,7 @@ window_delch(VALUE obj) { struct windata *winp; - + GetWINDOW(obj, winp); wdelch(winp->window); return Qnil; @@ -1152,7 +1185,7 @@ { #if defined(HAVE_WDELETELN) || defined(wdeleteln) struct windata *winp; - + GetWINDOW(obj, winp); wdeleteln(winp->window); #endif @@ -1165,7 +1198,7 @@ { #if defined(HAVE_WINSERTLN) || defined(winsertln) struct windata *winp; - + GetWINDOW(obj, winp); winsertln(winp->window); #endif @@ -1175,36 +1208,36 @@ static VALUE window_scrollok(VALUE obj, VALUE bf) { - struct windata *winp; + struct windata *winp; - GetWINDOW(obj, winp); - scrollok(winp->window, RTEST(bf) ? TRUE : FALSE); - return Qnil; + GetWINDOW(obj, winp); + scrollok(winp->window, RTEST(bf) ? TRUE : FALSE); + return Qnil; } static VALUE window_idlok(VALUE obj, VALUE bf) { - struct windata *winp; + struct windata *winp; - GetWINDOW(obj, winp); - idlok(winp->window, RTEST(bf) ? TRUE : FALSE); - return Qnil; + GetWINDOW(obj, winp); + idlok(winp->window, RTEST(bf) ? TRUE : FALSE); + return Qnil; } static VALUE window_setscrreg(VALUE obj, VALUE top, VALUE bottom) { #ifdef HAVE_WSETSCRREG - struct windata *winp; - int res; + struct windata *winp; + int res; - GetWINDOW(obj, winp); - res = wsetscrreg(winp->window, NUM2INT(top), NUM2INT(bottom)); - /* may have to raise exception on ERR */ - return (res == OK) ? Qtrue : Qfalse; + GetWINDOW(obj, winp); + res = wsetscrreg(winp->window, NUM2INT(top), NUM2INT(bottom)); + /* may have to raise exception on ERR */ + return (res == OK) ? Qtrue : Qfalse; #else - return Qfalse; + return Qfalse; #endif } @@ -1212,36 +1245,36 @@ static VALUE window_color_set(VALUE obj, VALUE col) { - struct windata *winp; - int res; + struct windata *winp; + int res; - GetWINDOW(obj, winp); - res = wcolor_set(winp->window, NUM2INT(col), NULL); - return (res == OK) ? Qtrue : Qfalse; + GetWINDOW(obj, winp); + res = wcolor_set(winp->window, NUM2INT(col), NULL); + return (res == OK) ? Qtrue : Qfalse; } #endif /* defined(USE_COLOR) && defined(HAVE_WCOLOR_SET) */ static VALUE window_scroll(VALUE obj) { - struct windata *winp; + struct windata *winp; - GetWINDOW(obj, winp); - /* may have to raise exception on ERR */ - return (scroll(winp->window) == OK) ? Qtrue : Qfalse; + GetWINDOW(obj, winp); + /* may have to raise exception on ERR */ + return (scroll(winp->window) == OK) ? Qtrue : Qfalse; } static VALUE window_scrl(VALUE obj, VALUE n) { #ifdef HAVE_WSCRL - struct windata *winp; + struct windata *winp; - GetWINDOW(obj, winp); - /* may have to raise exception on ERR */ - return (wscrl(winp->window,NUM2INT(n)) == OK) ? Qtrue : Qfalse; + GetWINDOW(obj, winp); + /* may have to raise exception on ERR */ + return (wscrl(winp->window,NUM2INT(n)) == OK) ? Qtrue : Qfalse; #else - return Qfalse; + return Qfalse; #endif } @@ -1249,12 +1282,12 @@ window_attroff(VALUE obj, VALUE attrs) { #ifdef HAVE_WATTROFF - struct windata *winp; + struct windata *winp; - GetWINDOW(obj,winp); - return INT2FIX(wattroff(winp->window,NUM2INT(attrs))); + GetWINDOW(obj,winp); + return INT2FIX(wattroff(winp->window,NUM2INT(attrs))); #else - return Qtrue; + return Qtrue; #endif } @@ -1262,21 +1295,21 @@ window_attron(VALUE obj, VALUE attrs) { #ifdef HAVE_WATTRON - struct windata *winp; - VALUE val; + struct windata *winp; + VALUE val; - GetWINDOW(obj,winp); - val = INT2FIX(wattron(winp->window,NUM2INT(attrs))); - if( rb_block_given_p() ){ - rb_yield(val); - wattroff(winp->window,NUM2INT(attrs)); - return val; - } - else{ - return val; - } + GetWINDOW(obj,winp); + val = INT2FIX(wattron(winp->window,NUM2INT(attrs))); + if( rb_block_given_p() ){ + rb_yield(val); + wattroff(winp->window,NUM2INT(attrs)); + return val; + } + else{ + return val; + } #else - return Qtrue; + return Qtrue; #endif } @@ -1284,12 +1317,12 @@ window_attrset(VALUE obj, VALUE attrs) { #ifdef HAVE_WATTRSET - struct windata *winp; + struct windata *winp; - GetWINDOW(obj,winp); - return INT2FIX(wattrset(winp->window,NUM2INT(attrs))); + GetWINDOW(obj,winp); + return INT2FIX(wattrset(winp->window,NUM2INT(attrs))); #else - return Qtrue; + return Qtrue; #endif } @@ -1297,24 +1330,24 @@ window_bkgdset(VALUE obj, VALUE ch) { #ifdef HAVE_WBKGDSET - struct windata *winp; + struct windata *winp; - GetWINDOW(obj,winp); - wbkgdset(winp->window, NUM2CH(ch)); + GetWINDOW(obj,winp); + wbkgdset(winp->window, NUM2CH(ch)); #endif - return Qnil; + return Qnil; } static VALUE window_bkgd(VALUE obj, VALUE ch) { #ifdef HAVE_WBKGD - struct windata *winp; + struct windata *winp; - GetWINDOW(obj,winp); - return (wbkgd(winp->window, NUM2CH(ch)) == OK) ? Qtrue : Qfalse; + GetWINDOW(obj,winp); + return (wbkgd(winp->window, NUM2CH(ch)) == OK) ? Qtrue : Qfalse; #else - return Qfalse; + return Qfalse; #endif } @@ -1322,13 +1355,13 @@ window_getbkgd(VALUE obj) { #ifdef HAVE_WGETBKGD - chtype c; - struct windata *winp; + chtype c; + struct windata *winp; - GetWINDOW(obj,winp); - return (c = getbkgd(winp->window) != ERR) ? CH2FIX(c) : Qnil; + GetWINDOW(obj,winp); + return (c = getbkgd(winp->window) != ERR) ? CH2FIX(c) : Qnil; #else - return Qnil; + return Qnil; #endif } @@ -1336,12 +1369,12 @@ window_resize(VALUE obj, VALUE lin, VALUE col) { #if defined(HAVE_WRESIZE) - struct windata *winp; + struct windata *winp; - GetWINDOW(obj,winp); - return wresize(winp->window, NUM2INT(lin), NUM2INT(col)) == OK ? Qtrue : Qfalse; + GetWINDOW(obj,winp); + return wresize(winp->window, NUM2INT(lin), NUM2INT(col)) == OK ? Qtrue : Qfalse; #else - return Qnil; + return Qnil; #endif } @@ -1350,17 +1383,17 @@ window_keypad(VALUE obj, VALUE val) { #ifdef HAVE_KEYPAD - struct windata *winp; + struct windata *winp; - GetWINDOW(obj,winp); - /* keypad() of NetBSD's libcurses returns no value */ + GetWINDOW(obj,winp); + /* keypad() of NetBSD's libcurses returns no value */ #if defined(__NetBSD__) && !defined(NCURSES_VERSION) - keypad(winp->window,(RTEST(val) ? TRUE : FALSE)); - return Qnil; + keypad(winp->window,(RTEST(val) ? TRUE : FALSE)); + return Qnil; #else - /* may have to raise exception on ERR */ - return (keypad(winp->window,RTEST(val) ? TRUE : FALSE)) == OK ? - Qtrue : Qfalse; + /* may have to raise exception on ERR */ + return (keypad(winp->window,RTEST(val) ? TRUE : FALSE)) == OK ? + Qtrue : Qfalse; #endif #else rb_notimplement(); @@ -1371,15 +1404,15 @@ window_nodelay(VALUE obj, VALUE val) { #ifdef HAVE_NODELAY - struct windata *winp; - GetWINDOW(obj,winp); + struct windata *winp; + GetWINDOW(obj,winp); - /* nodelay() of NetBSD's libcurses returns no value */ + /* nodelay() of NetBSD's libcurses returns no value */ #if defined(__NetBSD__) && !defined(NCURSES_VERSION) - nodelay(winp->window, RTEST(val) ? TRUE : FALSE); - return Qnil; + nodelay(winp->window, RTEST(val) ? TRUE : FALSE); + return Qnil; #else - return nodelay(winp->window,RTEST(val) ? TRUE : FALSE) == OK ? Qtrue : Qfalse; + return nodelay(winp->window,RTEST(val) ? TRUE : FALSE) == OK ? Qtrue : Qfalse; #endif #else rb_notimplement(); @@ -1390,11 +1423,11 @@ window_timeout(VALUE obj, VALUE delay) { #ifdef HAVE_WTIMEOUT - struct windata *winp; - GetWINDOW(obj,winp); + struct windata *winp; + GetWINDOW(obj,winp); - wtimeout(winp->window,NUM2INT(delay)); - return Qnil; + wtimeout(winp->window,NUM2INT(delay)); + return Qnil; #else rb_notimplement(); #endif @@ -1471,7 +1504,7 @@ rb_define_module_function(mCurses, "init_color", curses_init_color, 4); rb_define_module_function(mCurses, "has_colors?", curses_has_colors, 0); rb_define_module_function(mCurses, "can_change_color?", - curses_can_change_color, 0); + curses_can_change_color, 0); rb_define_module_function(mCurses, "color_content", curses_color_content, 1); rb_define_module_function(mCurses, "pair_content", curses_pair_content, 1); rb_define_module_function(mCurses, "color_pair", curses_color_pair, 1); @@ -1707,16 +1740,16 @@ #endif #ifdef KEY_F /* KEY_F(n) : 0 <= n <= 63 */ - { - int i; - char c[8]; - for( i=0; i<64; i++ ){ - sprintf(c, "KEY_F%d", i); - rb_define_const(mCurses, c, INT2NUM(KEY_F(i))); - sprintf(c, "F%d", i); - rb_define_const(mKey, c, INT2NUM(KEY_F(i))); + { + int i; + char c[8]; + for( i=0; i<64; i++ ){ + sprintf(c, "KEY_F%d", i); + rb_define_const(mCurses, c, INT2NUM(KEY_F(i))); + sprintf(c, "F%d", i); + rb_define_const(mKey, c, INT2NUM(KEY_F(i))); + } } - } #endif #ifdef KEY_DL rb_curses_define_const(KEY_DL); @@ -2050,14 +2083,14 @@ rb_curses_define_const(KEY_MAX); rb_define_const(mKey, "MAX", INT2NUM(KEY_MAX)); #endif - { - int c; - char name[] = "KEY_CTRL_x"; - for( c = 'A'; c <= 'Z'; c++ ){ - sprintf(name, "KEY_CTRL_%c", c); - rb_define_const(mCurses, name, INT2FIX(c - 'A' + 1)); + { + int c; + char name[] = "KEY_CTRL_x"; + for( c = 'A'; c <= 'Z'; c++ ){ + sprintf(name, "KEY_CTRL_%c", c); + rb_define_const(mCurses, name, INT2FIX(c - 'A' + 1)); + } } - } #undef rb_curses_define_const rb_set_end_proc(curses_finalize, 0); Index: ruby_1_9_1/version.h =================================================================== --- ruby_1_9_1/version.h (revision 26476) +++ ruby_1_9_1/version.h (revision 26477) @@ -1,5 +1,5 @@ #define RUBY_VERSION "1.9.1" -#define RUBY_PATCHLEVEL 382 +#define RUBY_PATCHLEVEL 383 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/