From: Thomas E. Dickey Date: Sun, 2 Jun 2019 00:39:24 +0000 (+0000) Subject: ncurses 6.1 - patch 20190601 X-Git-Tag: v6.2~36 X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff_plain;h=9a0b985989d0aeb66b66b5711d432322aa994969 ncurses 6.1 - patch 20190601 + modify an internal call to vid_puts to pass extended color pairs e.g., from tty_update.c and lib_mvcur.c (report by Niegodziwy Beru). + improve manual page description of init_tabs capability and TABSIZE variable. --- diff --git a/NEWS b/NEWS index 1c2f4306..c185a7c4 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.3322 2019/05/25 19:18:23 tom Exp $ +-- $Id: NEWS,v 1.3324 2019/06/02 00:08:44 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -45,6 +45,12 @@ 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. +20190601 + + modify an internal call to vid_puts to pass extended color pairs + e.g., from tty_update.c and lib_mvcur.c (report by Niegodziwy Beru). + + improve manual page description of init_tabs capability and TABSIZE + variable. + 20190525 + modify reset_cmd.c to allow for tabstops at intervals other than 8 (report by Vincent Huisman). diff --git a/VERSION b/VERSION index 8be7d044..18096aae 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:10 6.1 20190525 +5:0:10 6.1 20190601 diff --git a/dist.mk b/dist.mk index b316322f..649f2228 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.1284 2019/05/25 15:39:25 tom Exp $ +# $Id: dist.mk,v 1.1285 2019/06/01 13:32:39 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 = 6 NCURSES_MINOR = 1 -NCURSES_PATCH = 20190525 +NCURSES_PATCH = 20190601 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) diff --git a/man/curs_variables.3x b/man/curs_variables.3x index fffad714..5d7de8c6 100644 --- a/man/curs_variables.3x +++ b/man/curs_variables.3x @@ -26,7 +26,7 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: curs_variables.3x,v 1.12 2019/02/16 23:43:23 tom Exp $ +.\" $Id: curs_variables.3x,v 1.13 2019/06/01 22:51:21 tom Exp $ .TH curs_variables 3X "" .ie \n(.g .ds `` \(lq .el .ds `` `` @@ -153,13 +153,17 @@ the physical screen with \fBmvcur\fP(3X). .bP This implementation uses the current value of \fBTABSIZE\fP only for updating the virtual screen. -It uses the terminal description's \fBinit_tabs\fP capability for -computing tab stops on the physical screen. +It uses the terminal description's \fBit\fP (\fBinit_tabs\fP) capability for +computing hardware tabs (i.e., tab stops on the physical screen). .bP Other implementations differ. For instance, NetBSD curses allows \fBTABSIZE\fP to be set through an environment variable. This implementation does not. +.IP +NetBSD curses does not support hardware tabs; +it uses the \fBinit_tabs\fP capability and the \fBTABSIZE\fP variable +only for updating the virtual screen. .PP \fBESCDELAY\fP is an extension in AIX curses: .bP diff --git a/man/menu_spacing.3x b/man/menu_spacing.3x index 4ff12c7c..b3038d5d 100644 --- a/man/menu_spacing.3x +++ b/man/menu_spacing.3x @@ -1,6 +1,6 @@ '\" t .\"*************************************************************************** -.\" Copyright (c) 1998-2015,2018 Free Software Foundation, Inc. * +.\" Copyright (c) 1998-2018,2019 Free Software Foundation, Inc. * .\" * .\" Permission is hereby granted, free of charge, to any person obtaining a * .\" copy of this software and associated documentation files (the * @@ -27,7 +27,7 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: menu_spacing.3x,v 1.14 2018/07/28 22:20:54 tom Exp $ +.\" $Id: menu_spacing.3x,v 1.15 2019/06/01 22:33:45 tom Exp $ .TH menu_spacing 3X "" .SH NAME \fBset_menu_spacing\fP, @@ -61,7 +61,7 @@ The menu system inserts the blank lines between item rows, these lines will contain the pad character in the appropriate positions. The \fBspc_columns\fR parameter controls the number of blanks between columns of items. -It must not be larger than TABSIZE. +It must not be larger than \fBTABSIZE\fP. A value of 0 for all the spacing values resets them to the default, which is 1 for all of them. .br diff --git a/man/terminfo.tail b/man/terminfo.tail index ef064ed9..3112cb04 100644 --- a/man/terminfo.tail +++ b/man/terminfo.tail @@ -1,4 +1,4 @@ -.\" $Id: terminfo.tail,v 1.90 2019/01/20 20:21:46 tom Exp $ +.\" $Id: terminfo.tail,v 1.93 2019/06/01 22:32:15 tom Exp $ .\" Beginning of terminfo.tail file .\" This file is part of ncurses. .\" See "terminfo.head" for copyright. @@ -286,7 +286,7 @@ series, as well as hard copy and APL terminals.) If there is a code to move the cursor to the left edge of the current row, give this as .BR cr . -(Normally this will be carriage return, control M.) +(Normally this will be carriage return, control/M.) If there is a code to produce an audible signal (bell, beep, etc) give this as .BR bel . @@ -1082,13 +1082,17 @@ sequences to make sure that the change becomes visible. .PP .SS Tabs and Initialization .PP +A few capabilities are used only for tabs: +.bP If the terminal has hardware tabs, the command to advance to the next tab stop can be given as .B ht -(usually control I). +(usually control/I). +.bP A \*(``back-tab\*('' command which moves leftward to the preceding tab stop can be given as .BR cbt . +.IP By convention, if the teletype modes indicate that tabs are being expanded by the computer rather than being sent to the terminal, programs should not use @@ -1097,13 +1101,15 @@ or .B cbt even if they are present, since the user may not have the tab stops properly set. +.bP If the terminal has hardware tabs which are initially set every .I n spaces when the terminal is powered up, the numeric parameter .B it is given, showing the number of spaces the tabs are set to. -This is normally used by the \fB@TSET@\fP +.IP +The \fBit\fP capability is normally used by the \fB@TSET@\fP command to determine whether to set the mode for hardware tab expansion, and whether to set the tab stops. If the terminal has tab stops that can be saved in non-volatile memory, @@ -1111,14 +1117,18 @@ the terminfo description can assume that they are properly set. .PP Other capabilities include +.bP .BR is1 , .BR is2 , and .BR is3 , initialization strings for the terminal, +.bP .BR iprog , the path name of a program to be run to initialize the terminal, +.bP and \fBif\fR, the name of a file containing long initialization strings. +.PP These strings are expected to set the terminal into modes consistent with the rest of the terminfo description. They are normally sent to the terminal, by the @@ -1177,7 +1187,8 @@ analogous to and .B is3 respectively. -These strings are output by the \fB@RESET@\fP program, +These strings are output by the \fB@RESET@\fP program +(an alias of \fB@TSET@\fP), which is used when the terminal gets into a wedged state. Commands are normally placed in .BR rs1 , @@ -1208,8 +1219,9 @@ If any of .BR rs3 , or .B rf -reset capability strings are missing, the \fB@RESET@\fP -program falls back upon the corresponding initialization capability string. +reset capability strings are missing, +the \fB@RESET@\fP program +falls back upon the corresponding initialization capability string. .PP If there are commands to set and clear tab stops, they can be given as .B tbc @@ -1222,6 +1234,33 @@ described by this, the sequence can be placed in .B is2 or .BR if . +.PP +The \fB@TPUT@ reset\fP command uses the same capability strings +as the \fB@RESET@\fP command, +although the two programs (\fB@TPUT@\fP and \fB@RESET@\fP) +provide different command-line options. +.PP +In practice, these terminfo capabilities are not often used in +initialization of tabs +(though they are required for the \fB@TABS@\fP program): +.bP +Almost all hardware terminals (at least those which supported tabs) +initialized those to every \fIeight\fP columns: +.IP +The only exception was the AT&T 2300 series, +which set tabs to every \fIfive\fP columns. +.bP +In particular, developers of the hardware terminals which are commonly used +as models for modern terminal emulators provided documentation demonstrating +that \fIeight\fP columns were the standard. +.bP +Because of this, the terminal initialization programs +\fB@TPUT@\fP and \fB@TSET@\fP +use the +\fBtbc\fP (\fBclear_all_tabs\fP) and +\fBhts\fP (\fBset_tab\fP) capabilities directly +only when the \fBit\fP (\fBinit_tabs\fP) capability +is set to a value other than \fIeight\fP. .SS Delays and Padding .PP Many older and slower terminals do not support either XON/XOFF or DTR @@ -1548,7 +1587,7 @@ and This is primarily useful for superscripts and subscripts on hard-copy terminals. If a hard-copy terminal can eject to the next page (form feed), give this as .B ff -(usually control L). +(usually control/L). .PP If there is a command to repeat a given character a given number of times (to save time transmitting a large number of identical characters) @@ -1661,9 +1700,9 @@ delete and insert line. The ncurses implementation ignores this glitch. .PP The Beehive Superbee, which is unable to correctly transmit the escape -or control C characters, has +or control/C characters, has .BR xsb , -indicating that the f1 key is used for escape and f2 for control C. +indicating that the f1 key is used for escape and f2 for control/C. (Only certain Superbees have this problem, depending on the ROM.) Note that in older terminfo versions, this capability was called \*(``beehive_glitch\*(''; it is now \*(``no_esc_ctl_c\*(''. @@ -1836,10 +1875,12 @@ Supports both the SVr4 set and the AIX extensions. \*d/?/* files containing terminal descriptions .SH SEE ALSO +\fB@TABS@\fR(1M), \fB@TIC@\fR(1M), \fB@INFOCMP@\fR(1M), \fBcurses\fR(3X), \fBcurs_color\fR(3X), +\fBcurs_variables\fR(3X), \fBprintf\fR(3), \fBterm\fR(\*n). \fBterm_variables\fR(3X). diff --git a/ncurses/curses.priv.h b/ncurses/curses.priv.h index e7af5822..0d61dc34 100644 --- a/ncurses/curses.priv.h +++ b/ncurses/curses.priv.h @@ -34,7 +34,7 @@ ****************************************************************************/ /* - * $Id: curses.priv.h,v 1.621 2019/05/04 20:29:09 tom Exp $ + * $Id: curses.priv.h,v 1.623 2019/06/01 23:41:36 tom Exp $ * * curses.priv.h * @@ -482,7 +482,14 @@ typedef union { #define SET_WINDOW_PAIR(w,p) (w)->_color = (p) #define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b) && GetPair(a) == GetPair(b)) -#define VIDATTR(sp,attr,pair) NCURSES_SP_NAME(vid_puts)(NCURSES_SP_ARGx attr, (NCURSES_PAIRS_T) pair, 0, NCURSES_OUTC_FUNC) +#define VIDPUTS(sp,attr,pair) do { \ + int vid_pair = pair; \ + NCURSES_SP_NAME(vid_puts)( \ + NCURSES_SP_ARGx attr, \ + (NCURSES_PAIRS_T) pair, \ + &vid_pair, \ + NCURSES_OUTC_FUNC); \ + } while (0) #else /* !NCURSES_EXT_COLORS */ @@ -495,7 +502,7 @@ typedef union { WINDOW_ATTRS(w) |= ColorPair(p) #define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b)) -#define VIDATTR(sp,attr,pair) NCURSES_SP_NAME(vidputs)(NCURSES_SP_ARGx attr, NCURSES_OUTC_FUNC) +#define VIDPUTS(sp,attr,pair) NCURSES_SP_NAME(vidputs)(NCURSES_SP_ARGx attr, NCURSES_OUTC_FUNC) #endif /* NCURSES_EXT_COLORS */ @@ -1951,7 +1958,7 @@ extern NCURSES_EXPORT(void) name (void); \ #if USE_XMC_SUPPORT #define UpdateAttrs(sp,c) if (!SameAttrOf(SCREEN_ATTRS(sp), c)) { \ attr_t chg = AttrOf(SCREEN_ATTRS(sp)); \ - VIDATTR(sp, AttrOf(c), GetPair(c)); \ + VIDPUTS(sp, AttrOf(c), GetPair(c)); \ if (magic_cookie_glitch > 0 \ && XMC_CHANGES((chg ^ AttrOf(SCREEN_ATTRS(sp))))) { \ T(("%s @%d before glitch %d,%d", \ @@ -1963,7 +1970,7 @@ extern NCURSES_EXPORT(void) name (void); \ } #else #define UpdateAttrs(sp,c) if (!SameAttrOf(SCREEN_ATTRS(sp), c)) { \ - VIDATTR(sp, AttrOf(c), GetPair(c)); \ + VIDPUTS(sp, AttrOf(c), GetPair(c)); \ } #endif diff --git a/ncurses/tty/lib_mvcur.c b/ncurses/tty/lib_mvcur.c index 313d488a..c4847c72 100644 --- a/ncurses/tty/lib_mvcur.c +++ b/ncurses/tty/lib_mvcur.c @@ -159,7 +159,7 @@ #define CUR SP_TERMTYPE #endif -MODULE_ID("$Id: lib_mvcur.c,v 1.148 2019/02/24 00:31:57 tom Exp $") +MODULE_ID("$Id: lib_mvcur.c,v 1.150 2019/06/01 23:42:09 tom Exp $") #define WANT_CHAR(sp, y, x) NewScreen(sp)->_line[y].text[x] /* desired state */ @@ -991,7 +991,7 @@ _nc_real_mvcur(NCURSES_SP_DCLx TR(TRACE_CHARPUT, ("turning off (%#lx) %s before move", (unsigned long) AttrOf(oldattr), _traceattr(AttrOf(oldattr)))); - (void) VIDATTR(SP_PARM, A_NORMAL, 0); + VIDPUTS(SP_PARM, A_NORMAL, 0); } if (xold >= screen_columns(SP_PARM)) { @@ -1045,7 +1045,7 @@ _nc_real_mvcur(NCURSES_SP_DCLx TR(TRACE_CHARPUT, ("turning on (%#lx) %s after move", (unsigned long) AttrOf(oldattr), _traceattr(AttrOf(oldattr)))); - (void) VIDATTR(SP_PARM, AttrOf(oldattr), GetPair(oldattr)); + VIDPUTS(SP_PARM, AttrOf(oldattr), GetPair(oldattr)); } } returnCode(code); diff --git a/ncurses/tty/tty_update.c b/ncurses/tty/tty_update.c index 69de9c2e..350f743c 100644 --- a/ncurses/tty/tty_update.c +++ b/ncurses/tty/tty_update.c @@ -84,7 +84,7 @@ #include -MODULE_ID("$Id: tty_update.c,v 1.302 2019/05/04 22:43:40 tom Exp $") +MODULE_ID("$Id: tty_update.c,v 1.303 2019/06/01 23:42:36 tom Exp $") /* * This define controls the line-breakout optimization. Every once in a @@ -487,7 +487,7 @@ wrap_cursor(NCURSES_SP_DCL0) TR(TRACE_CHARPUT, ("turning off (%#lx) %s before wrapping", (unsigned long) AttrOf(SCREEN_ATTRS(SP_PARM)), _traceattr(AttrOf(SCREEN_ATTRS(SP_PARM))))); - (void) VIDATTR(SP_PARM, A_NORMAL, 0); + VIDPUTS(SP_PARM, A_NORMAL, 0); } } else { SP_PARM->_curscol--; diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog index 634dbd68..f763468f 100644 --- a/package/debian-mingw/changelog +++ b/package/debian-mingw/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.1+20190525) unstable; urgency=low +ncurses6 (6.1+20190601) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 25 May 2019 11:39:25 -0400 + -- Thomas E. Dickey Sat, 01 Jun 2019 09:32:39 -0400 ncurses6 (5.9-20131005) unstable; urgency=low diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog index 634dbd68..f763468f 100644 --- a/package/debian-mingw64/changelog +++ b/package/debian-mingw64/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.1+20190525) unstable; urgency=low +ncurses6 (6.1+20190601) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 25 May 2019 11:39:25 -0400 + -- Thomas E. Dickey Sat, 01 Jun 2019 09:32:39 -0400 ncurses6 (5.9-20131005) unstable; urgency=low diff --git a/package/debian/changelog b/package/debian/changelog index f3c2c08b..e9f72da3 100644 --- a/package/debian/changelog +++ b/package/debian/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.1+20190525) unstable; urgency=low +ncurses6 (6.1+20190601) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 25 May 2019 11:39:25 -0400 + -- Thomas E. Dickey Sat, 01 Jun 2019 09:32:39 -0400 ncurses6 (5.9-20120608) unstable; urgency=low diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi index 5fdfb1d6..3ec7aa6f 100644 --- a/package/mingw-ncurses.nsi +++ b/package/mingw-ncurses.nsi @@ -1,4 +1,4 @@ -; $Id: mingw-ncurses.nsi,v 1.330 2019/05/25 15:39:25 tom Exp $ +; $Id: mingw-ncurses.nsi,v 1.331 2019/06/01 13:32:39 tom Exp $ ; TODO add examples ; TODO bump ABI to 6 @@ -10,7 +10,7 @@ !define VERSION_MAJOR "6" !define VERSION_MINOR "1" !define VERSION_YYYY "2019" -!define VERSION_MMDD "0525" +!define VERSION_MMDD "0601" !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} !define MY_ABI "5" diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec index 8e91472a..0780301b 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: 6.1 -Release: 20190525 +Release: 20190601 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz diff --git a/package/ncurses.spec b/package/ncurses.spec index 3dba222b..80920044 100644 --- a/package/ncurses.spec +++ b/package/ncurses.spec @@ -1,7 +1,7 @@ Summary: shared libraries for terminal handling Name: ncurses6 Version: 6.1 -Release: 20190525 +Release: 20190601 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz diff --git a/package/ncursest.spec b/package/ncursest.spec index eb96c649..04f5ff77 100644 --- a/package/ncursest.spec +++ b/package/ncursest.spec @@ -1,7 +1,7 @@ Summary: Curses library with POSIX thread support. Name: ncursest6 Version: 6.1 -Release: 20190525 +Release: 20190601 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz