Fix passing input via the pipe action to a program without a window not working.
This commit is contained in:
parent
c17c801a31
commit
36b3582825
@ -3,6 +3,12 @@ Changelog
|
|||||||
|
|
||||||
|kitty| is a feature full, cross-platform, *fast*, GPU based terminal emulator.
|
|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]
|
0.13.0 [2018-12-05]
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
|
|||||||
@ -818,7 +818,7 @@ class Boss:
|
|||||||
|
|
||||||
prev_tab = previous_tab
|
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
|
w = window or self.active_window
|
||||||
env = None
|
env = None
|
||||||
if stdin:
|
if stdin:
|
||||||
@ -834,6 +834,11 @@ class Boss:
|
|||||||
'{scrolled_by}:{cursor_x},{cursor_y}:{lines},{columns}'.format(**pipe_data)
|
'{scrolled_by}:{cursor_x},{cursor_y}:{lines},{columns}'.format(**pipe_data)
|
||||||
}
|
}
|
||||||
stdin = stdin.encode('utf-8')
|
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 = []
|
cmdline = []
|
||||||
for arg in cmd:
|
for arg in cmd:
|
||||||
if arg == '@selection':
|
if arg == '@selection':
|
||||||
@ -865,7 +870,12 @@ class Boss:
|
|||||||
self._new_os_window(create_window(), cwd_from=cwd_from)
|
self._new_os_window(create_window(), cwd_from=cwd_from)
|
||||||
else:
|
else:
|
||||||
import subprocess
|
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):
|
def args_to_special_window(self, args, cwd_from=None):
|
||||||
args = list(args)
|
args = list(args)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user