summaryrefslogtreecommitdiff
path: root/ext/io/console/console.c
AgeCommit message (Collapse)Author
2023-12-07[ruby/io-console] [DOC] Add documentation for IO#cursorMatheus Richard
ruby/io-console#50 https://github.com/ruby/io-console/commit/ee752ce771
2023-11-10[ruby/io-console] Define IO::ConsoleMode::VERSION from gemspecNobuyoshi Nakada
https://github.com/ruby/io-console/commit/ebdbebf461
2023-10-22[ruby/io-console] Intersperse Win32 and termios implementationsNobuyoshi Nakada
So that the both sources appear in RDoc generated HTMLs. https://github.com/ruby/io-console/commit/beec164a47
2023-08-18[ruby/io-console] Get rid of address of an rvalue on TruffleRubyNobuyoshi Nakada
https://github.com/ruby/io-console/commit/653c1cd33f
2023-08-18[ruby/io-console] Avoid the influence of special variable `$/`Nobuyoshi Nakada
https://github.com/ruby/io-console/commit/5f71354332
2023-08-18[ruby/io-console] Ensure to put a newline after passwordNobuyoshi Nakada
https://github.com/ruby/io-console/commit/15e36af171
2023-08-18[ruby/io-console] Flush after promptNobuyoshi Nakada
https://github.com/ruby/io-console/commit/040a1d6259
2023-08-18[ruby/io-console] Enable `getpass` methods alwaysNobuyoshi Nakada
https://github.com/ruby/io-console/commit/57f9649df4
2023-08-18[ruby/io-console] [DOC] Remove a trailing space from the prompt tooNobuyoshi Nakada
https://github.com/ruby/io-console/commit/85a155f25f
2023-08-18[ruby/io-console] * remove trailing spaces [ci skip]Nobuyoshi Nakada
https://github.com/ruby/io-console/commit/a0544eb74f
2023-08-18[ruby/io-console] [DOC] IO::console.getpass usage exampleOlivier Lacan
There were no clear example of this very useful method's usage anywhere in the IO or IO::Console docs, which was a shame. https://github.com/ruby/io-console/commit/4d324586a8
2023-06-01Restores the changes in `io-console` without breaking backwards ↵Samuel Williams
compatibility. (#7882) This reverts commit 35da41b29bf0a1a8fd2cd7e1d7fcb036ca8c2c7c. 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. Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2023-06-01Revert https://github.com/ruby/io-console/pull/43Hiroshi SHIBATA
This reverts commit 1889133c04f337fec3969cb5040a544088249046 and commit 764207e47ce38d1b73774a8e65114c87bc888298. Followed up with https://github.com/ruby/ruby/commit/85dcc4866d9ff29834596e9186cc97d622ee06f8
2023-05-29[ruby/io-console] Remove trailing whitespace.Samuel Williams
https://github.com/ruby/io-console/commit/55f1586463
2023-05-29[ruby/io-console] Remove usage of IO internals.Samuel Williams
(https://github.com/ruby/io-console/pull/43) https://github.com/ruby/io-console/commit/4b839a504f Co-authored-by: Benoit Daloze <eregontp@gmail.com>
2022-12-02[ruby/io-console] Check rawmode option names strictlyNobuyoshi Nakada
https://github.com/ruby/io-console/commit/aa8fc7e947
2021-12-29Sync io-console gem.Samuel Williams
2021-12-25Prefer to use RTEST when checking result of `rb_io_wait`. (#5341)Samuel Williams
* Prefer to use RTEST when checking result of `rb_io_wait`. * Consistently use false for signifying no events ready. Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2021-02-09[ruby/io-console] Fixed typoNobuyoshi Nakada
2021-02-09Expose scheduler as public interface & bug fixes. (#3945)Samuel Williams
* 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. Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2021-01-05[ruby/io-console] Shrink struct query_argsNobuyoshi Nakada
https://github.com/ruby/io-console/commit/720be0a3e5
2021-01-05[ruby/io-console] Pre-define chomp! IDNobuyoshi Nakada
https://github.com/ruby/io-console/commit/028e1c9497
2021-01-05[ruby/io-console] Ignore chomp! result and return the modified stringNobuyoshi Nakada
https://github.com/ruby/io-console/commit/09e5ccc729
2021-01-05[ruby/io-console] [DOC] Note that IO#getpass returns a chomped stringMarcus Stollsteimer
IO#getpass uses String#chomp! on the read input line. https://github.com/ruby/io-console/commit/1e98c93bc8
2020-10-11[ruby/io-console] Refined getch warningsNobuyoshi Nakada
https://github.com/ruby/io-console/commit/f84e6abcce
2020-10-11[ruby/io-console] Relaxed min: option warningNobuyoshi Nakada
When `min: 0` is given to `IO#getch` with `time:` option, it is expected to return nil if timed out, and needed for source code the compatibility with unixen platforms. https://github.com/ruby/io-console/commit/a2afbe72bd
2020-10-11[ruby/io-console] Fix timeout type error (#18)Nobuyoshi Nakada
Fixed TypeError when IO#getch timed out `rb_io_wait` returns a bit-flags Integer representing available events, or Qfalse if timed out. Also the result of `NUM2INT` is not a `VALUE`. ``` $ ./bin/ruby -v -rio/console -e "p IO.console.getch(intr: true, time: 0.1)" ruby 3.0.0dev (2020-10-09T20:27:30Z master 5ea2ea74cc) [x64-mingw32] -e:1:in `getch': no implicit conversion of false into Integer (TypeError) from -e:1:in `<main>' ``` https://github.com/ruby/io-console/commit/3bdfaf62df
2020-10-11[ruby/io-console] Fixed "Rework console to use `rb_io_wait`."Nobuyoshi Nakada
* Fixed backward compatibility. * Added missing `rb_scheduler_timeout` declaration. https://github.com/ruby/io-console/commit/813806079f
2020-09-14Rework console to use `rb_io_wait`.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/3434
2020-05-09[ruby/io-console] Use sys_fail_fptr macroNobuyoshi Nakada
https://github.com/ruby/io-console/commit/2b8ba023c8
2020-05-09[ruby/io-console] Show path name at errorNobuyoshi Nakada
https://github.com/ruby/io-console/commit/6a4b1c1a6d
2020-02-17[ruby/io-console] [DOC] Improved about `intr:`Nobuyoshi Nakada
https://github.com/ruby/io-console/commit/82b630cd79
2020-02-14[ruby/io-console] Prefer keyword argumentsNobuyoshi Nakada
https://github.com/ruby/io-console/commit/5facbfc4c8
2020-01-18[ruby/io-console] Set `OPOST` when `intr` is trueNobuyoshi Nakada
To enable implementation-defined output processing, for the compatibility with readline. [Bug #16509] https://bugs.ruby-lang.org/issues/16509 https://github.com/ruby/io-console/commit/8c8b0b6757
2019-12-29[ruby/io-console] Enable only interrupt bits on `intr: true`Nobuyoshi Nakada
https://github.com/ruby/io-console/commit/baaf929041
2019-12-18[ruby/io-console] Set raw mode strictly same as cfmakerawNobuyoshi Nakada
* Default VMIN and VTIME to minimum input. * Disable parity check bits explicitly. * Disable all bits for flow control on input. Co-Authored-By: NARUSE, Yui <naruse@airemix.jp> https://github.com/ruby/io-console/commit/5ce201a686
2019-12-17[ruby/io-console] Use TCSANOW to prevent from discarding the input bufferYusuke Endoh
TCSAFLUSH discards the buffer read before the mode change, which makes IRB ignore the buffer input immediately after invoked. TCSANOW preserves the buffer. https://github.com/ruby/io-console/commit/b362920182
2019-12-17[ruby/io-console] Disable implementation-defined special control charactersNobuyoshi Nakada
In raw mode with interrupt enabled. https://github.com/ruby/io-console/commit/e9e8e3ff17
2019-12-17[ruby/io-console] Removed dead codeNobuyoshi Nakada
https://github.com/ruby/io-console/commit/a49462ed97
2019-12-10[ruby/io-console] Suppress an unused-variable warningNobuyoshi Nakada
https://github.com/ruby/io-console/commit/ae5c72e481
2019-12-10[ruby/io-console] Use rb_thread_call_without_gvl instead of the deprecated ↵Nobuyoshi Nakada
function https://github.com/ruby/io-console/commit/21338ab287
2019-12-10[ruby/io-console] Warn vtime option without intr flagNobuyoshi Nakada
https://github.com/ruby/io-console/commit/499ff3de48
2019-12-04[ruby/io-console] Fixed `intr: false` mode on WindowsNobuyoshi Nakada
https://github.com/ruby/io-console/commit/4c172c01aa
2019-11-18[ruby/io-console] Remove taint supportJeremy Evans
Ruby 2.7 deprecates taint and it no longer has an effect. The lack of taint support should not cause a problem in previous Ruby versions. Notes: Merged: https://github.com/ruby/ruby/pull/2476
2019-11-18Deprecate taint/trust and related methods, and make the methods no-opsJeremy Evans
This removes the related tests, and puts the related specs behind version guards. This affects all code in lib, including some libraries that may want to support older versions of Ruby. Notes: Merged: https://github.com/ruby/ruby/pull/2476
2019-11-18Warn on access/modify of $SAFE, and remove effects of modifying $SAFEJeremy Evans
This removes the security features added by $SAFE = 1, and warns for access or modification of $SAFE from Ruby-level, as well as warning when calling all public C functions related to $SAFE. This modifies some internal functions that took a safe level argument to no longer take the argument. rb_require_safe now warns, rb_require_string has been added as a version that takes a VALUE and does not warn. One public C function that still takes a safe level argument and that this doesn't warn for is rb_eval_cmd. We may want to consider adding an alternative method that does not take a safe level argument, and warn for rb_eval_cmd. Notes: Merged: https://github.com/ruby/ruby/pull/2476
2019-09-26[ruby/io-console] Defer creating VT query stringNobuyoshi Nakada
https://github.com/ruby/io-console/commit/3d69c577a4
2019-09-26[ruby/io-console] Added IO#console_modeNobuyoshi Nakada
https://github.com/ruby/io-console/commit/77ed8d5a06
2019-09-25Do not use of non-standard escape character '\e'Kazuhiro NISHIYAMA
2019-09-24[ruby/io-console] Made cursor position 0-originNobuyoshi Nakada
https://github.com/ruby/io-console/commit/9377e37295