Commit graph

139 commits

Author SHA1 Message Date
Nobuyoshi Nakada
244f7ec204 [ruby/io-console] Made cursor position consistent with winsize
To be consistent with `winsize`, changed the cursor position
format from `[x, y]` to `[row, column]`.

d1f5ae9286
2019-09-24 16:20:30 +09:00
Nobuyoshi Nakada
9e4be78ea8 [ruby/io-console] Try fallback to stdout when stdin
b8017509ef
2019-09-23 19:29:36 +09:00
Nobuyoshi Nakada
8487193b10 [ruby/io-console] Try to write DSR query to writable IO
a54b6e4dd1
2019-09-23 19:24:43 +09:00
Nobuyoshi Nakada
6d2dcf9632 [ruby/io-console] Added intr: option to IO#raw
Enters raw-mode but enable interrupts.

7cba76561a
2019-09-14 23:27:53 +09:00
Nobuyoshi Nakada
83ef58f264 [ruby/io-console] Suppress yet another warning on Windows
4e17c90788
2019-09-10 17:29:11 +09:00
Nobuyoshi Nakada
b5ab918d0c [ruby/io-console] Suppress warnings on Windows
About unused variables and a function.

32baf54e7a
2019-09-10 17:29:09 +09:00
Nobuyoshi Nakada
3678c37119 [ruby/io-console] Added IO#check_winsize_changed on Windows
ee648fa8bb
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
74790e2dc4 [ruby/io-console] Added scroll methods
83e70de8ab
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
c1412bd6d9 [ruby/io-console] Added line/screen erase methods
e6344108a1
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
9844a349bf [ruby/io-console] Added IO#goto_column
143a9d5764
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
e8be056af9 [ruby/io-console] Added relative cursor move methods
21d340e4a2
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
3d9c7c2835 [ruby/io-console] Added IO#goto and IO#cursor= for VT
7f2b1b473d
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
53ed4fb376 [ruby/io-console] Added IO#cursor for VT
41a6a6cace
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
803dc9e1e4 [ruby/io-console] Added console_vt_response
A function to query console info.

