summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-08-27 11:21:30 +0000
committerocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-08-27 11:21:30 +0000
commit50f9044bf526c4276436e2369849f506935f0b40 (patch)
tree19f47d9df4746311e5b4fb11fc10f780db015922 /ext
parent308c783157fcee06c282bb10108bf4ce813d96b6 (diff)
* ext/curses/curses.c ({curses,window}_clrtoeol): added. suggested
by Reyn Vlietstra. * ext/curses/curses.c: chtype in curses is not `char', rahter `long'. [ruby-Bugs:2298] * ext/curses/view.rb: String =~ String is deprecated. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9034 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r--ext/curses/curses.c57
-rw-r--r--ext/curses/view.rb2
2 files changed, 43 insertions, 16 deletions
diff --git a/ext/curses/curses.c b/ext/curses/curses.c
index 64855e39e3..b54b07126d 100644
--- a/ext/curses/curses.c
+++ b/ext/curses/curses.c
@@ -54,6 +54,9 @@
# define USE_MOUSE 1
#endif
+#define NUM2CH NUM2LONG
+#define CH2FIX LONG2FIX
+
static VALUE mCurses;
static VALUE mKey;
static VALUE cWindow;
@@ -183,6 +186,15 @@ curses_clear(obj)
return Qnil;
}
+/* def clrtoeol */
+static VALUE
+curses_clrtoeol()
+{
+ curses_stdscr();
+ clrtoeol();
+ return Qnil;
+}
+
/* def refresh */
static VALUE
curses_refresh(obj)
@@ -362,7 +374,7 @@ curses_inch(obj)
VALUE obj;
{
curses_stdscr();
- return CHR2FIX(inch());
+ return CH2FIX(inch());
}
/* def addch(ch) */
@@ -372,7 +384,7 @@ curses_addch(obj, ch)
VALUE ch;
{
curses_stdscr();
- addch(NUM2CHR(ch));
+ addch(NUM2CH(ch));
return Qnil;
}
@@ -383,7 +395,7 @@ curses_insch(obj, ch)
VALUE ch;
{
curses_stdscr();
- insch(NUM2CHR(ch));
+ insch(NUM2CH(ch));
return Qnil;
}
@@ -547,7 +559,7 @@ static VALUE
curses_bkgdset(VALUE obj, VALUE ch)
{
#ifdef HAVE_BKGDSET
- bkgdset(NUM2CHR(ch));
+ bkgdset(NUM2CH(ch));
#endif
return Qnil;
}
@@ -556,7 +568,7 @@ static VALUE
curses_bkgd(VALUE obj, VALUE ch)
{
#ifdef HAVE_BKGD
- return (bkgd(NUM2CHR(ch)) == OK) ? Qtrue : Qfalse;
+ return (bkgd(NUM2CH(ch)) == OK) ? Qtrue : Qfalse;
#else
return Qfalse;
#endif
@@ -829,6 +841,19 @@ window_clear(obj)
return Qnil;
}
+/* def clrtoeol */
+static VALUE
+window_clrtoeol(obj)
+ VALUE obj;
+{
+ struct windata *winp;
+
+ GetWINDOW(obj, winp);
+ wclrtoeol(winp->window);
+
+ return Qnil;
+}
+
/* def refresh */
static VALUE
window_refresh(obj)
@@ -1002,13 +1027,13 @@ window_box(argc, argv, self)
rb_scan_args(argc, argv, "21", &vert, &hor, &corn);
GetWINDOW(self, winp);
- box(winp->window, NUM2CHR(vert), NUM2CHR(hor));
+ box(winp->window, NUM2CH(vert), NUM2CH(hor));
if (!NIL_P(corn)) {
int cur_x, cur_y, x, y;
- char c;
+ chtype c;
- c = NUM2CHR(corn);
+ c = NUM2CH(corn);
getyx(winp->window, cur_y, cur_x);
x = NUM2INT(window_maxx(self)) - 1;
y = NUM2INT(window_maxy(self)) - 1;
@@ -1058,7 +1083,7 @@ window_inch(obj)
struct windata *winp;
GetWINDOW(obj, winp);
- return CHR2FIX(winch(winp->window));
+ return CH2FIX(winch(winp->window));
}
/* def addch(ch) */
@@ -1070,7 +1095,7 @@ window_addch(obj, ch)
struct windata *winp;
GetWINDOW(obj, winp);
- waddch(winp->window, NUM2CHR(ch));
+ waddch(winp->window, NUM2CH(ch));
return Qnil;
}
@@ -1084,7 +1109,7 @@ window_insch(obj, ch)
struct windata *winp;
GetWINDOW(obj, winp);
- winsch(winp->window, NUM2CHR(ch));
+ winsch(winp->window, NUM2CH(ch));
return Qnil;
}
@@ -1313,7 +1338,7 @@ window_bkgdset(VALUE obj, VALUE ch)
struct windata *winp;
GetWINDOW(obj,winp);
- wbkgdset(winp->window, NUM2CHR(ch));
+ wbkgdset(winp->window, NUM2CH(ch));
#endif
return Qnil;
}
@@ -1325,7 +1350,7 @@ window_bkgd(VALUE obj, VALUE ch)
struct windata *winp;
GetWINDOW(obj,winp);
- return (wbkgd(winp->window, NUM2CHR(ch)) == OK) ? Qtrue : Qfalse;
+ return (wbkgd(winp->window, NUM2CH(ch)) == OK) ? Qtrue : Qfalse;
#else
return Qfalse;
#endif
@@ -1335,11 +1360,11 @@ static VALUE
window_getbkgd(VALUE obj)
{
#ifdef HAVE_WGETBKGD
- char c;
+ chtype c;
struct windata *winp;
GetWINDOW(obj,winp);
- return (c = getbkgd(winp->window) != ERR) ? CHR2FIX(c) : Qnil;
+ return (c = getbkgd(winp->window) != ERR) ? CH2FIX(c) : Qnil;
#else
return Qnil;
#endif
@@ -1439,6 +1464,7 @@ Init_curses()
rb_define_module_function(mCurses, "refresh", curses_refresh, 0);
rb_define_module_function(mCurses, "doupdate", curses_doupdate, 0);
rb_define_module_function(mCurses, "clear", curses_clear, 0);
+ rb_define_module_function(mCurses, "clrtoeol", curses_clrtoeol, 0);
rb_define_module_function(mCurses, "echo", curses_echo, 0);
rb_define_module_function(mCurses, "noecho", curses_noecho, 0);
rb_define_module_function(mCurses, "raw", curses_raw, 0);
@@ -1506,6 +1532,7 @@ Init_curses()
rb_define_method(cWindow, "subwin", window_subwin, 4);
rb_define_method(cWindow, "close", window_close, 0);
rb_define_method(cWindow, "clear", window_clear, 0);
+ rb_define_method(cWindow, "clrtoeol", window_clrtoeol, 0);
rb_define_method(cWindow, "refresh", window_refresh, 0);
rb_define_method(cWindow, "noutrefresh", window_noutrefresh, 0);
rb_define_method(cWindow, "box", window_box, -1);
diff --git a/ext/curses/view.rb b/ext/curses/view.rb
index 5ba1a8413c..d9a82a57db 100644
--- a/ext/curses/view.rb
+++ b/ext/curses/view.rb
@@ -49,7 +49,7 @@ while TRUE
n = 0
while TRUE
c = getch.chr
- if c =~ "[0-9]" then
+ if c =~ /[0-9]/
n = 10 * n + c.to_i
else
break