ncurses 6.1 - patch 20190601
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 2 Jun 2019 00:39:24 +0000 (00:39 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 2 Jun 2019 00:39:24 +0000 (00:39 +0000)
+ 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.

16 files changed:
NEWS
VERSION
dist.mk
man/curs_variables.3x
man/menu_spacing.3x
man/terminfo.tail
ncurses/curses.priv.h
ncurses/tty/lib_mvcur.c
ncurses/tty/tty_update.c
package/debian-mingw/changelog
package/debian-mingw64/changelog
package/debian/changelog
package/mingw-ncurses.nsi
package/mingw-ncurses.spec
package/ncurses.spec
package/ncursest.spec

diff --git a/NEWS b/NEWS
index 1c2f43064a6988d5b3822e9caeb819e04bc632de..c185a7c4eca45d48fe97fe6750bfc9a44875a10c 100644 (file)
--- 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 8be7d044b2d6e91a6319fcd217bc5842b96a857f..18096aaec4c4d2d5fe2c7549445603b69e82222d 100644 (file)
--- 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 b316322f26745eab581ad1f1fa0ef0ee422333d3..649f222889996ced8e9f3823272b9819393bb3c0 100644 (file)
--- 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)
index fffad7149ecf29c0d251ea244c56869b8f23480a..5d7de8c61553082099230fbb52c390ed954f613c 100644 (file)
@@ -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
index 4ff12c7c93bc15559872aea350b08dff75fb2675..b3038d5d734d2c9824e76f4ed1b70f4219ba0760 100644 (file)
@@ -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
index ef064ed949b0fe9fad405f01bbf85c50ae9ef5f5..3112cb04985fbe9ffb54e9c701c3e63caeac9e49 100644 (file)
@@ -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).
index e7af5822fcdd309370ebd60c065bf861e452d682..0d61dc34ea4e2f505d7cbbe3a30a0677b6c2a8de 100644 (file)
@@ -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
 
index 313d488ad07c6d809d8d8b3ea207178f10df05f2..c4847c720589edb685e200a4749bf48367de79ac 100644 (file)
 #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);
index 69de9c2e13cc8d387376e43c80e8a41e7e1b15e1..350f743c118e7a5c3f425e260153b7e798542081 100644 (file)
@@ -84,7 +84,7 @@
 
 #include <ctype.h>
 
-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--;
index 634dbd68c13b465107230011cd7722afdcbf764f..f763468fb75997ee843515234736cbbaa6a49492 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20190525) unstable; urgency=low
+ncurses6 (6.1+20190601) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 25 May 2019 11:39:25 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 01 Jun 2019 09:32:39 -0400
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index 634dbd68c13b465107230011cd7722afdcbf764f..f763468fb75997ee843515234736cbbaa6a49492 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20190525) unstable; urgency=low
+ncurses6 (6.1+20190601) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 25 May 2019 11:39:25 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 01 Jun 2019 09:32:39 -0400
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index f3c2c08bbb41e16a85ab4777b63a73078c6701ef..e9f72da3261f120995ef78f677e3820adba9bccb 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20190525) unstable; urgency=low
+ncurses6 (6.1+20190601) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 25 May 2019 11:39:25 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 01 Jun 2019 09:32:39 -0400
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
index 5fdfb1d604ba2ec2c195e68478160801e24be3fb..3ec7aa6f860a80c87b0448960dcd3ffc304a3056 100644 (file)
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.330 2019/05/25 15:39:25 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.331 2019/06/01 13:32:39 tom Exp $\r
 \r
 ; TODO add examples\r
 ; TODO bump ABI to 6\r
@@ -10,7 +10,7 @@
 !define VERSION_MAJOR "6"\r
 !define VERSION_MINOR "1"\r
 !define VERSION_YYYY  "2019"\r
-!define VERSION_MMDD  "0525"\r
+!define VERSION_MMDD  "0601"\r
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
 \r
 !define MY_ABI   "5"\r
index 8e91472a9ed807df2bc8dc7ceb8b63e3464d5844..0780301b1f4d5d9b7be0c03d7b3669e7bdb8a954 100644 (file)
@@ -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
index 3dba222b697b0360eea31183754db2798222dcb0..8092004476e9f48f41087ae6f81dcbe8da14ddc9 100644 (file)
@@ -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
index eb96c64916f9e79d4681e95a120f42472dd68f11..04f5ff7754e2bd971f9d2376abe73edb1a1d4fef 100644 (file)
@@ -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