diff --git a/ext/curses/curses.c b/ext/curses/curses.c index 1bc32e712f..aeda267dca 100644 --- a/ext/curses/curses.c +++ b/ext/curses/curses.c @@ -13,31 +13,27 @@ * - Takaaki Tateishi (ttate@kt.jaist.ac.jp) */ -#ifdef HAVE_NCURSES_H +#if defined(HAVE_NCURSES_H) # include +#elif defined(HAVE_NCURSES_CURSES_H) +# include +#elif defined(HAVE_CURSES_COLR_CURSES_H) +# include +# include #else -# ifdef HAVE_NCURSES_CURSES_H -# include -#else -# ifdef HAVE_CURSES_COLR_CURSES_H -# include -# include -# else -# include -# if (defined(__bsdi__) || defined(__NetBSD__) || defined(__APPLE__)) && !defined(_maxx) -# define _maxx maxx -# endif -# if (defined(__bsdi__) || defined(__NetBSD__) || defined(__APPLE__)) && !defined(_maxy) -# define _maxy maxy -# endif -# if (defined(__bsdi__) || defined(__NetBSD__) || defined(__APPLE__)) && !defined(_begx) -# define _begx begx -# endif -# if (defined(__bsdi__) || defined(__NetBSD__) || defined(__APPLE__)) && !defined(_begy) -# define _begy begy -# endif +# include +# if (defined(__bsdi__) || defined(__NetBSD__) || defined(__APPLE__)) && !defined(_maxx) +# define _maxx maxx +# endif +# if (defined(__bsdi__) || defined(__NetBSD__) || defined(__APPLE__)) && !defined(_maxy) +# define _maxy maxy +# endif +# if (defined(__bsdi__) || defined(__NetBSD__) || defined(__APPLE__)) && !defined(_begx) +# define _begx begx +# endif +# if (defined(__bsdi__) || defined(__NetBSD__) || defined(__APPLE__)) && !defined(_begy) +# define _begy begy # endif -#endif #endif #ifdef HAVE_INIT_COLOR @@ -49,7 +45,7 @@ # define USE_MOUSE 1 #endif -#include "stdio.h" +#include #include "ruby.h" #include "rubyio.h" @@ -78,12 +74,10 @@ no_window() rb_raise(rb_eRuntimeError, "already closed window"); } - -#define GetWINDOW(obj, winp) {\ +#define GetWINDOW(obj, winp) do {\ Data_Get_Struct(obj, struct windata, winp);\ if (winp->window == 0) no_window();\ -} - +} while (0) static void free_window(winp) @@ -596,19 +590,19 @@ static void no_mevent() { rb_raise(rb_eRuntimeError, "no such mouse event"); -}; +} -#define GetMOUSE(obj, data) {\ +#define GetMOUSE(obj, data) do {\ Data_Get_Struct(obj, struct mousedata, data);\ if (data->mevent == 0) no_mevent();\ -} +} while (0) static void curses_mousedata_free(struct mousedata *mdata) { if (mdata->mevent) free(mdata->mevent); -}; +} static VALUE curses_getmouse(VALUE obj) @@ -620,7 +614,7 @@ curses_getmouse(VALUE obj) 0,curses_mousedata_free,mdata); mdata->mevent = (MEVENT*)malloc(sizeof(MEVENT)); return (getmouse(mdata->mevent) == OK) ? val : Qnil; -}; +} static VALUE curses_ungetmouse(VALUE obj, VALUE mevent) @@ -629,19 +623,19 @@ curses_ungetmouse(VALUE obj, VALUE mevent) GetMOUSE(mevent,mdata); return (ungetmouse(mdata->mevent) == OK) ? Qtrue : Qfalse; -}; +} static VALUE curses_mouseinterval(VALUE obj, VALUE interval) { return mouseinterval(NUM2INT(interval)) ? Qtrue : Qfalse; -}; +} static VALUE curses_mousemask(VALUE obj, VALUE mask) { return INT2NUM(mousemask(NUM2UINT(mask),NULL)); -}; +} #define DEFINE_MOUSE_GET_MEMBER(func_name,mem) \ static VALUE func_name (VALUE mouse) \ @@ -651,11 +645,11 @@ static VALUE func_name (VALUE mouse) \ return (UINT2NUM(mdata->mevent -> mem)); \ } -DEFINE_MOUSE_GET_MEMBER(curs_mouse_id, id); -DEFINE_MOUSE_GET_MEMBER(curs_mouse_x, x); -DEFINE_MOUSE_GET_MEMBER(curs_mouse_y, y); -DEFINE_MOUSE_GET_MEMBER(curs_mouse_z, z); -DEFINE_MOUSE_GET_MEMBER(curs_mouse_bstate, bstate); +DEFINE_MOUSE_GET_MEMBER(curs_mouse_id, id) +DEFINE_MOUSE_GET_MEMBER(curs_mouse_x, x) +DEFINE_MOUSE_GET_MEMBER(curs_mouse_y, y) +DEFINE_MOUSE_GET_MEMBER(curs_mouse_z, z) +DEFINE_MOUSE_GET_MEMBER(curs_mouse_bstate, bstate) #undef define_curs_mouse_member #endif /* USE_MOUSE */ @@ -832,19 +826,19 @@ window_maxy(obj) VALUE obj; { struct windata *winp; - int x, y; GetWINDOW(obj, winp); -#ifdef getmaxy +#if defined(getmaxy) return INT2FIX(getmaxy(winp->window)); -#else -#ifdef getmaxyx - getmaxyx(winp->window, y, x); - return INT2FIX(y); +#elif defined(getmaxyx) + { + int x, y; + getmaxyx(winp->window, y, x); + return INT2FIX(y); + } #else return INT2FIX(winp->window->_maxy+1); #endif -#endif } /* def maxx */ @@ -853,19 +847,19 @@ window_maxx(obj) VALUE obj; { struct windata *winp; - int x, y; GetWINDOW(obj, winp); -#ifdef getmaxx +#if defined(getmaxx) return INT2FIX(getmaxx(winp->window)); -#else -#ifdef getmaxyx - getmaxyx(winp->window, y, x); - return INT2FIX(x); +#elif defined(getmaxyx) + { + int x, y; + getmaxyx(winp->window, y, x); + return INT2FIX(x); + } #else return INT2FIX(winp->window->_maxx+1); #endif -#endif } /* def begy */ @@ -916,7 +910,7 @@ window_box(argc, argv, self) GetWINDOW(self, winp); box(winp->window, NUM2CHR(vert), NUM2CHR(hor)); - if( argc == 3 ){ + if (!NIL_P(corn)) { int cur_x, cur_y, x, y; char c; @@ -1096,7 +1090,6 @@ static VALUE window_idlok(VALUE obj, VALUE bf) { struct windata *winp; - int res; GetWINDOW(obj, winp); idlok(winp->window, RTEST(bf) ? TRUE : FALSE); @@ -1113,7 +1106,7 @@ window_setscrreg(VALUE obj, VALUE top, VALUE bottom) res = wsetscrreg(winp->window, NUM2INT(top), NUM2INT(bottom)); /* may have to raise exception on ERR */ return (res == OK) ? Qtrue : Qfalse; -}; +} static VALUE window_scroll(VALUE obj) @@ -1142,7 +1135,7 @@ window_attroff(VALUE obj, VALUE attrs) GetWINDOW(obj,winp); return INT2FIX(wattroff(winp->window,NUM2INT(attrs))); -}; +} static VALUE window_attron(VALUE obj, VALUE attrs) @@ -1159,8 +1152,8 @@ window_attron(VALUE obj, VALUE attrs) } else{ return val; - }; -}; + } +} static VALUE window_attrset(VALUE obj, VALUE attrs) @@ -1229,7 +1222,7 @@ window_keypad(VALUE obj, VALUE val) return (keypad(winp->window,RTEST(val) ? TRUE : FALSE)) == OK ? Qtrue : Qfalse; #endif -}; +} #endif /* HAVE_KEYPAD */ /*------------------------- Initialization -------------------------*/ @@ -1537,8 +1530,8 @@ Init_curses() 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); @@ -1878,7 +1871,7 @@ Init_curses() 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 diff --git a/ext/gdbm/gdbm.c b/ext/gdbm/gdbm.c index d30f5dec7a..9acbf04729 100644 --- a/ext/gdbm/gdbm.c +++ b/ext/gdbm/gdbm.c @@ -36,11 +36,11 @@ closed_dbm() rb_raise(rb_eRuntimeError, "closed GDBM file"); } -#define GetDBM(obj, dbmp) {\ +#define GetDBM(obj, dbmp) do {\ Data_Get_Struct(obj, struct dbmdata, dbmp);\ if (dbmp == 0) closed_dbm();\ if (dbmp->di_dbm == 0) closed_dbm();\ -} +} while (0) static void free_dbm(dbmp) @@ -66,14 +66,12 @@ fgdbm_close(obj) } static VALUE -fgdbm_s_new(argc, argv, klass) +fgdbm_s_alloc(klass) int argc; VALUE *argv; VALUE klass; { - VALUE obj = Data_Wrap_Struct(klass, 0, free_dbm, 0); - rb_obj_call_init(obj, argc, argv); - return obj; + return Data_Wrap_Struct(klass, 0, free_dbm, 0); } static VALUE @@ -125,6 +123,7 @@ fgdbm_initialize(argc, argv, obj) } dbmp = ALLOC(struct dbmdata); + free_dbm(DATA_PTR(obj)); DATA_PTR(obj) = dbmp; dbmp->di_dbm = dbm; dbmp->di_size = -1; @@ -924,7 +923,7 @@ Init_gdbm() rb_eGDBMFatalError = rb_define_class("GDBMFatalError", rb_eException); rb_include_module(rb_cGDBM, rb_mEnumerable); - rb_define_singleton_method(rb_cGDBM, "new", fgdbm_s_new, -1); + rb_define_singleton_method(rb_cGDBM, "allocate", fgdbm_s_alloc, 0); rb_define_singleton_method(rb_cGDBM, "open", fgdbm_s_open, -1); rb_define_method(rb_cGDBM, "initialize", fgdbm_initialize, -1);