mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-15 22:05:24 -05:00
term: don't shutdown terminal when PTY is closed, unless --pty was used
Unless --pty has been used, we do *not* want to shutdown the terminal when the PTY is closed by the client application; we want to wait for the client application to actually terminate. This was the behavior before the --pty patch. This was changed in the --pty patch, since then, we don't *have* a client application. That is, foot has not forked+exec:ed anything. The only way to trigger a shutdown (from the client side) is to close the PTY. This patch restores the old behavior, when --pty is *not* used. Closes #1666
This commit is contained in:
parent
88a3b54ca3
commit
c7848c4e75
2 changed files with 18 additions and 1 deletions
|
|
@ -58,6 +58,11 @@
|
|||
### Fixed
|
||||
|
||||
* Log-level not respected by syslog.
|
||||
* Regression: terminal shutting down when the PTY is closed by the
|
||||
client application, which may be earlier than when the client
|
||||
application exits ([#1666][1666]).
|
||||
|
||||
[1666]: https://codeberg.org/dnkl/foot/issues/1666
|
||||
|
||||
|
||||
### Security
|
||||
|
|
|
|||
14
terminal.c
14
terminal.c
|
|
@ -364,8 +364,20 @@ fdm_ptmx(struct fdm *fdm, int fd, int events, void *data)
|
|||
del_utmp_record(term->conf, term->reaper, term->ptmx);
|
||||
fdm_del(fdm, fd);
|
||||
term->ptmx = -1;
|
||||
if (!term->conf->hold_at_exit)
|
||||
|
||||
/*
|
||||
* Normally, we do *not* want to shutdown when the PTY is
|
||||
* closed. Instead, we want to wait for the client application
|
||||
* to exit.
|
||||
*
|
||||
* However, when we're using a pre-existing PTY (the --pty
|
||||
* option), there _is_ no client application. That is, foot
|
||||
* does *not* fork+exec anything, and thus the only way to
|
||||
* shutdown is to wait for the PTY to be closed.
|
||||
*/
|
||||
if (term->slave < 0 && !term->conf->hold_at_exit) {
|
||||
term_shutdown(term);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue