Commit graph

35 commits

Author SHA1 Message Date
Nobuyoshi Nakada
8ec58a91f7 [ruby/io-console] Add IO#ttyname that returns the tty name or nil
fdad351501
2024-12-02 08:03:30 +00:00
Nobuyoshi Nakada
decc02996a [ruby/io-console] Check if rb_syserr_fail_str is available
Truffle ruby seems to lack it.

839c1e80eb
2024-12-02 03:37:15 +00:00
Nobuyoshi Nakada
e69945fc57 [ruby/io-console] Workaround for old TruffleRuby
f10c946ac7
2024-08-31 08:43:59 +00:00
Yuta Saito
b73dd8f6d0 [ruby/io-console] Skip building extension on WASI
WASI does not support concept to provide termios, so it is not possible
to build io/console extension on WASI at the moment.

However, `io/console` is used by many gems, and removing the dependency
from them *conditionally* is impossible. So, this commit adds a
check to skip building `io/console` extension on WASI just to pass `gem
install` for the platform.

ba9bf00184
2024-06-17 07:40:56 +00:00
ima1zumi
8916b81bf4 [ruby/io-console] Define IO::ConsoleMode::VERSION from console.c
6302a2082c
2024-01-02 22:17:05 +00:00
Nobuyoshi Nakada
f08400a07a [ruby/io-console] Define IO::ConsoleMode::VERSION from gemspec
ebdbebf461
2023-11-10 19:00:46 +09:00
Nobuyoshi Nakada
540cf43205 [ruby/io-console] Enable getpass methods always
57f9649df4
2023-08-18 03:55:02 +00:00
Samuel Williams
64ec1813ac
Restores the changes in io-console without breaking backwards compatibility. (#7882)
This reverts commit 35da41b29b.

This updates `io-console` to avoid accessing the internal details of `rb_io_t`
and instead use `rb_io_descriptor` and `rb_io_path` etc.
2023-06-01 17:43:45 +09:00
Hiroshi SHIBATA
35da41b29b
Revert https://github.com/ruby/io-console/pull/43
This reverts commit 1889133c04 and
  commit 764207e47c.

  Followed up with 85dcc4866d
2023-06-01 09:36:55 +09:00
Samuel Williams
1889133c04 [ruby/io-console] Remove usage of IO internals.
(https://github.com/ruby/io-console/pull/43)

4b839a504f

Co-authored-by: Benoit Daloze <eregontp@gmail.com>
2023-05-29 12:30:32 +00:00
Duncan MacGregor
042860bd65
[ruby/io-console] Enable building the C extension on TruffleRuby.
c17b8cf3a9
2021-04-22 11:51:37 +09:00
Nobuyoshi Nakada
df4f8aa248
[ruby/io-console] Fixed regression against 3.0 2021-02-09 17:38:52 +09:00
Samuel Williams
5f69a7f604
Expose scheduler as public interface & bug fixes. (#3945)
* Rename `rb_scheduler` to `rb_fiber_scheduler`.

* Use public interface if available.

* Use `rb_check_funcall` where possible.

* Don't use `unblock` unless the fiber was non-blocking.
2021-02-09 19:39:56 +13:00
Nobuyoshi Nakada
b59640e155
[ruby/io-console] Fixed "Rework console to use rb_io_wait."
* Fixed backward compatibility.
* Added missing `rb_scheduler_timeout` declaration.

813806079f
2020-10-11 01:27:15 +09:00
Nobuyoshi Nakada
5ef383552d
[ruby/io-console] Just ignore the extension on other than CRuby
41b6f09574
2020-02-18 11:33:06 +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
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
12a2e17a34 io/console: fix gem build failure on Windows
* ext/io/console/extconf.rb: fix gem build failure on Windows.
  only win32_vk.inc is included in the gem and no dependencies for
  the header, so that gperf will not be mandatory.
  [ruby-core:72453] [Bug #11866]
* ext/io/console/io-console.gemspec: include depend file and
  win32_vk header.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-23 15:26:08 +00:00
naruse
c4fdfabcc8 handle ext/ as r53141
g -L frozen_string_literal ext/**/*.rb|xargs ruby -Ka -e'ARGV.each{|fn|puts
fn;open(fn,"r+"){|f|s=f.read.sub(/\A(#!.*\n)?(#.*coding.*\n)?/,"\\&#
frozen_string_literal: false\n");f.rewind;f.write s}}'

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 05:31:54 +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
nobu
0f6b7c4c3b io/console/extconf.rb: fix typo
* ext/io/console/extconf.rb: fix typo, $nmake is "m" for MS, not
  "n".  check sys/ioctl.h iff necessary for tty.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-27 02:21:13 +00:00
nobu
596663589b extconf.rb: no nmake style VPATH
* ext/io/console/extconf.rb: only nmake needs remove  style VPATH.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-08 08:22:06 +00:00
nobu
81c83f55e7 io/console: win32_vk dependencies
* ext/io/console/depend: check if VK table is modified by the
  checksum.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-06 21:54:07 +00:00
nobu
c1e7d5f5bd io/console: vk_header only on Windows
* ext/io/console/extconf.rb: vk_header is used only on Windows,
  nonsense to update on other platforms.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-05 10:54:37 +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
3bd4d51149 io/console: checks for old versions
* ext/io/console/extconf.rb: remove no longer needed checks for
  old versions.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48883 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-18 02:44:56 +00:00
nobu
ee4ca1887a console.c: dead code
* ext/io/console/console.c: remove dead code for old versions.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48877 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-17 08:17:46 +00:00
nobu
923b8c4eda io/console: set HAVE_RB_SCAN_ARGS_OPTIONAL_HASH
* ext/io/console/extconf.rb: obtain optional hash by rb_scan_args() by
  default right now.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-16 04:00:33 +00:00
nobu
2a62ca666c io/console: fix configuration failure
* ext/io/console/extconf.rb: fix configuration failure by missing
  cpp_include.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-16 03:58:04 +00:00
nobu
6ba2001d72 io/console: compatibility with 1.8
* ext/io/console/console.c (console_dev): compatibility with ruby 1.8.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-16 03:47:21 +00:00
nobu
44c24d4416 io/console: compatibility with 1.9
* ext/io/console/console.c (rawmode_opt, console_dev): compatibility
  with ruby 1.9.  [ruby-core:52220] [Bug #7847]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-16 03:46:34 +00:00
nobu
6f3830427d * ext/io/console/console.c (ttymode): save dupped file descriptors
and restore tty modes using them, so that original modes can be
  restored even if orignal fds are closed.  [ruby-dev:41225]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-08 14:07:32 +00:00
nobu
163f974208 * ext/io/console: imported. [ruby-dev:40897]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-08 04:05:39 +00:00