summaryrefslogtreecommitdiff
path: root/debian/patches/thomas_term.patch
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2015-01-18 18:47:52 +0100
committerJustus Winter <4winter@informatik.uni-hamburg.de>2015-01-18 18:47:52 +0100
commit5453c9bbb276e835e7adf1640f33cad59eced38f (patch)
tree0be5951974563ec5e35774152e2ee8cf3a533062 /debian/patches/thomas_term.patch
parentc45e024465fea12777e36a8fd7dc5c592c3eee57 (diff)
Add Thomas terminal patch.
Diffstat (limited to 'debian/patches/thomas_term.patch')
-rw-r--r--debian/patches/thomas_term.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/debian/patches/thomas_term.patch b/debian/patches/thomas_term.patch
new file mode 100644
index 00000000..f2725819
--- /dev/null
+++ b/debian/patches/thomas_term.patch
@@ -0,0 +1,38 @@
+Patch from Thomas. See id:87twzoxd3b.fsf@kepler.schwinge.homeip.net.
+
+This shows, for the expect script:
+
+ 2946: /dev/ptyp1: starting PTY
+ 2946: /dev/ptyp1: tf 2 qs(oq) 7461
+ 2946: /dev/ptyp1: pm 0 uim 0 cb 0
+ 2946: /dev/ptyp1: tf 2 qs(oq) 3365
+ 2946: /dev/ptyp1: pm 0 uim 0 cb 0
+ 2946: /dev/ptyp1: tf 0 qs(oq) 0
+ 2946: /dev/ptyp1: pm 0 uim 0 cb 0
+
+..., and for a screen window exit:
+
+ 2970: /dev/ptyp2: tf 2 qs(oq) 6
+ 2970: /dev/ptyp2: pm 1 uim 0 cb 0
+ 2970: /dev/ptyp2: tf 0 qs(oq) 0
+ 2970: /dev/ptyp2: pm 1 uim 0 cb 1
+
+In both cases, the last iteration (starting with "tf") is the problematic
+one. The size of the output queue is zero in both cases, which is why
+Samuel's patch doesn't make a difference. The expect script case is
+different from the screen window exit one in that the latter is running
+in packet mode. So here is my patch -- with no rationale by citing any
+standards, or similar. Any comments on that already? (I don't feel like
+committing such a change without understanding it.)
+
+--- a/term/ptyio.c
++++ b/term/ptyio.c
+@@ -331,7 +331,7 @@ pty_io_read (struct trivfs_protid *cred,
+ }
+ }
+
+- if (!(termflags & TTY_OPEN) && !qsize (outputq))
++ if (!(termflags & TTY_OPEN) && packet_mode)
+ {
+ pthread_mutex_unlock (&global_lock);
+ return EIO;