summaryrefslogtreecommitdiff
path: root/ext/curses
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-09 04:31:41 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-09 04:31:41 +0000
commit3cde544d476b8debc71094decb4c515d07f88679 (patch)
tree678438e06ee7934eebc4d247aecde0ae96d53cb7 /ext/curses
parentfe867f47ac42604cbbefddeae18c88ceab223235 (diff)
* ext/curses/curses.c (curses_use_default_colors): add new
method. a patch from Giancarlo F Bellido <support at coaxialhost.com> 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
Diffstat (limited to 'ext/curses')
-rw-r--r--ext/curses/curses.c42
-rw-r--r--ext/curses/extconf.rb3
2 files changed, 44 insertions, 1 deletions
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)
{
@@ -573,6 +579,38 @@ curses_bkgd(VALUE obj, VALUE ch)
}
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)
{
#if defined(HAVE_ESCDELAY)
@@ -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