db75a07fa3
2019-09-10 08:18:03 +09:00
Nobuyoshi Nakada
214e2f93aa
Fix the warning in 456586bb23 2019-05-15 18:19:23 +09:00
Nobuyoshi Nakada
29dde62605
io/console: rb_str_cat_conv_enc_opts is not exported 2019-05-14 14:50:21 +09:00
Nobuyoshi Nakada
c174670823
io/console: fix up timeout on Windows 2019-05-14 14:39:08 +09:00
Nobuyoshi Nakada
456586bb23
io/console: support getch timeout on Windows 2019-05-14 14:21:46 +09:00
Nobuyoshi Nakada
6d733565c2
io/console: support wide character input on Windows 2019-05-14 14:20:09 +09:00
nobu
1de78c5fd8 io/console: drop 2.1.0 support [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-02 11:24:29 +00:00
nobu
013016b986 io/console: drop 2.0.0 support [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-02 07:53:27 +00:00
knu
b0c719dae4 Fix typos in rdoc
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-11-08 03:57:54 +00:00
knu
f477851bb7 Add details on the min/time parameters to the rdoc
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-11-07 05:28:14 +00:00
nobu
65b11a04f1 console.c: set winsize on Windows
* ext/io/console/console.c (console_set_winsize): retry shrinking
  window and screen buffer.  [ruby-core:82741] [Bug #13888]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-11 20:10:34 +00:00
nobu
b4a55c1cad console.c: unpaired size
* ext/io/console/console.c (console_set_winsize): reject unpaired
  pixel size.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-07 23:02:29 +00:00
nobu
5b856ee1a6 console.c: OOB access
* ext/io/console/console.c (console_set_winsize): fix
  out-of-bounds access.  [ruby-core:79004] [Bug #13112]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-07 22:52:03 +00:00
nobu
e78beed499 io/console: unknown key code for names with nul
* ext/io/console/console.c (console_key_pressed_p): raise the same
  exception, "unknown virtual key code", for names with nul chars.
  though console_win32_vk() considers the length and can deal with
  nul chars, rb_sprintf() raised at PRIsVALUE previously, so quote
  it if it is unprintable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-15 01:07:14 +00:00
nobu
9816f87815 io/console: rb_sym2str
* ext/io/console/console.c (rb_sym2str): fallback definition for
  older ruby.  [ruby-core:74953] [Bug #12284]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-15 00:02:59 +00:00
nobu
cc91082af8 io/console: use rb_funcallv
* ext/io/console/console.c: use rb_funcallv instead of
  rb_funcall2, and define rb_funcallv if unavailable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-15 00:02:43 +00:00
nobu
c88d0666d4 io/console: fallback RARRAY_CONST_PTR
* ext/io/console/console.c (RARRAY_CONST_PTR): fallback definition
  for older ruby.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-15 00:02:42 +00:00
nobu
0177687124 io/console: reject symbols with nul char
* ext/io/console/console.c (console_key_pressed_p): symbol names
  can contain nul chars, reject them.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-15 00:02:41 +00:00
nobu
f4166e2dd7 prefer rb_syserr_fail
* file.c, io.c, util.c: prefer rb_syserr_fail with saved errno
  over setting errno then call rb_sys_fail, not to be clobbered
  potentially and to reduce thread local errno accesses.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-23 08:57:48 +00:00
nobu
8f620b9b17 retry IO#getpass
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 13:26:56 +00:00
naruse
958e153cdb Revert r52902,r52903,r52910,r52911,r52937,r52939
Reject IO::Console#getpass because it can't test portablly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-08 10:54:42 +00:00
nobu
1ad0d8ecad console.c: prompt to stderr
* ext/io/console/console.c (console_getpass): print prompt to
  stderr when reading from stdin.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-06 06:30:11 +00:00
nobu
187de9240a console.c: console_getpass
* ext/io/console/console.c (console_getpass): add IO#getpass
  method.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-06 06:25:10 +00:00
nobu
9d0012b0e7 console.c: check unused args
* ext/io/console/console.c (console_set_winsize): unused arguments
  also should be nil or integers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-07 00:25:50 +00:00
nobu
3553a86eb5 ext: use RARRAY_CONST_PTR
* ext/bigdecimal/bigdecimal.c: use RARRAY_CONST_PTR just fore
  reference instead of RARRAY_PTR, to keep the array WB-protected.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-04 07:27:10 +00:00
nobu
71f2c19a9c win32_vk.inc: merge win32_vk.h
* ext/io/console/win32_vk.inc: merge win32_vk.h not to be included
  in HDRS on other platforms than Windows.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-02 03:57:23 +00:00
nobu
09389b47d2 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
2015-07-21 10:52:19 +00:00
nobu
19e0fa010e win32_vk.inc: renamed
* ext/io/console/win32_vk.inc: renamed not to be included in HDRS
  by mkmf.rb and regenerated unexpectedly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-07 06:35:40 +00:00
nobu
11b97855c4 console.c: pressed? on Windows
* ext/io/console/console.c (console_key_pressed_p): new method
  IO#pressed? on Windows.  [EXPERIMENTAL]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-03 18:13:10 +00:00
nobu
85366d7d59 console.c: cursor position on Windows
* ext/io/console/console.c (console_goto): new method IO#goto on
  Windows.  [EXPERIMENTAL]

* ext/io/console/console.c (console_cursor_pos): new method
  IO#cursor on Windows.  [EXPERIMENTAL]

* ext/io/console/console.c (console_cursor_set): new method
  IO#cursor= on Windows.  [EXPERIMENTAL]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-03 18:11:40 +00:00
nobu
1014dfb442 console.c: IO#beep
* ext/io/console/console.c (console_beep): new method IO#beep.
  [EXPERIMENTAL]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-03 18:11:25 +00:00
nobu
3cfd6f9fcd console.c: remove old ifdef
* ext/io/console/console.c (LAST_ERROR): remove old ifdef, should
  use rb_w32_map_errno always.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-03 00:35:35 +00:00
nobu
add8e1f5bb console.c: winsize on Windows
* ext/io/console/console.c (console_set_winsize): use handle for
  writing.  GetConsoleScreenBufferInfo seems failing on a handle
  for reading.
* io.c: [DOC] update the example of IO#winsize to use $stdout
  instead of $stdin, which does not work on Windows.  a patch by
  Jan Lelis <mail AT janlelis.de> at [ruby-core:68574].
  [Bug #10986]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-21 06:01:29 +00:00
nobu
b1cff6b68c console.c: use static IDs
* ext/io/console/console.c (rawmode_opt): prepare static IDs.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-16 03:43:20 +00:00
nobu
8a29d8bbde console.c: avoid inadvertent pindown
* ext/io/console/console.c (console_dev): call Kernel#__send__
  method to avoid inadvertent pindown.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-16 03:43:18 +00:00
nobu
5f9f15365f console.c: fix typo
* ext/io/console/console.c (console_dev): fix typo, should be
  rb_funcallv to call with an argument array.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-16 03:27:02 +00:00
nobu
945e4692ca console.c: IO.console arguments passing
* ext/io/console/console.c (console_dev): send the given arguments
  to the opened console.  as a special case, do nothing if :close
  is given.
* test/lib/leakchecker.rb (LeakChecker#check_fd_leak): close if
  console.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-25 07:14:12 +00:00