diff options
author | Felipe Contreras | 2023-02-24 11:46:31 -0600 |
---|---|---|
committer | Felipe Contreras | 2023-02-24 11:46:31 -0600 |
commit | 64da70e8560a57ee70a07068b730a05f5d8b68c1 (patch) | |
tree | 4e4844510a19cb8752e0aecde7d085d19cac19c9 | |
parent | f3167b7848763fba5f978f07218e4c1afb16621d (diff) | |
download | aur-64da70e8560a57ee70a07068b730a05f5d8b68c1.tar.gz |
Update regression fix patch
It seems we need to do is ignore the pending EOS flag.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
-rw-r--r-- | .SRCINFO | 2 | ||||
-rw-r--r-- | PKGBUILD | 2 | ||||
-rw-r--r-- | fix-exit-regression.patch | 50 |
3 files changed, 24 insertions, 30 deletions
@@ -23,6 +23,6 @@ pkgbase = vte3-nohang source = git+https://gitlab.gnome.org/GNOME/vte.git#tag=0.68.0 source = fix-exit-regression.patch sha256sums = SKIP - sha256sums = 5e5715a928b3667e7dd15d2766b45e8fe159768ab949f0badd5c47d190ceb211 + sha256sums = b7175b365c87b4014725a690448db716e22c27636fc03c08c5a4bc516798871e pkgname = vte3-nohang @@ -14,7 +14,7 @@ makedepends=(gobject-introspection vala git gtk-doc gperf meson) source=("git+https://gitlab.gnome.org/GNOME/vte.git#tag=$pkgver" fix-exit-regression.patch) sha256sums=('SKIP' - '5e5715a928b3667e7dd15d2766b45e8fe159768ab949f0badd5c47d190ceb211') + 'b7175b365c87b4014725a690448db716e22c27636fc03c08c5a4bc516798871e') depends+=(vte-common) provides=("vte3=$pkgver" libvte-2.91.so) diff --git a/fix-exit-regression.patch b/fix-exit-regression.patch index 19bfc907de2f..0415808df2be 100644 --- a/fix-exit-regression.patch +++ b/fix-exit-regression.patch @@ -1,4 +1,4 @@ -From 07c04ece7c0eb6644112c84454dc617d6b45458b Mon Sep 17 00:00:00 2001 +From a8f9b3299a2f996070ae8242eb5546083b648639 Mon Sep 17 00:00:00 2001 From: Felipe Contreras <felipe.contreras@gmail.com> Date: Sun, 23 Jan 2022 23:36:44 -0600 Subject: [PATCH] Fix exit regression @@ -15,45 +15,39 @@ It can be triggered by simply doing: exit The maintainers of vte clearly have no intention fixing the issue that -was reported more than one year ago. +was reported more than three years ago. https://gitlab.gnome.org/GNOME/vte/-/issues/204 -We know the child has exited, the client does not. It's up to the client -to decide if it wants to wait for the rest of the input, or exit -immediately. - -So send the signal as soon as we receive it. +We need to send the CHILD_EXITED signal regardless of whether or not +there's a pending EOS. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- - src/vte.cc | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) + src/vte.cc | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 103dc4d5..c47c10af 100644 +index 8b75883f..da296daf 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -3200,6 +3200,9 @@ Terminal::child_watch_done(pid_t pid, - - m_pty_pid = -1; +@@ -10124,7 +10124,6 @@ Terminal::emit_pending_signals() + m_bell_pending = false; + } -+ if (widget()) -+ widget()->emit_child_exited(status); -+ - /* If we still have a PTY, or data to process, defer emitting the signals - * until we have EOF on the PTY, so that we can process all pending data. - */ -@@ -3210,9 +3213,6 @@ Terminal::child_watch_done(pid_t pid, - m_child_exited_eos_wait_timer.schedule_seconds(2); // FIXME: better value? - } else { - m_child_exited_after_eos_pending = false; -- -- if (widget()) -- widget()->emit_child_exited(status); +- auto const eos = m_eos_pending; + if (m_eos_pending) { + queue_eof(); + m_eos_pending = false; +@@ -10132,7 +10131,7 @@ Terminal::emit_pending_signals() + unset_pty(); } - } +- if (m_child_exited_after_eos_pending && eos) { ++ if (m_child_exited_after_eos_pending) { + /* The signal handler could destroy the terminal, so send the signal on idle */ + queue_child_exited(); + m_child_exited_after_eos_pending = false; -- -2.34.1 +2.39.2 |