diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-07-21 10:52:19 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-07-21 10:52:19 +0000 |
commit | 09389b47d2f5968867a1af502bc532c03d4d675a (patch) | |
tree | 8eefbb986fc28343a37054f7480d1dce9cb06335 /ext/io/console/console.c | |
parent | 2deaf0340192fdd457b4dcc6eae63ad875a3af6d (diff) |
console.c: undefined vk
* ext/io/console/console.c (console_key_pressed_p): raise
undefined virtual key code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/io/console/console.c')
-rw-r--r-- | ext/io/console/console.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/io/console/console.c b/ext/io/console/console.c index 4c49abaa41..3548f2a336 100644 --- a/ext/io/console/console.c +++ b/ext/io/console/console.c @@ -698,6 +698,7 @@ console_cursor_set(VALUE io, VALUE cpos) return console_goto(io, RARRAY_AREF(cpos, 0), RARRAY_AREF(cpos, 1)); } +#include "win32_vk.h" #include "win32_vk.inc" static VALUE @@ -717,8 +718,9 @@ console_key_pressed_p(VALUE io, VALUE k) StringValueCStr(k); } t = console_win32_vk(RSTRING_PTR(k), RSTRING_LEN(k)); - if (!t) rb_raise(rb_eArgError, "unknown virtual key code: %"PRIsVALUE, k); - vk = t->vk; + if (!t || (vk = (short)t->vk) == -1) { + rb_raise(rb_eArgError, "unknown virtual key code: %"PRIsVALUE, k); + } } return GetKeyState(vk) & 0x80 ? Qtrue : Qfalse; } |