From d334d9351afcd893adf47521ca37513d02af721c Mon Sep 17 00:00:00 2001 From: "Thomas E. Dickey" Date: Mon, 9 Jun 2014 21:58:06 +0000 Subject: [PATCH] ncurses 5.9 - patch 20140609 > fix regression in screen terminfo entries (reports by Christian Ebert, Gabriele Balducci) -TD + revert the change to screen; see notes for why this did not work -TD + cancel sitm/ritm for entries which extend "screen", to work around screen's hardcoded behavior for SGR 3 -TD --- NEWS | 9 +++- dist.mk | 4 +- misc/terminfo.src | 86 +++++++++++++++++++++++++++----- package/debian-mingw/changelog | 4 +- package/debian-mingw64/changelog | 4 +- package/debian/changelog | 4 +- package/mingw-ncurses.nsi | 4 +- package/mingw-ncurses.spec | 2 +- package/ncurses.spec | 2 +- 9 files changed, 93 insertions(+), 26 deletions(-) diff --git a/NEWS b/NEWS index 90ce0200..971176ac 100644 --- a/NEWS +++ b/NEWS @@ -25,7 +25,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.2221 2014/06/07 22:17:18 tom Exp $ +-- $Id: NEWS,v 1.2222 2014/06/09 21:56:55 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -45,6 +45,13 @@ See the AUTHORS file for the corresponding full names. Changes through 1.9.9e did not credit all contributions; it is not possible to add this information. +20140609 + > fix regression in screen terminfo entries (reports by Christian + Ebert, Gabriele Balducci) -TD + + revert the change to screen; see notes for why this did not work -TD + + cancel sitm/ritm for entries which extend "screen", to work around + screen's hardcoded behavior for SGR 3 -TD + 20140607 + separate masking for sgr in vidputs from sitm/ritm, which do not overlap with sgr functionality. diff --git a/dist.mk b/dist.mk index b5743815..b1c46537 100644 --- a/dist.mk +++ b/dist.mk @@ -25,7 +25,7 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: dist.mk,v 1.989 2014/06/07 15:13:29 tom Exp $ +# $Id: dist.mk,v 1.990 2014/06/09 21:55:13 tom Exp $ # Makefile for creating ncurses distributions. # # This only needs to be used directly as a makefile by developers, but @@ -37,7 +37,7 @@ SHELL = /bin/sh # These define the major/minor/patch versions of ncurses. NCURSES_MAJOR = 5 NCURSES_MINOR = 9 -NCURSES_PATCH = 20140607 +NCURSES_PATCH = 20140609 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) diff --git a/misc/terminfo.src b/misc/terminfo.src index c0a03493..2c54482a 100644 --- a/misc/terminfo.src +++ b/misc/terminfo.src @@ -6,8 +6,8 @@ # Report bugs and new terminal descriptions to # bug-ncurses@gnu.org # -# $Revision: 1.500 $ -# $Date: 2014/06/07 17:07:45 $ +# $Revision: 1.501 $ +# $Date: 2014/06/09 21:40:50 $ # # The original header is preserved below for reference. It is noted that there # is a "newer" version which differs in some cosmetic details (but actually @@ -5679,7 +5679,56 @@ eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96, # S0 (str) Switch charset 'G0' to the specified charset. # E0 (str) Switch charset 'G0' back to standard charset. # -# tested with screen 3.09.08 +# Initially tested with screen 3.09.08 +# +# According to its manual page +# +# Screen is a full-screen window manager that multiplexes a physical +# terminal between several processes (typically interactive shells). Each +# virtual terminal provides the functions of a DEC VT100 terminal and, in +# addition, several control functions from the ISO 6429 (ECMA 48, ANSI +# X3.64) and ISO 2022 standards (e.g. insert/delete line and support for +# multiple character sets). +# +# However, there is a design error in its support for video highlights. The +# program uses a table (rendlist) which equates the SGR codes to terminal +# capabilities. That, and color-decoding are hardcoded in screen; its behavior +# is modified only by the presence or absence of the corresponding capabilities. +# Not by their values. +# +# If screen sets the TERMCAP variable, it uses hardcoded strings which +# correspond to the rendlist table. +# +# The table gives this information: +# +# SGR capability +# --- --------- +# 1 bold +# 2 dim +# 3 standout +# 4 underline +# 5 blink +# - (unused 6) +# 7 reverse +# - (unused 8-21) +# 22 reset bold, standout and dim +# 23 reset standout +# 24 reset underline +# 25 reset blink +# - (unused 26) +# 27 reset reverse +# +# ECMA-48 differs from this: 3 and 23 set and reset italics, respectively. +# ECMA-48 does not define "standout" - that is a termcap/terminfo abstraction. +# Without some redesign of screen, it is not possible to extend the set of +# capabilities. Substitution would be possible, e.g., sending italics in +# place of underline. +# +# Because screen uses hard-coded parsing, it does not check if two capabilities +# use the same value. For example, changing standout to be the same as any of +# the other capabilities will confuse screen. Curses applications which use +# sgr are not impacted (because that usually resets all capabilities before +# setting any), but termcap applications do not use sgr -TD screen|VT 100/ANSI X3.64 virtual terminal, OTbs, OTpt, am, km, mir, msgr, xenl, G0, colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1, @@ -5701,9 +5750,9 @@ screen|VT 100/ANSI X3.64 virtual terminal, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7, - sgr=\E[0%?%p6%t;1%;%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, + sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, sgr0=\E[m\017, smacs=^N, smcup=\E[?1049h, smir=\E[4h, - smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, E0=\E(B, + smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g, E0=\E(B, S0=\E(%p1%c, use=ecma+color, # The bce and status-line entries are from screen 3.9.13 (and require some # changes to .screenrc). @@ -5764,6 +5813,12 @@ screen-256color-bce-s|GNU Screen with 256 colors, BCE, and status line, screen+fkeys|function-keys according to screen, kend=\E[4~, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kfnd@, khome=\E[1~, kslt@, + +# See explanation before "screen" entry. Cancel italics so that applications +# do not assume screen supports the feature. Add this tweak to entries which +# extend screen for terminals which do support italics. +screen+italics|screen cannot support italics, + ritm@, sitm@, # # Here are a few customized entries which are useful -TD # @@ -5784,8 +5839,8 @@ screen+fkeys|function-keys according to screen, screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm, bce@, bw, invis@, kIC@, kNXT@, kPRV@, meml@, memu@, - sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;m, - E3@, use=screen+fkeys, use=xterm-new, + sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m, + E3@, use=screen+italics, use=screen+fkeys, use=xterm-new, # xterm-r6 does not really support khome/kend unless it is propped up by # the translations resource. screen.xterm-r6|screen customized for X11R6 xterm, @@ -5807,11 +5862,11 @@ screen.Eterm|screen in Eterm, screen.mrxvt|screen in mrxvt, use=screen+fkeys, use=mrxvt, screen.vte|screen in any VTE-based terminal, - use=screen+fkeys, use=vte, + use=screen+italics, use=screen+fkeys, use=vte, screen.gnome|screen in GNOME Terminal, - use=screen+fkeys, use=gnome, + use=screen+italics, use=screen+fkeys, use=gnome, screen.konsole|screen in KDE console window, - use=screen+fkeys, use=konsole, + use=screen+italics, use=screen+fkeys, use=konsole, # fix the backspace key screen.linux|screen in linux console, bw, @@ -5834,7 +5889,7 @@ screen.mlterm|screen in mlterm, # defbce on screen-bce.xterm-new|screen optimized for modern xterm, bce, - ech@, use=screen.xterm-new, + ech@, use=screen+italics, use=screen.xterm-new, screen-bce.rxvt|screen optimized for rxvt, bce, ech@, use=screen.rxvt, @@ -5846,10 +5901,10 @@ screen-bce.mrxvt|screen optimized for mrxvt, ech@, use=screen.mrxvt, screen-bce.gnome|screen optimized for GNOME-Terminal, bce, - ech@, use=screen.gnome, + ech@, use=screen+italics, use=screen.gnome, screen-bce.konsole|screen optimized for KDE console window, bce, - ech@, use=screen.konsole, + ech@, use=screen+italics, use=screen.konsole, screen-bce.linux|screen optimized for linux console, bce, ech@, use=screen.linux, @@ -23318,4 +23373,9 @@ v3220|LANPAR Vision II model 3220/3221/3222, # (italic). This was a long-ago typo in screen 3.1.1 which was # overlooked until a few terminal emulators implemented the feature -TD # +# 2014-06-09 +# + revert the change to screen; see notes for why this did not work -TD +# + cancel sitm/ritm for entries which extend "screen", to work around +# screen's hardcoded behavior for SGR 3 -TD +# ######## SHANTIH! SHANTIH! SHANTIH! diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog index 6f94dd81..a5ea208a 100644 --- a/package/debian-mingw/changelog +++ b/package/debian-mingw/changelog @@ -1,8 +1,8 @@ -ncurses6 (5.9-20140607) unstable; urgency=low +ncurses6 (5.9-20140609) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 07 Jun 2014 11:13:30 -0400 + -- Thomas E. Dickey Mon, 09 Jun 2014 17:55:13 -0400 ncurses6 (5.9-20131005) unstable; urgency=low diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog index 6f94dd81..a5ea208a 100644 --- a/package/debian-mingw64/changelog +++ b/package/debian-mingw64/changelog @@ -1,8 +1,8 @@ -ncurses6 (5.9-20140607) unstable; urgency=low +ncurses6 (5.9-20140609) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 07 Jun 2014 11:13:30 -0400 + -- Thomas E. Dickey Mon, 09 Jun 2014 17:55:13 -0400 ncurses6 (5.9-20131005) unstable; urgency=low diff --git a/package/debian/changelog b/package/debian/changelog index d7fa79a8..e6e624ad 100644 --- a/package/debian/changelog +++ b/package/debian/changelog @@ -1,8 +1,8 @@ -ncurses6 (5.9-20140607) unstable; urgency=low +ncurses6 (5.9-20140609) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 07 Jun 2014 11:13:30 -0400 + -- Thomas E. Dickey Mon, 09 Jun 2014 17:55:13 -0400 ncurses6 (5.9-20120608) unstable; urgency=low diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi index 9c8fe8ed..640c13b4 100644 --- a/package/mingw-ncurses.nsi +++ b/package/mingw-ncurses.nsi @@ -1,4 +1,4 @@ -; $Id: mingw-ncurses.nsi,v 1.44 2014/06/07 15:13:30 tom Exp $ +; $Id: mingw-ncurses.nsi,v 1.45 2014/06/09 21:55:13 tom Exp $ ; TODO add examples ; TODO bump ABI to 6 @@ -10,7 +10,7 @@ !define VERSION_MAJOR "5" !define VERSION_MINOR "9" !define VERSION_YYYY "2014" -!define VERSION_MMDD "0607" +!define VERSION_MMDD "0609" !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} !define MY_ABI "5" diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec index 4582f701..1903d366 100644 --- a/package/mingw-ncurses.spec +++ b/package/mingw-ncurses.spec @@ -3,7 +3,7 @@ Summary: shared libraries for terminal handling Name: mingw32-ncurses6 Version: 5.9 -Release: 20140607 +Release: 20140609 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz diff --git a/package/ncurses.spec b/package/ncurses.spec index feaf37cc..8a991c2e 100644 --- a/package/ncurses.spec +++ b/package/ncurses.spec @@ -1,7 +1,7 @@ Summary: shared libraries for terminal handling Name: ncurses6 Version: 5.9 -Release: 20140607 +Release: 20140609 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz -- 2.44.0