[Bug 294499] [termcap] screen entry has so=\E[3m (italic) should be so=\E[7m (reverse video)

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 19 Apr 2026 23:16:54 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294499

--- Comment #4 from Dan Mahoney <freebsd@gushi.org> ---
Additional note on why the base termcap fix is necessary independent of any
Screen-side workaround:

The sysutils/screen port at version 5.0.1_6 emits a runtime workaround by
writing duplicate so= and se= entries into $TERMCAP, with the correct
reverse-video values appearing after the broken italic ones:

  so=\E[3m:se=\E[23m:so=\E[7m:se=\E[27m

Termcap parsers generally take the last occurrence, so this works in the local
session. However, $TERMCAP is not forwarded over SSH -- OpenSSH's SendEnv does
not include it, and AcceptEnv on the remote side typically only lists $TERM.
When a user SSHes from a machine running Screen to another machine and runs an
affected application there, the remote system looks up the screen entry in its
own /etc/termcap, encounters only the broken so=\E[3m, and displays italics
instead of reverse video.

Confirmed: with the per-user ~/.terminfo workaround removed on the remote
system, the bug reappears immediately upon SSH. With the base /etc/termcap fix
applied, no per-user workaround would be needed.

This means the Screen port's runtime duplicate-entry approach, while useful,
cannot substitute for fixing the base entry. The correct fix has to live in
/etc/termcap itself.

-- 
You are receiving this mail because:
You are the assignee for the bug.