Fixes #4432: JSON UI only shows stdin when connecting to an existing session
Only ui type Terminal is intended to be a user interactive session. If your ui type is not Terminal, don't worry about making the tty your stdin if fd 0 is not a tty. This allows json-rpc commands sent via stdin to be acted up rather than sent to a fifo (which is the default behavior for kakoune). Does not change the behavior for Terminal ui sessions
This commit is contained in:
parent
e7100dc874
commit
dd92391036
|
@ -692,7 +692,11 @@ int run_client(StringView session, StringView name, StringView client_init,
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Optional<int> stdin_fd;
|
Optional<int> stdin_fd;
|
||||||
if (not isatty(0))
|
// json-ui (or dummy) is not intended to be user interactive.
|
||||||
|
// So only worry about making the tty your stdin if:
|
||||||
|
// (a) ui_type is Terminal, *and*
|
||||||
|
// (b) fd 0 is not interactive.
|
||||||
|
if (ui_type == UIType::Terminal && not isatty(0))
|
||||||
{
|
{
|
||||||
// move stdin to another fd, and restore tty as stdin
|
// move stdin to another fd, and restore tty as stdin
|
||||||
stdin_fd = dup(0);
|
stdin_fd = dup(0);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user