screen-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[screen-devel] [bug #50588] Mixes external TERM and screen TERM when usi


From: Samuel Thibault
Subject: [screen-devel] [bug #50588] Mixes external TERM and screen TERM when using tputs
Date: Sun, 19 Mar 2017 16:06:54 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0

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/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]