Improve CWD detection when there are multiple foreground processes in the TTY process group
This commit is contained in:
parent
dc6138d286
commit
7448789951
2 changed files with 14 additions and 2 deletions
|
|
@ -86,6 +86,8 @@ Detailed list of changes
|
|||
|
||||
- Fix a regression in the previous release that broke :opt:`active_tab_foreground` (:iss:`4620`)
|
||||
|
||||
- Improve CWD detection when there are multiple foreground processes in the TTY process group
|
||||
|
||||
- ssh kitten: Fix location of generated terminfo files on NetBSD (:iss:`4622`)
|
||||
|
||||
- A new action to clear the screen up to the line containing the cursor, see
|
||||
|
|
|
|||
|
|
@ -344,8 +344,18 @@ def pid_for_cwd(self) -> Optional[int]:
|
|||
assert self.child_fd is not None
|
||||
pgrp = os.tcgetpgrp(self.child_fd)
|
||||
foreground_processes = processes_in_group(pgrp) if pgrp >= 0 else []
|
||||
if len(foreground_processes) == 1:
|
||||
return foreground_processes[0]
|
||||
if foreground_processes:
|
||||
# there is no easy way that I know of to know which process is the
|
||||
# foreground process in this group from the users perspective,
|
||||
# so we assume the one with the highest PID is as that is most
|
||||
# likely to be the newest process. This situation can happen
|
||||
# for example with a shell script such as:
|
||||
# #!/bin/bash
|
||||
# cd /tmp
|
||||
# vim
|
||||
# With this script , the foreground process group will contain
|
||||
# both the bash instance running the script and vim.
|
||||
return max(foreground_processes)
|
||||
return self.pid
|
||||
|
||||
@property
|
||||
|
|
|
|||
Loading…
Reference in a new issue