From 3cde544d476b8debc71094decb4c515d07f88679 Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 9 Dec 2008 04:31:41 +0000 Subject: [PATCH] * ext/curses/curses.c (curses_use_default_colors): add new method. a patch from Giancarlo F Bellido in [ruby-core:20434]. * ext/curses/curses.c (curses_tabsize_set): ditto. * ext/curses/curses.c (curses_tabsize_get): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 10 ++++++++++ ext/curses/curses.c | 42 ++++++++++++++++++++++++++++++++++++++++++ ext/curses/extconf.rb | 3 ++- 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 6c375199fb..3d32b07767 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,16 @@ Tue Dec 9 13:25:51 2008 Nobuyoshi Nakada * vm_insnhelper.c (check_cfunc): use function pointer. +Tue Dec 9 13:23:55 2008 Yukihiro Matsumoto + + * ext/curses/curses.c (curses_use_default_colors): add new + method. a patch from Giancarlo F Bellido + in [ruby-core:20434]. + + * ext/curses/curses.c (curses_tabsize_set): ditto. + + * ext/curses/curses.c (curses_tabsize_get): ditto. + Tue Dec 9 12:08:47 2008 Nobuyoshi Nakada * .gdbinit (rp): fixed typo for T_STRUCT. diff --git a/ext/curses/curses.c b/ext/curses/curses.c index b16d824169..1ba1d83b6f 100644 --- a/ext/curses/curses.c +++ b/ext/curses/curses.c @@ -499,6 +499,12 @@ curses_cols(void) return INT2FIX(COLS); } +/** + * Sets Cursor Visibility. + * 0: invisible + * 1: visible + * 2: very visible + */ static VALUE curses_curs_set(VALUE obj, VALUE visibility) { @@ -572,6 +578,38 @@ curses_bkgd(VALUE obj, VALUE ch) #endif } +static VALUE +curses_use_default_colors(VALUE obj) +{ +#if defined(HAVE_USE_DEFAULT_COLORS) + use_default_colors(); + return Qnil; +#else + rb_notimplement(); +#endif +} + +static VALUE +curses_tabsize_set(VALUE obj, VALUE val) +{ +#if defined(HAVE_TABSIZE) + TABSIZE=NUM2INT(val); + return INT2NUM(TABSIZE); +#else + rb_notimplement(); +#endif +} + +static VALUE +curses_tabsize_get(VALUE ojb) +{ +#if defined(HAVE_TABSIZE) + return INT2NUM(TABSIZE); +#else + rb_notimplement(); +#endif +} + static VALUE curses_escdelay_set(VALUE obj, VALUE val) { @@ -1442,6 +1480,10 @@ Init_curses(void) rb_define_module_function(mCurses, "ESCDELAY=", curses_escdelay_set, 1); rb_define_module_function(mCurses, "ESCDELAY", curses_escdelay_get, 0); + rb_define_module_function(mCurses, "TABSIZE", curses_tabsize_get, 0); + rb_define_module_function(mCurses, "TABSIZE=", curses_tabsize_set, 1); + + rb_define_module_function(mCurses, "use_default_colors", curses_use_default_colors, 0); rb_define_module_function(mCurses, "init_screen", curses_init_screen, 0); rb_define_module_function(mCurses, "close_screen", curses_close_screen, 0); rb_define_module_function(mCurses, "closed?", curses_closed, 0); diff --git a/ext/curses/extconf.rb b/ext/curses/extconf.rb index 3aa91702e3..46dc760a31 100644 --- a/ext/curses/extconf.rb +++ b/ext/curses/extconf.rb @@ -21,7 +21,7 @@ elsif have_header(*curses=%w"curses.h") and have_library("curses", "initscr") end if make - for f in %w(beep bkgd bkgdset curs_set deleteln doupdate flash getbkgd getnstr init isendwin keyname keypad resizeterm scrl set setscrreg ungetch wattroff wattron wattrset wbkgd wbkgdset wdeleteln wgetnstr wresize wscrl wsetscrreg def_prog_mode reset_prog_mode timeout wtimeout nodelay init_color wcolor_set) + for f in %w(beep bkgd bkgdset curs_set deleteln doupdate flash getbkgd getnstr init isendwin keyname keypad resizeterm scrl set setscrreg ungetch wattroff wattron wattrset wbkgd wbkgdset wdeleteln wgetnstr wresize wscrl wsetscrreg def_prog_mode reset_prog_mode timeout wtimeout nodelay init_color wcolor_set use_default_colors) have_func(f) || (have_macro(f, curses) && $defs.push(format("-DHAVE_%s", f.upcase))) end flag = "-D_XOPEN_SOURCE_EXTENDED" @@ -29,5 +29,6 @@ if make $defs << flag end have_var("ESCDELAY", curses) + have_var("TABSIZE", curses) create_makefile("curses") end