URL: <http://savannah.gnu.org/bugs/?50588>
Summary: Mixes external TERM and screen TERM when using tputs Project: GNU Screen Submitted by: sthibaul Submitted on: Sun 19 Mar 2017 09:06:53 PM CET Category: None Severity: 3 - Normal Priority: 5 - Normal Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Release: 4.5.0 Fixed Release: None Planned Release: None Work Required: None _______________________________________________________ Details: Hello, While investigating http://bugs.debian.org/857808 , we have found an odd behavior of screen. What we are doing is running TERM=vt102 screen, and running a newt interface in there. We noticed that screen then emits \0 characters, e.g. when newt clears to end of line. Those \0 characters pose problem to the actual terminal plugged to this. What happens is that ClearArea calls AddCStr(D_CE), and for vt102 D_CE contains <3>, i.e. a delay. ncurses' tput() implements this by emitting \0 padding characters when appropriate, i.e. when xon_xoff is not available. It happens that vt102 does have xon_xoff, so no such character should be emitted. Digging more shows that looks at cur_term, which at that point is "screen", not "vt102". This happens because screen first initializes the external term with InitTermcap's call to e_tgetent, and then initializes the internal term with MakeTermcap's call to e_tgetent, thus leaving libterm with the internal term instead of the external. The attached patch fixes this by just setting the external term again, to make sure subsequent tputs() calls will use the external term. _______________________________________________________ File Attachments: ------------------------------------------------------- Date: Sun 19 Mar 2017 09:06:53 PM CET Name: termcap Size: 255B By: sthibaul <http://savannah.gnu.org/bugs/download.php?file_id=40029> _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?50588> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/