summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--ext/curses/curses.c57
-rw-r--r--ext/curses/view.rb2
3 files changed, 54 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index c851b16804..3771242a0b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Sat Aug 27 20:20:01 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+
+ * 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.
+
Wed Aug 24 10:53:28 2005 NAKAMURA Usaku <usa@ruby-lang.org>
* test/logger/test_logger.rb (test_shifting_size): should close log
@@ -44,7 +54,7 @@ Mon Aug 15 00:38:51 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
* eval.c (rb_rescue2): reduce PUSH_TAG() as well as NODE_RESCUE.
[ruby-dev:26800]
- * range.c (range_check, range_init): reduce uselse exceptions.
+ * range.c (range_check, range_init): reduce useless exceptions.
Sat Aug 13 18:51:26 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
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