Fix passing input via the pipe action to a program without a window not working.

This commit is contained in:
Kovid Goyal 2018-12-06 08:20:25 +05:30
parent c17c801a31
commit 36b3582825
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 18 additions and 2 deletions

View File

@ -3,6 +3,12 @@ Changelog
|kitty| is a feature full, cross-platform, *fast*, GPU based terminal emulator.
0.13.1 [2018-12-05]
------------------------------
- Fix passing input via the pipe action to a program without a window not
working.
0.13.0 [2018-12-05]
------------------------------

View File

@ -818,7 +818,7 @@ class Boss:
prev_tab = previous_tab
def special_window_for_cmd(self, cmd, window=None, stdin=None, cwd_from=None, as_overlay=False):
def process_stdin_source(self, window=None, stdin=None):
w = window or self.active_window
env = None
if stdin:
@ -834,6 +834,11 @@ class Boss:
'{scrolled_by}:{cursor_x},{cursor_y}:{lines},{columns}'.format(**pipe_data)
}
stdin = stdin.encode('utf-8')
return env, stdin
def special_window_for_cmd(self, cmd, window=None, stdin=None, cwd_from=None, as_overlay=False):
w = window or self.active_window
env, stdin = self.process_stdin_source(w, stdin)
cmdline = []
for arg in cmd:
if arg == '@selection':
@ -865,7 +870,12 @@ class Boss:
self._new_os_window(create_window(), cwd_from=cwd_from)
else:
import subprocess
subprocess.Popen(cmd)
env, stdin = self.process_stdin_source(stdin=source, window=window)
if stdin:
p = subprocess.Popen(cmd, env=env, stdin=subprocess.PIPE)
p.communicate(stdin)
else:
subprocess.Popen(cmd)
def args_to_special_window(self, args, cwd_from=None):
args = list(args)