modifying terminfo via termcapinfo

View: New views
3 Messages — Rating Filter:   Alert me  

modifying terminfo via termcapinfo

by Joahnn Gile :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

since the screen-256color-bce-s terminfo entry cannot be set from screenrc I would like to modify the screen-256color-bce entry via termcapinfo in my screenrc:

term screen-256color-bce
termcapinfo xterm* '' 'hs:ts=\E_:fs=\E\\:ds=\E_\E\\'

This seems to modify the termcap entry correctly:

$ printenv TERMCAP | grep hs
        :hs:ts=\E_:fs=\E\\:ds=\E_\E\\:\

However it does not seem to modify terminfo correctly,

$ printf "$(tput tsl)foobar$(tput fsl)"

does not change the title.
If I change TERM manually to screen-256color-bce-s it works,

$ export TERM=screen-256color-bce-s
$ printf "$(tput tsl)foobar$(tput fsl)"

changes the title.
The only difference between screen-256color-bce and screen-256color-bce-s is:

$ infocmp -d screen-256color-bce screen-256color-bce-s
comparing screen-256color-bce to screen-256color-bce-s.
    comparing booleans.
    comparing numbers.
    comparing strings.
        dsl: NULL, '\E_\E\\'.
        fsl: NULL, '\E\\'.
        tsl: NULL, '\E_'.

So what's wrong here, is termcapinfo not modifying the terminfo entry?





_______________________________________________
screen-users mailing list
screen-users@...
http://lists.gnu.org/mailman/listinfo/screen-users

Re: modifying terminfo via termcapinfo

by Micah Cowan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Joahnn Gile wrote:
> So what's wrong here, is termcapinfo not modifying the terminfo entry?

You seem to be misunderstanding the purpose of termcapinfo. Its purpose
is not to modify actual termcap or terminfo entries, in particular the
ones that other applications might see and modify behavior for... its
purpose is to edit _screen's_ interpretation of those entries, to modify
_screen's_ behavior regarding them. A common use, for instance, is to
make screen think that the host terminal doesn't have a "ti" entry, so
that it won't use the alternate buffer.

Not only does screen not alter actual terminfo descriptions (which are
always represented by physical files on the system), but it would be
evil for it to do so. ...I suppose that new terminfo descriptions could
be written to a temporary location, and set TERMINFO, but that quickly
gets expensive. The best way to do what you want, would be to create the
proper terminfo descriptions yourself using the usual means: modifying
the output of infocmp and compiling it with tic.

All that being said, I'm surprised then if TERMCAP gets modified by
termcapinfo commands. It's not clear to me whether that's intentional or
unintentional... certainly TERMCAP provides a means for programs to
modify termcap entries without being evil; perhaps termcap was intended
to serve for both purposes (screen's and applications'), but it was
realized they couldn't treat terminfo the same way, so they simply didn't.

--
Micah J. Cowan
Programmer, musician, typesetting enthusiast, gamer.
Maintainer of GNU Wget and GNU Teseq
http://micah.cowan.name/


_______________________________________________
screen-users mailing list
screen-users@...
http://lists.gnu.org/mailman/listinfo/screen-users

AW: modifying terminfo via termcapinfo

by Joahnn Gile :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> You seem to be misunderstanding the purpose of termcapinfo. Its purpose
> is not to modify actual termcap or terminfo entries, in particular the
> ones that other applications might see and modify behavior for... its
> purpose is to edit _screen's_ interpretation of those entries, to modify
> _screen's_ behavior regarding them. A common use, for instance, is to
> make screen think that the host terminal doesn't have a "ti" entry, so
> that it won't use the alternate buffer.
>
> Not only does screen not alter actual terminfo descriptions (which are
> always represented by physical files on the system), but it would be
> evil for it to do so. ...I suppose that new terminfo descriptions could
> be written to a temporary location, and set TERMINFO, but that quickly
> gets expensive. The best way to do what you want, would be to create the
> proper terminfo descriptions yourself using the usual means: modifying
> the output of infocmp and compiling it with tic.

Well the actual terminfo entry is included in ncurses, screen-256color-bce-s, however I am looking for a workaround as it cannot be set within screenrc due to bug http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=491812

> All that being said, I'm surprised then if TERMCAP gets modified by
> termcapinfo commands. It's not clear to me whether that's intentional or
> unintentional... certainly TERMCAP provides a means for programs to
> modify termcap entries without being evil; perhaps termcap was intended
> to serve for both purposes (screen's and applications'), but it was
> realized they couldn't treat terminfo the same way, so they simply didn't.

Well that is what lead me to think that it would create a temporary terminfo entry as well.






_______________________________________________
screen-users mailing list
screen-users@...
http://lists.gnu.org/mailman/listinfo/screen-users