ncurses_wrap.c in ncursesw-1.4.0.0 vs ncurses_wrap.c in ncursesw-1.4.1
- old
+ new
@@ -571,14 +571,16 @@
}
static VALUE rbncurs_addch(VALUE dummy, VALUE arg1) {
return INT2NUM(addch((int) NUM2ULONG(arg1)));
}
+#ifdef HAVE_ADD_WCH
static VALUE rbncurs_add_wch(VALUE dummy, VALUE arg1) {
wchar_t c = NUM2ULONG(arg1);
return INT2NUM(add_wch((cchar_t *)&c));
}
+#endif
static VALUE rbncurs_addchnstr(VALUE dummy, VALUE arg1, VALUE arg2) {
chtype * chstr = RB2CHSTR(arg1);
VALUE return_value = INT2NUM(addchnstr(chstr, NUM2INT(arg2)));
xfree(chstr);
return return_value;
@@ -916,10 +918,11 @@
/* non-wide char getch */
static int rbncurshelper_nonblocking_wgetch(WINDOW *c_win) {
return rbncurshelper_do_wgetch_functor (c_win, &wgetch);
}
+#ifdef HAVE_GET_WCH
/* not thread safe: wide char getch */
static wint_t wget_wch_back;
static int my_wget_wch (WINDOW *c_win) {
return wget_wch (c_win, &wget_wch_back);
}
@@ -929,18 +932,21 @@
static VALUE rbncurshelper_nonblocking_wget_wch(WINDOW *c_win) {
int retcode = rbncurshelper_do_wgetch_functor (c_win, &my_wget_wch);
VALUE r = rb_assoc_new (INT2NUM(retcode), LONG2NUM(wget_wch_back));
return r;
}
+#endif
static VALUE rbncurs_getch(VALUE dummy) {
return INT2NUM(rbncurshelper_nonblocking_wgetch(stdscr));
}
+#ifdef HAVE_GET_WCH
static VALUE rbncurs_get_wch(VALUE dummy) {
return rbncurshelper_nonblocking_wget_wch(stdscr);
}
+#endif
static VALUE rbncurs_halfdelay(VALUE dummy, VALUE arg1) {
return INT2NUM(rbncurshelper_halfdelay_cbreak(NUM2INT(arg1), 1));
}
static VALUE rbncurs_has_colors(VALUE dummy) {
@@ -1504,14 +1510,16 @@
return INT2NUM(vline((int) NUM2ULONG(arg1), NUM2INT(arg2)));
}
static VALUE rbncurs_waddch(VALUE dummy, VALUE arg1, VALUE arg2) {
return INT2NUM(waddch(get_window(arg1), (int) NUM2ULONG(arg2)));
}
+#ifdef HAVE_ADD_WCH
static VALUE rbncurs_wadd_wch(VALUE dummy, VALUE arg1, VALUE arg2) {
cchar_t t = { 0, { NUM2ULONG(arg2), 0 } };
return INT2NUM(wadd_wch(get_window(arg1), &t));
}
+#endif
static VALUE rbncurs_waddchnstr(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3) {
chtype * chstr = RB2CHSTR(arg2);
VALUE return_value = INT2NUM(waddchnstr(get_window(arg1), chstr,
NUM2INT(arg3)));
xfree(chstr);
@@ -1583,13 +1591,15 @@
}
static VALUE rbncurs_wgetch(VALUE dummy, VALUE arg1) {
return INT2NUM(rbncurshelper_nonblocking_wgetch(get_window(arg1)));
}
+#ifdef HAVE_GET_WCH
static VALUE rbncurs_wget_wch(VALUE dummy, VALUE arg1) {
return rbncurshelper_nonblocking_wget_wch(get_window(arg1));
}
+#endif
static VALUE rbncurs_whline(VALUE dummy, VALUE arg1, VALUE arg2, VALUE arg3) {
return INT2NUM(whline(get_window(arg1), (int) NUM2ULONG(arg2), NUM2INT(arg3)));
}
static VALUE rbncurs_winch(VALUE dummy, VALUE arg1) {
@@ -1729,11 +1739,13 @@
}
static void init_functions_2(void) {
NCFUNC(addch, 1);
+#ifdef HAVE_ADD_WCH
NCFUNC(add_wch, 1);
+#endif
NCFUNC(addchnstr, 2);
NCFUNC(addchstr, 1);
NCFUNC(addnstr, 2);
NCFUNC(addstr, 1);
NCFUNC(attroff, 1);
@@ -1812,12 +1824,14 @@
NCFUNC(erasechar, 0);
NCFUNC(flash, 0);
NCFUNC(flushinp, 0);
NCFUNC(getbkgd, 1);
NCFUNC(getch, 0);
+#ifdef HAVE_GET_WCH
NCFUNC(get_wch, 0);
NCFUNC(wget_wch, 1);
+#endif
NCFUNC(halfdelay, 1);
rb_define_module_function(mNcurses, "has_colors?",
(&rbncurs_has_colors),
0);
rb_define_module_function(mNcurses, "has_ic?",
@@ -1993,10 +2007,12 @@
#ifdef HAVE_VIDATTR
NCFUNC(vidattr, 1);
#endif
NCFUNC(vline, 2);
NCFUNC(waddch, 2);
+#ifdef HAVE_ADD_WCH
NCFUNC(wadd_wch, 2);
+#endif
NCFUNC(waddchnstr, 3);
NCFUNC(waddchstr, 2);
NCFUNC(waddnstr, 3);
NCFUNC(waddstr, 2);
NCFUNC(wattron, 2);