diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-01-18 18:47:52 +0100 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-01-18 18:47:52 +0100 |
commit | 5453c9bbb276e835e7adf1640f33cad59eced38f (patch) | |
tree | 0be5951974563ec5e35774152e2ee8cf3a533062 /debian/patches/thomas_term.patch | |
parent | c45e024465fea12777e36a8fd7dc5c592c3eee57 (diff) |
Add Thomas terminal patch.
Diffstat (limited to 'debian/patches/thomas_term.patch')
-rw-r--r-- | debian/patches/thomas_term.patch | 38 |
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; |