summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/curses/curses.c23
-rw-r--r--ext/curses/extconf.rb2
2 files changed, 25 insertions, 0 deletions
diff --git a/ext/curses/curses.c b/ext/curses/curses.c
index d76a941433..2b15c028d0 100644
--- a/ext/curses/curses.c
+++ b/ext/curses/curses.c
@@ -677,6 +677,16 @@ curses_can_change_color(VALUE obj)
}
static VALUE
+curses_colors(VALUE obj)
+{
+#if defined(HAVE_COLORS)
+ return INT2FIX(COLORS);
+#else
+ rb_notimplement();
+#endif
+}
+
+static VALUE
curses_color_content(VALUE obj, VALUE color)
{
short r,g,b;
@@ -685,6 +695,17 @@ curses_color_content(VALUE obj, VALUE color)
return rb_ary_new3(3,INT2FIX(r),INT2FIX(g),INT2FIX(b));
}
+
+static VALUE
+curses_color_pairs(VALUE obj)
+{
+#if defined(HAVE_COLOR_PAIRS)
+ return INT2FIX(COLOR_PAIRS);
+#else
+ rb_notimplement();
+#endif
+}
+
static VALUE
curses_pair_content(VALUE obj, VALUE pair)
{
@@ -1537,7 +1558,9 @@ Init_curses(void)
rb_define_module_function(mCurses, "has_colors?", curses_has_colors, 0);
rb_define_module_function(mCurses, "can_change_color?",
curses_can_change_color, 0);
+ rb_define_module_function(mCurses, "colors", curses_colors, 0);
rb_define_module_function(mCurses, "color_content", curses_color_content, 1);
+ rb_define_module_function(mCurses, "color_pairs", curses_color_pairs, 0);
rb_define_module_function(mCurses, "pair_content", curses_pair_content, 1);
rb_define_module_function(mCurses, "color_pair", curses_color_pair, 1);
rb_define_module_function(mCurses, "pair_number", curses_pair_number, 1);
diff --git a/ext/curses/extconf.rb b/ext/curses/extconf.rb
index e3bcb1f651..4172c8a6b6 100644
--- a/ext/curses/extconf.rb
+++ b/ext/curses/extconf.rb
@@ -30,5 +30,7 @@ if make
end
have_var("ESCDELAY", curses)
have_var("TABSIZE", curses)
+ have_var("COLORS", curses)
+ have_var("COLOR_PAIRS", curses)
create_makefile("curses")
end