RFR: 8304498: JShell does not switch to raw mode when there is no /bin/test [v2]
Sean Coffey
coffeys at openjdk.org
Thu Mar 23 13:06:45 UTC 2023
On Wed, 22 Mar 2023 18:38:08 GMT, Jan Lahoda <jlahoda at openjdk.org> wrote:
>> If JShell is run on a system that does not have `/bin/test` (which is, apparently, possible for some systems, which only have `/usr/bin/test`), it won't switch the terminal into the raw mode, and the input will not work properly.
>>
>> The proposed fix herein is to detect whether `test` existing in `/usr/bin/test`, and if yes, use that location. Use the existing `/bin/test` otherwise.
>
> Jan Lahoda has updated the pull request incrementally with one additional commit since the last revision:
>
> Checking the executable flags instead of running the program, as suggested.
LGTM
the test call seems to be only used in one method where JLine attempts to test the tty fd value (AFAICT) - they're hacking into java.lang.ProcessBuilder$RedirectPipeImpl for that purpose.
wonder if there's anything else the JDK libs can offer.
https://github.com/openjdk/jdk/blob/master/src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/exec/ExecTerminalProvider.java#L120
-------------
Marked as reviewed by coffeys (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/13100#pullrequestreview-1354582322
More information about the core-libs-dev
mailing list