From 0fbd5e192896b3e446832d0a451df2cec5f5ae40 Mon Sep 17 00:00:00 2001 From: "Thomas E. Dickey" Date: Sun, 17 Dec 2017 01:22:35 +0000 Subject: [PATCH] ncurses 6.0 - patch 20171216 + repair template in test/package/ncurses-examples.spec (cf: 20171111). + improve tic's warning about the number of parameters tparm might use for u1-u9 by making a special case for u6. + improve curs_attr.3x discussion of color pairs. --- NEWS | 8 +- VERSION | 2 +- dist.mk | 4 +- doc/html/man/adacurses6-config.1.html | 2 +- doc/html/man/captoinfo.1m.html | 2 +- doc/html/man/clear.1.html | 4 +- doc/html/man/curs_attr.3x.html | 207 +++++++++++++++----------- doc/html/man/form.3x.html | 2 +- doc/html/man/infocmp.1m.html | 2 +- doc/html/man/infotocap.1m.html | 2 +- doc/html/man/menu.3x.html | 2 +- doc/html/man/ncurses.3x.html | 2 +- doc/html/man/ncurses6-config.1.html | 4 +- doc/html/man/panel.3x.html | 2 +- doc/html/man/scr_dump.5.html | 2 +- doc/html/man/tabs.1.html | 4 +- doc/html/man/term.5.html | 2 +- doc/html/man/term.7.html | 2 +- doc/html/man/terminfo.5.html | 2 +- doc/html/man/tic.1m.html | 2 +- doc/html/man/toe.1m.html | 2 +- doc/html/man/tput.1.html | 4 +- doc/html/man/tset.1.html | 4 +- doc/html/man/user_caps.5.html | 2 +- man/curs_attr.3x | 54 ++++++- 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 +- progs/tic.c | 21 ++- test/package/ncurses-examples.spec | 10 +- test/picsmap.c | 4 +- 34 files changed, 235 insertions(+), 145 deletions(-) diff --git a/NEWS b/NEWS index 17aacd2c..b6957142 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.3021 2017/12/09 22:45:01 tom Exp $ +-- $Id: NEWS,v 1.3025 2017/12/17 00:14:16 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. +20171216 + + repair template in test/package/ncurses-examples.spec (cf: 20171111). + + improve tic's warning about the number of parameters tparm might use + for u1-u9 by making a special case for u6. + + improve curs_attr.3x discussion of color pairs. + 20171209 + modify misc/ncurses-config.in to make output with --includedir consistent with --cflags, i.e., when --disable-overwrite option was diff --git a/VERSION b/VERSION index 4544bc8c..19de6ac4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:9 6.0 20171209 +5:0:9 6.0 20171216 diff --git a/dist.mk b/dist.mk index 85bd3393..7bca63ee 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.1195 2017/12/09 12:38:04 tom Exp $ +# $Id: dist.mk,v 1.1196 2017/12/11 01:17:12 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 = 0 -NCURSES_PATCH = 20171209 +NCURSES_PATCH = 20171216 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) diff --git a/doc/html/man/adacurses6-config.1.html b/doc/html/man/adacurses6-config.1.html index 8e5f6852..96af44a4 100644 --- a/doc/html/man/adacurses6-config.1.html +++ b/doc/html/man/adacurses6-config.1.html @@ -125,7 +125,7 @@

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 
diff --git a/doc/html/man/captoinfo.1m.html b/doc/html/man/captoinfo.1m.html
index 2b6e09ab..d2221fdb 100644
--- a/doc/html/man/captoinfo.1m.html
+++ b/doc/html/man/captoinfo.1m.html
@@ -190,7 +190,7 @@
 

SEE ALSO

        infocmp(1m), curses(3x), terminfo(5)
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 

AUTHOR

diff --git a/doc/html/man/clear.1.html b/doc/html/man/clear.1.html
index eb16bf7c..5a993498 100644
--- a/doc/html/man/clear.1.html
+++ b/doc/html/man/clear.1.html
@@ -42,7 +42,7 @@
 
 

clear 1

-clear(1)                                                              clear(1)
+clear(1)                    General Commands Manual                   clear(1)
 
 
 
@@ -148,7 +148,7 @@
 

SEE ALSO

        tput(1), terminfo(5)
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 
diff --git a/doc/html/man/curs_attr.3x.html b/doc/html/man/curs_attr.3x.html
index 1bf181d1..8c53942b 100644
--- a/doc/html/man/curs_attr.3x.html
+++ b/doc/html/man/curs_attr.3x.html
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_attr.3x,v 1.61 2017/11/18 23:47:37 tom Exp @
+  * @Id: curs_attr.3x,v 1.62 2017/12/16 20:16:07 tom Exp @
   * ---------------------------------------------------------------------------
   * attr_get
   * .br
@@ -150,61 +150,84 @@
 
 
 

Legacy window attributes

-       Most of the window attribute routines are extensions of older  routines
-       which  assume  that  color pairs are OR'd into the attribute parameter.
-       These older routines use the same name, omitting an underscore (_).
-
-       The attrset routine is a legacy feature predating SVr4 curses but  kept
+       The X/Open window attribute routines which set or get, turn on  or  off
+       are extensions of older routines which assume that color pairs are OR'd
+       into the attribute parameter.  These newer routines use similar  names,
+       because X/Open simply added an underscore (_) for the newer names.
+
+       The int datatype used in the legacy routines is treated as if it is the
+       same size as chtype (used by addch(3x)).  It holds the common video at-
+       tributes  (such  as  bold,  reverse),  as well as a few bits for color.
+       Those bits correspond to the A_COLOR symbol.  The COLOR_PAIR macro pro-
+       vides  a value which can be OR'd into the attribute parameter.  For ex-
+       ample, as long as that value fits into the  A_COLOR  mask,  then  these
+       calls produce similar results:
+
+           attrset(A_BOLD | COLOR_PAIR(pair));
+           attr_set(A_BOLD, pair, NULL);
+
+       However, if the value does not fit, then the COLOR_PAIR macro uses only
+       the bits that fit.  For example, because in ncurses A_COLOR  has  eight
+       (8) bits, then COLOR_PAIR(259) is 4 (259-255).
+
+       The  PAIR_NUMBER  macro extracts a pair number from an int (or chtype).
+       For example, the input and output values in these statements  would  be
+       the same:
+
+           int value = A_BOLD | COLOR_PAIR(input);
+           int output = PAIR_NUMBER(value);
+
+       The  attrset routine is a legacy feature predating SVr4 curses but kept
        in X/Open Curses for the same reason that SVr4 curses kept it: compati-
        bility.
 
-       The remaining attr* functions operate exactly  like  the  corresponding
-       attr_*  functions,  except  that they take arguments of type int rather
+       The  remaining  attr*  functions operate exactly like the corresponding
+       attr_* functions, except that they take arguments of  type  int  rather
        than attr_t.
 
-       There is no corresponding attrget function as such  in  X/Open  Curses,
+       There  is  no  corresponding attrget function as such in X/Open Curses,
        although ncurses provides getattrs (see curs_legacy(3x)).
 
 
 

Change character rendition

-       The  routine  chgat changes the attributes of a given number of charac-
-       ters starting at the current cursor location of stdscr.   It  does  not
-       update  the cursor and does not perform wrapping.  A character count of
-       -1 or greater than the remaining  window  width  means  to  change  at-
-       tributes  all the way to the end of the current line.  The wchgat func-
-       tion generalizes this to any window; the mvwchgat function does a  cur-
+       The routine chgat changes the attributes of a given number  of  charac-
+       ters  starting  at  the current cursor location of stdscr.  It does not
+       update the cursor and does not perform wrapping.  A character count  of
+       -1  or  greater  than  the  remaining  window width means to change at-
+       tributes all the way to the end of the current line.  The wchgat  func-
+       tion  generalizes this to any window; the mvwchgat function does a cur-
        sor move before acting.
 
-       In  these  functions, the color pair argument is a color-pair index (as
+       In these functions, the color pair argument is a color-pair  index  (as
        in the first argument of init_pair, see curs_color(3x)).
 
 
 

Change window color

        The routine color_set sets the current color of the given window to the
-       foreground/background  combination  described by the color pair parame-
+       foreground/background combination described by the color  pair  parame-
        ter.
 
 
 

Standout

-       The routine standout is the same as  attron(A_STANDOUT).   The  routine
-       standend  is  the  same as attrset(A_NORMAL) or attrset(0), that is, it
+       The  routine  standout  is the same as attron(A_STANDOUT).  The routine
+       standend is the same as attrset(A_NORMAL) or attrset(0),  that  is,  it
        turns off all attributes.
 
        X/Open does not mark these "restricted", because
 
        o   they have well established legacy use, and
 
-       o   there is no ambiguity about the way the attributes  might  be  com-
+       o   there  is  no  ambiguity about the way the attributes might be com-
            bined with a color pair.
 
 
 

VIDEO ATTRIBUTES

        The following video attributes, defined in <curses.h>, can be passed to
-       the routines attron, attroff, and attrset, or OR'd with the  characters
+       the  routines attron, attroff, and attrset, or OR'd with the characters
        passed to addch (see curs_addch(3x)).
 
               Name           Description
-              -----------------------------------------------------------
+              -----------------------------------------------------------------
               A_NORMAL       Normal display (no highlight)
               A_STANDOUT     Best highlighting mode of the terminal.
               A_UNDERLINE    Underlining
@@ -217,8 +240,9 @@
               A_ALTCHARSET   Alternate character set
               A_ITALIC       Italics (non-X/Open extension)
               A_CHARTEXT     Bit-mask to extract a character
+              A_COLOR        Bit-mask to extract a color (legacy routines)
 
-       These  video  attributes are supported by attr_on and related functions
+       These video attributes are supported by attr_on and  related  functions
        (which also support the attributes recognized by attron, etc.):
 
               Name            Description
@@ -230,74 +254,74 @@
               WA_TOP          Top highlight
               WA_VERTICAL     Vertical highlight
 
-       The return values of many of these routines are  not  meaningful  (they
-       are  implemented  as macro-expanded assignments and simply return their
-       argument).  The SVr4 manual page claims (falsely) that  these  routines
+       The  return  values  of many of these routines are not meaningful (they
+       are implemented as macro-expanded assignments and simply  return  their
+       argument).   The  SVr4 manual page claims (falsely) that these routines
        always return 1.
 
 
 

NOTES

        These functions may be macros:
 
-              attroff,  wattroff, attron, wattron, attrset, wattrset, standend
+              attroff, wattroff, attron, wattron, attrset, wattrset,  standend
               and standout.
 
-       Color pair values can only be OR'd with attributes if the  pair  number
+       Color  pair  values can only be OR'd with attributes if the pair number
        is less than 256.  The alternate functions such as color_set can pass a
        color pair value directly.  However, ncurses ABI 4 and 5 simply OR this
-       value  within  the  alternate functions.  You must use ncurses ABI 6 to
+       value within the alternate functions.  You must use ncurses  ABI  6  to
        support more than 256 color pairs.
 
 
 

HISTORY

-       X/Open Curses is largely based  on  SVr4  curses,  adding  support  for
-       "wide-characters"  (not  specific to Unicode).  Some of the X/Open dif-
-       ferences from SVr4 curses address the way video attributes can  be  ap-
-       plied  to  wide-characters.   But aside from that, attrset and attr_set
-       are similar.  SVr4 curses provided the basic features for  manipulating
-       video  attributes.  However, earlier versions of curses provided a part
+       X/Open  Curses  is  largely  based  on  SVr4 curses, adding support for
+       "wide-characters" (not specific to Unicode).  Some of the  X/Open  dif-
+       ferences  from  SVr4 curses address the way video attributes can be ap-
+       plied to wide-characters.  But aside from that,  attrset  and  attr_set
+       are  similar.  SVr4 curses provided the basic features for manipulating
+       video attributes.  However, earlier versions of curses provided a  part
        of these features.
 
-       As seen in 2.8BSD, curses assumed 7-bit characters,  using  the  eighth
-       bit  of  a byte to represent the standout feature (often implemented as
-       bold and/or reverse video).  The BSD curses library provided  functions
-       standout  and  standend which were carried along into X/Open Curses due
+       As  seen  in  2.8BSD, curses assumed 7-bit characters, using the eighth
+       bit of a byte to represent the standout feature (often  implemented  as
+       bold  and/or reverse video).  The BSD curses library provided functions
+       standout and standend which were carried along into X/Open  Curses  due
        to their pervasive use in legacy applications.
 
-       Some terminals in the 1980s  could  support  a  variety  of  video  at-
-       tributes,  although the BSD curses library could do nothing with those.
+       Some  terminals  in  the  1980s  could  support  a variety of video at-
+       tributes, although the BSD curses library could do nothing with  those.
        System V (1983) provided an improved curses library.  It defined the A_
-       symbols  for  use  by  applications to manipulate the other attributes.
+       symbols for use by applications to  manipulate  the  other  attributes.
        There are few useful references for the chronology.
 
-       Goodheart's book UNIX Curses Explained (1991)  describes  SVr3  (1987),
+       Goodheart's  book  UNIX  Curses Explained (1991) describes SVr3 (1987),
        commenting on several functions:
 
-       o   the  attron,  attroff, attrset functions (and most of the functions
+       o   the attron, attroff, attrset functions (and most of  the  functions
            found in SVr4 but not in BSD curses) were introduced by System V,
 
-       o   the alternate character set feature with A_ALTCHARSET was added  in
+       o   the  alternate character set feature with A_ALTCHARSET was added in
            SVr2 and improved in SVr3 (by adding acs_map[]),
 
-       o   start_color  and  related color-functions were introduced by System
+       o   start_color and related color-functions were introduced  by  System
            V.3.2,
 
        o   pads, soft-keys were added in SVr3, and
 
        Goodheart did not mention the background character or the cchar_t type.
        Those are respectively SVr4 and X/Open features.  He did mention the A_
-       constants, but did not indicate their values.  Those were not the  same
+       constants,  but did not indicate their values.  Those were not the same
        in different systems, even for those marked as System V.
 
-       Different  Unix  systems  used  different  sizes  for the bit-fields in
-       chtype for characters and colors, and took into account  the  different
+       Different Unix systems used  different  sizes  for  the  bit-fields  in
+       chtype  for  characters and colors, and took into account the different
        integer sizes (32-bit versus 64-bit).
 
-       This  table  showing  the number of bits for A_COLOR and A_CHARTEXT was
-       gleaned from the curses header files for various operating systems  and
-       architectures.   The inferred architecture and notes reflect the format
-       and size of the defined constants as well as clues such as  the  alter-
-       nate  character  set implementation.  A 32-bit library can be used on a
+       This table showing the number of bits for A_COLOR  and  A_CHARTEXT  was
+       gleaned  from the curses header files for various operating systems and
+       architectures.  The inferred architecture and notes reflect the  format
+       and  size  of the defined constants as well as clues such as the alter-
+       nate character set implementation.  A 32-bit library can be used  on  a
        64-bit system, but not necessarily the reverse.
 
               Year   System        Arch    Color   Char   Notes
@@ -312,21 +336,22 @@
               1996   AIX 4.2       32      7       16     X/Open curses
               1996   OSF/1 r4      32      6       16     X/Open curses
               1997   HP-UX 11.00   32      6       8      X/Open curses
+
               2000   U/Win         32/64   7/31    16     uses chtype
 
        Notes:
 
           Regarding HP-UX,
 
-          o   HP-UX 10.20 (1996) added support for 64-bit  PA-RISC  processors
+          o   HP-UX  10.20  (1996) added support for 64-bit PA-RISC processors
               in 1996.
 
-          o   HP-UX  10.30 (1997) marked "curses_colr" obsolete.  That version
+          o   HP-UX 10.30 (1997) marked "curses_colr" obsolete.  That  version
               of curses was dropped with HP-UX 11.30 in 2006.
 
           Regarding OSF/1 (and Tru64),
 
-          o   These used 64-bit hardware.  Like ncurses, the OSF/1 curses  in-
+          o   These  used 64-bit hardware.  Like ncurses, the OSF/1 curses in-
               terface is not customized for 32-bit and 64-bit versions.
 
           o   Unlike other systems which evolved from AT&T code, OSF/1 provid-
@@ -340,30 +365,30 @@
               Sun's copyright began in 1996.
 
           o   Sun updated the X/Open curses interface after 64-bit support was
-              introduced in 1997, but did not modify the  SVr4  curses  inter-
+              introduced  in  1997,  but did not modify the SVr4 curses inter-
               face.
 
           Regarding U/Win,
 
-          o   Development  of  the  curses  library  began in 1991, stopped in
+          o   Development of the curses library  began  in  1991,  stopped  in
               2000.
 
           o   Color support was added in 1998.
 
           o   The library uses only chtype (no cchar_t).
 
-       Once X/Open curses was adopted in the mid-1990s, the  constraint  of  a
+       Once  X/Open  curses  was adopted in the mid-1990s, the constraint of a
        32-bit interface with many colors and wide-characters for chtype became
-       a moot point.  The cchar_t structure (whose size and  members  are  not
+       a  moot  point.   The cchar_t structure (whose size and members are not
        specified in X/Open Curses) could be extended as needed.
 
        Other interfaces are rarely used now:
 
-       o   BSD  curses was improved slightly in 1993/1994 using Keith Bostic's
-           modification to make the library 8-bit clean  for  nvi.   He  moved
+       o   BSD curses was improved slightly in 1993/1994 using Keith  Bostic's
+           modification  to  make  the  library 8-bit clean for nvi.  He moved
            standout attribute to a structure member.
 
-           The  resulting  4.4BSD curses was replaced by ncurses over the next
+           The resulting 4.4BSD curses was replaced by ncurses over  the  next
            ten years.
 
        o   U/Win is rarely used now.
@@ -371,47 +396,47 @@
 
 

EXTENSIONS

        This implementation provides the A_ITALIC attribute for terminals which
-       have  the  enter_italics_mode (sitm) and exit_italics_mode (ritm) capa-
+       have the enter_italics_mode (sitm) and exit_italics_mode  (ritm)  capa-
        bilities.  Italics are not mentioned in X/Open Curses.  Unlike the oth-
-       er  video attributes, A_ITALIC is unrelated to the set_attributes capa-
-       bilities.  This  implementation  makes  the  assumption  that  exit_at-
+       er video attributes, A_ITALIC is unrelated to the set_attributes  capa-
+       bilities.   This  implementation  makes  the  assumption  that exit_at-
        tribute_mode may also reset italics.
 
-       Each  of  the functions added by XSI Curses has a parameter opts, which
-       X/Open Curses still (after more than twenty  years)  documents  as  re-
+       Each of the functions added by XSI Curses has a parameter  opts,  which
+       X/Open  Curses  still  (after  more than twenty years) documents as re-
        served for future use, saying that it should be NULL.  This implementa-
        tion uses that parameter in ABI 6 for the functions which have a color-
        pair parameter to support extended color pairs:
 
-       o   For  functions  which modify the color, e.g., wattr_set, if opts is
-           set it is treated as a pointer to int, and used to  set  the  color
+       o   For functions which modify the color, e.g., wattr_set, if  opts  is
+           set  it  is  treated as a pointer to int, and used to set the color
            pair instead of the short pair parameter.
 
        o   For functions which retrieve the color, e.g., wattr_get, if opts is
-           set it is treated as a pointer to int, and  used  to  retrieve  the
+           set  it  is  treated  as a pointer to int, and used to retrieve the
            color pair as an int value, in addition retrieving it via the stan-
            dard pointer to short parameter.
 
-       The remaining functions which have opts, but do not  manipulate  color,
+       The  remaining  functions which have opts, but do not manipulate color,
        e.g., wattr_on and wattr_off are not used by this implementation except
        to check that they are NULL.
 
 
 

PORTABILITY

        These functions are supported in the XSI Curses standard, Issue 4.  The
-       standard  defined  the dedicated type for highlights, attr_t, which was
+       standard defined the dedicated type for highlights, attr_t,  which  was
        not defined in SVr4 curses.  The functions taking attr_t arguments were
        not supported under SVr4.
 
        Very old versions of this library did not force an update of the screen
-       when changing the attributes.  Use touchwin  to  force  the  screen  to
+       when  changing  the  attributes.   Use  touchwin to force the screen to
        match the updated attributes.
 
-       The  XSI  Curses standard states that whether the traditional functions
-       attron/attroff/attrset can manipulate attributes  other  than  A_BLINK,
-       A_BOLD,  A_DIM, A_REVERSE, A_STANDOUT, or A_UNDERLINE is "unspecified".
-       Under this implementation as well as SVr4 curses, these functions  cor-
-       rectly  manipulate  all  other  highlights (specifically, A_ALTCHARSET,
+       The XSI Curses standard states that whether the  traditional  functions
+       attron/attroff/attrset  can  manipulate  attributes other than A_BLINK,
+       A_BOLD, A_DIM, A_REVERSE, A_STANDOUT, or A_UNDERLINE is  "unspecified".
+       Under  this implementation as well as SVr4 curses, these functions cor-
+       rectly manipulate all  other  highlights  (specifically,  A_ALTCHARSET,
        A_PROTECT, and A_INVIS).
 
        XSI Curses added these entry points:
@@ -419,7 +444,7 @@
               attr_get, attr_on, attr_off, attr_set, wattr_on, wattr_off, wat-
               tr_get, wattr_set
 
-       The  new  functions are intended to work with a new series of highlight
+       The new functions are intended to work with a new series  of  highlight
        macros prefixed with WA_.  The older macros have direct counterparts in
        the newer set of names:
 
@@ -434,11 +459,11 @@
               WA_BOLD         Extra bright or bold
               WA_ALTCHARSET   Alternate character set
 
-       XSI  curses  does not assign values to these symbols, nor does it state
+       XSI curses does not assign values to these symbols, nor does  it  state
        whether or not they are related to the similarly-named A_NORMAL, etc.:
 
-       o   The XSI curses standard specifies that each pair  of  corresponding
-           A_  and  WA_-using functions operates on the same current-highlight
+       o   The  XSI  curses standard specifies that each pair of corresponding
+           A_ and WA_-using functions operates on the  same  current-highlight
            information.
 
        o   However, in some implementations, those symbols have unrelated val-
@@ -446,17 +471,17 @@
 
            For example, the Solaris xpg4 (X/Open) curses declares attr_t to be
            an unsigned short integer (16-bits), while chtype is a unsigned in-
-           teger  (32-bits).   The WA_ symbols in this case are different from
-           the A_ symbols because they are used for a smaller  datatype  which
+           teger (32-bits).  The WA_ symbols in this case are  different  from
+           the  A_  symbols because they are used for a smaller datatype which
            does not represent A_CHARTEXT or A_COLOR.
 
            In this implementation (as in many others), the values happen to be
-           the same because it simplifies copying information  between  chtype
+           the  same  because it simplifies copying information between chtype
            and cchar_t variables.
 
        The XSI standard extended conformance level adds new highlights A_HORI-
-       ZONTAL, A_LEFT, A_LOW, A_RIGHT, A_TOP,  A_VERTICAL  (and  corresponding
-       WA_  macros  for  each).  As of August 2013, no known terminal provides
+       ZONTAL,  A_LEFT,  A_LOW,  A_RIGHT, A_TOP, A_VERTICAL (and corresponding
+       WA_ macros for each).  As of August 2013, no  known  terminal  provides
        these highlights (i.e., via the sgr1 capability).
 
 
@@ -472,10 +497,10 @@
        o   returns an error if the color pair parameter for wcolor_set is out-
            side the range 0..COLOR_PAIRS-1.
 
-       o   does  not  return an error if either of the parameters of wattr_get
+       o   does not return an error if either of the parameters  of  wattr_get
            used for retrieving attribute or color-pair values is NULL.
 
-       Functions with a "mv" prefix first  perform  a  cursor  movement  using
+       Functions  with  a  "mv"  prefix  first perform a cursor movement using
        wmove, and return an error if the position is outside the window, or if
        the window pointer is null.
 
diff --git a/doc/html/man/form.3x.html b/doc/html/man/form.3x.html
index b820eb77..f9422ca6 100644
--- a/doc/html/man/form.3x.html
+++ b/doc/html/man/form.3x.html
@@ -246,7 +246,7 @@
        curses(3x)  and  related  pages  whose names begin "form_" for detailed
        descriptions of the entry points.
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 
diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html
index 64b58242..73b61c39 100644
--- a/doc/html/man/infocmp.1m.html
+++ b/doc/html/man/infocmp.1m.html
@@ -476,7 +476,7 @@
 
        http://invisible-island.net/ncurses/tctest.html
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 

AUTHOR

diff --git a/doc/html/man/infotocap.1m.html b/doc/html/man/infotocap.1m.html
index ab1a12e5..bbf4e02e 100644
--- a/doc/html/man/infotocap.1m.html
+++ b/doc/html/man/infotocap.1m.html
@@ -85,7 +85,7 @@
 

SEE ALSO

        curses(3x), tic(1m), infocmp(1m), terminfo(5)
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 

AUTHOR

diff --git a/doc/html/man/menu.3x.html b/doc/html/man/menu.3x.html
index ad2f2521..3932ea53 100644
--- a/doc/html/man/menu.3x.html
+++ b/doc/html/man/menu.3x.html
@@ -221,7 +221,7 @@
        curses(3x)  and  related  pages  whose names begin "menu_" for detailed
        descriptions of the entry points.
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 
diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html
index 43d5a112..352e6ab8 100644
--- a/doc/html/man/ncurses.3x.html
+++ b/doc/html/man/ncurses.3x.html
@@ -59,7 +59,7 @@
        method of updating  character  screens  with  reasonable  optimization.
        This  implementation  is  "new  curses"  (ncurses)  and is the approved
        replacement for 4.4BSD classic curses,  which  has  been  discontinued.
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
        The  ncurses  library emulates the curses library of System V Release 4
        UNIX, and XPG4 (X/Open Portability Guide) curses  (also  known  as  XSI
diff --git a/doc/html/man/ncurses6-config.1.html b/doc/html/man/ncurses6-config.1.html
index 822a2d34..cb37336d 100644
--- a/doc/html/man/ncurses6-config.1.html
+++ b/doc/html/man/ncurses6-config.1.html
@@ -40,7 +40,7 @@
 
 

ncurses6-config 1

-ncurses6-config(1)                                          ncurses6-config(1)
+ncurses6-config(1)          General Commands Manual         ncurses6-config(1)
 
 
 
@@ -112,7 +112,7 @@
 

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 
diff --git a/doc/html/man/panel.3x.html b/doc/html/man/panel.3x.html
index 5c36528c..368d122a 100644
--- a/doc/html/man/panel.3x.html
+++ b/doc/html/man/panel.3x.html
@@ -204,7 +204,7 @@
 

SEE ALSO

        curses(3x), curs_variables(3x),
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 

AUTHOR

diff --git a/doc/html/man/scr_dump.5.html b/doc/html/man/scr_dump.5.html
index 6e338da2..b6d92db0 100644
--- a/doc/html/man/scr_dump.5.html
+++ b/doc/html/man/scr_dump.5.html
@@ -40,7 +40,7 @@
 
 

scr_dump 5

-scr_dump(5)                                                        scr_dump(5)
+scr_dump(5)                   File Formats Manual                  scr_dump(5)
 
 
 
diff --git a/doc/html/man/tabs.1.html b/doc/html/man/tabs.1.html
index 21c370be..b9aa12c6 100644
--- a/doc/html/man/tabs.1.html
+++ b/doc/html/man/tabs.1.html
@@ -40,7 +40,7 @@
 
 

tabs 1

-tabs(1)                                                                tabs(1)
+tabs(1)                     General Commands Manual                    tabs(1)
 
 
 
@@ -164,7 +164,7 @@
 

SEE ALSO

        tset(1), infocmp(1m), curses(3x), terminfo(5).
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 
diff --git a/doc/html/man/term.5.html b/doc/html/man/term.5.html
index 4d398c3f..0e02e873 100644
--- a/doc/html/man/term.5.html
+++ b/doc/html/man/term.5.html
@@ -40,7 +40,7 @@
 
 

term 5

-term(5)                                                                term(5)
+term(5)                       File Formats Manual                      term(5)
 
 
 
diff --git a/doc/html/man/term.7.html b/doc/html/man/term.7.html
index 0d4ac03e..a9294a4b 100644
--- a/doc/html/man/term.7.html
+++ b/doc/html/man/term.7.html
@@ -40,7 +40,7 @@
 
 

term 7

-term(7)                                                                term(7)
+term(7)                Miscellaneous Information Manual                term(7)
 
 
 
diff --git a/doc/html/man/terminfo.5.html b/doc/html/man/terminfo.5.html
index 76863dbb..3aa3f31f 100644
--- a/doc/html/man/terminfo.5.html
+++ b/doc/html/man/terminfo.5.html
@@ -74,7 +74,7 @@
        Terminfo describes terminals by giving a set of capabilities which they
        have, by specifying how to perform screen operations, and by specifying
        padding  requirements  and  initialization  sequences.   This describes
-       ncurses version 6.0 (patch 20171125).
+       ncurses version 6.0 (patch 20171216).
 
 
 

Terminfo Entry Syntax

diff --git a/doc/html/man/tic.1m.html b/doc/html/man/tic.1m.html
index 69a43208..8c835d49 100644
--- a/doc/html/man/tic.1m.html
+++ b/doc/html/man/tic.1m.html
@@ -364,7 +364,7 @@
        infocmp(1m),   captoinfo(1m),   infotocap(1m),   toe(1m),   curses(3x),
        term(5).  terminfo(5).
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 

AUTHOR

diff --git a/doc/html/man/toe.1m.html b/doc/html/man/toe.1m.html
index bf852833..adac9a04 100644
--- a/doc/html/man/toe.1m.html
+++ b/doc/html/man/toe.1m.html
@@ -113,7 +113,7 @@
        tic(1m), infocmp(1m), captoinfo(1m),  infotocap(1m),  curses(3x),  ter-
        minfo(5).
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 
diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html
index 2cc422cd..362de99a 100644
--- a/doc/html/man/tput.1.html
+++ b/doc/html/man/tput.1.html
@@ -41,7 +41,7 @@
 
 

tput 1

-tput(1)                                                                tput(1)
+tput(1)                     General Commands Manual                    tput(1)
 
 
 
@@ -482,7 +482,7 @@
 

SEE ALSO

        clear(1), stty(1), tabs(1), tset(1), terminfo(5), curs_termcap(3x).
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 
diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html
index 9d117042..c32d3f1f 100644
--- a/doc/html/man/tset.1.html
+++ b/doc/html/man/tset.1.html
@@ -40,7 +40,7 @@
 
 

tset 1

-tset(1)                                                                tset(1)
+tset(1)                     General Commands Manual                    tset(1)
 
 
 
@@ -389,7 +389,7 @@
        csh(1),  sh(1),  stty(1),   curs_terminfo(3x),   tty(4),   terminfo(5),
        ttys(5), environ(7)
 
-       This describes ncurses version 6.0 (patch 20171125).
+       This describes ncurses version 6.0 (patch 20171216).
 
 
 
diff --git a/doc/html/man/user_caps.5.html b/doc/html/man/user_caps.5.html
index 600ac87e..e7b2e711 100644
--- a/doc/html/man/user_caps.5.html
+++ b/doc/html/man/user_caps.5.html
@@ -40,7 +40,7 @@
 
 

user_caps 5

-user_caps(5)                                                      user_caps(5)
+user_caps(5)                  File Formats Manual                 user_caps(5)
 
 
 
diff --git a/man/curs_attr.3x b/man/curs_attr.3x
index 611df4b3..4b394824 100644
--- a/man/curs_attr.3x
+++ b/man/curs_attr.3x
@@ -27,12 +27,25 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_attr.3x,v 1.61 2017/11/18 23:47:37 tom Exp $
+.\" $Id: curs_attr.3x,v 1.62 2017/12/16 20:16:07 tom Exp $
 .TH curs_attr 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
 .ie \n(.g .ds '' \(rq
 .el       .ds '' ''
+.de NS
+.ie n  .sp
+.el    .sp .5
+.ie n  .in +4
+.el    .in +2
+.nf
+.ft C			\" Courier
+..
+.de NE
+.fi
+.ft R
+.in -4
+..
 .de bP
 .ie n  .IP \(bu 4
 .el    .IP \(bu 2
@@ -172,10 +185,42 @@ again values OR'd together in \fIattr\fP,
 without affecting other attributes.
 .\" ---------------------------------------------------------------------------
 .SS Legacy window attributes
-Most of the window attribute routines are extensions of older routines
+The X/Open window attribute routines which \fIset\fP or \fIget\fP,
+turn \fIon\fP or \fIoff\fP
+are extensions of older routines
 which assume that color pairs are OR'd into the attribute parameter.
-These older routines use the same name, omitting an underscore (\fB_\fP).
-
+These newer routines use similar names, because
+X/Open simply added an underscore (\fB_\fP) for the newer names.
+.PP
+The \fBint\fP datatype used in the legacy routines is treated as if
+it is the same size as \fBchtype\fP (used by \fBaddch\fP(3X)).
+It holds the common video attributes (such as bold, reverse),
+as well as a few bits for color.
+Those bits correspond to the \fBA_COLOR\fP symbol.
+The \fBCOLOR_PAIR\fP macro provides a value which can be OR'd into 
+the attribute parameter.
+For example,
+as long as that value fits into the \fBA_COLOR\fP mask,
+then these calls produce similar results:
+.NS
+attrset(A_BOLD | COLOR_PAIR(\fIpair\fP));
+attr_set(A_BOLD, \fIpair\fP, NULL);
+.NE
+.PP
+However, if the value does not fit, then the \fBCOLOR_PAIR\fP macro
+uses only the bits that fit.
+For example, because in ncurses \fBA_COLOR\fP has eight (8) bits,
+then \fBCOLOR_PAIR(259)\fP is 4 (259\-255).
+.PP
+The \fBPAIR_NUMBER\fP macro extracts a pair number from an \fBint\fP
+(or \fBchtype\fP).
+For example, the \fIinput\fP and \fIoutput\fP values in these statements
+would be the same:
+.NS
+int value = A_BOLD | COLOR_PAIR(\fIinput\fP);
+int \fIoutput\fP = PAIR_NUMBER(value);
+.NE
+.PP
 The \fBattrset\fP routine is a legacy feature predating SVr4 curses
 but kept in X/Open Curses for the same reason that SVr4 curses kept it:
 compatibility.
@@ -245,6 +290,7 @@ l l .
 \fBA_ALTCHARSET\fR	Alternate character set
 \fBA_ITALIC\fR	Italics (non-X/Open extension)
 \fBA_CHARTEXT\fR	Bit-mask to extract a character
+\fBA_COLOR\fR	Bit-mask to extract a color (legacy routines)
 .TE
 .RE
 .PP
diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog
index b269df5d..fa1baa69 100644
--- a/package/debian-mingw/changelog
+++ b/package/debian-mingw/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.0+20171209) unstable; urgency=low
+ncurses6 (6.0+20171216) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 09 Dec 2017 07:37:54 -0500
+ -- Thomas E. Dickey   Sun, 10 Dec 2017 20:17:12 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog
index b269df5d..fa1baa69 100644
--- a/package/debian-mingw64/changelog
+++ b/package/debian-mingw64/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.0+20171209) unstable; urgency=low
+ncurses6 (6.0+20171216) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 09 Dec 2017 07:37:54 -0500
+ -- Thomas E. Dickey   Sun, 10 Dec 2017 20:17:12 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
diff --git a/package/debian/changelog b/package/debian/changelog
index 9b6b0186..dbeeb14e 100644
--- a/package/debian/changelog
+++ b/package/debian/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.0+20171209) unstable; urgency=low
+ncurses6 (6.0+20171216) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 09 Dec 2017 07:37:54 -0500
+ -- Thomas E. Dickey   Sun, 10 Dec 2017 20:17:12 -0500
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi
index 76749d92..b694cb97 100644
--- a/package/mingw-ncurses.nsi
+++ b/package/mingw-ncurses.nsi
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.243 2017/12/09 12:38:04 tom Exp $
+; $Id: mingw-ncurses.nsi,v 1.244 2017/12/11 01:17:12 tom Exp $
 
 ; TODO add examples
 ; TODO bump ABI to 6
@@ -10,7 +10,7 @@
 !define VERSION_MAJOR "6"
 !define VERSION_MINOR "0"
 !define VERSION_YYYY  "2017"
-!define VERSION_MMDD  "1209"
+!define VERSION_MMDD  "1216"
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
 
 !define MY_ABI   "5"
diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec
index 603e91a9..2f78a8e0 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.0
-Release: 20171209
+Release: 20171216
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
diff --git a/package/ncurses.spec b/package/ncurses.spec
index 54a0b6a2..90286872 100644
--- a/package/ncurses.spec
+++ b/package/ncurses.spec
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.0
-Release: 20171209
+Release: 20171216
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
diff --git a/progs/tic.c b/progs/tic.c
index e89c477b..478da6c4 100644
--- a/progs/tic.c
+++ b/progs/tic.c
@@ -48,7 +48,7 @@
 #include 
 #include 
 
-MODULE_ID("$Id: tic.c,v 1.247 2017/10/09 15:16:15 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.248 2017/12/16 23:05:21 tom Exp $")
 
 #define STDIN_NAME ""
 
@@ -1755,14 +1755,22 @@ expected_params(const char *name)
     return result;
 }
 
+/*
+ * ncurses assumes that u6 could be used for getting the cursor-position, but
+ * that is not implemented.  Make a special case for that, to quiet needless
+ * warnings.
+ *
+ * There are other string-capability extensions (see terminfo.src) which could
+ * have parameters such as "Ss", "%u", but are not used by ncurses.
+ */
 static int
 is_user_capability(const char *name)
 {
-    int result = 0;
+    int result = -1;
     if (name[0] == 'u' &&
 	(name[1] >= '0' && name[1] <= '9') &&
 	name[2] == '\0')
-	result = 1;
+	result = (name[1] == '6') ? 2 : 0;
     return result;
 }
 
@@ -1844,7 +1852,10 @@ check_params(TERMTYPE2 *tp, const char *name, char *value, int extended)
 	    analyzed = popcount;
 	}
 	if (actual != analyzed && expected != analyzed) {
-	    if (is_user_capability(name)) {
+	    int user_cap = is_user_capability(name);
+	    if ((user_cap == analyzed) && using_extensions) {
+		;		/* ignore */
+	    } else if (user_cap >= 0) {
 		_nc_warning("tparm will use %d parameters for %s",
 			    analyzed, name);
 	    } else {
@@ -2705,7 +2716,7 @@ check_termtype(TERMTYPE2 *tp, bool literal)
 	     * check for consistent number of parameters.
 	     */
 	    if (j >= SIZEOF(parametrized) ||
-		is_user_capability(name) ||
+		is_user_capability(name) > 0 ||
 		parametrized[j] > 0) {
 		check_params(tp, name, a, (j >= STRCOUNT));
 	    }
diff --git a/test/package/ncurses-examples.spec b/test/package/ncurses-examples.spec
index 1918777a..82126843 100644
--- a/test/package/ncurses-examples.spec
+++ b/test/package/ncurses-examples.spec
@@ -1,8 +1,8 @@
 Summary: ncurses-examples - example/test programs from ncurses
 %define AppProgram ncurses-examples
-%define AppVersion 6.0
-%define AppRelease 20171111
-# $Id: ncurses-examples.spec,v 1.8 2017/12/09 20:41:16 tom Exp $
+%define AppVersion MAJOR.MINOR
+%define AppRelease YYYYMMDD
+# $Id: ncurses-examples.spec,v 1.9 2017/12/17 00:12:42 tom Exp $
 Name: %{AppProgram}
 Version: %{AppVersion}
 Release: %{AppRelease}
@@ -13,8 +13,8 @@ Source0: %{AppProgram}-%{AppRelease}.tgz
 Packager: Thomas Dickey 
 
 %description
-These are the example/test programs from the ncurses 6.0 distribution,
-for patch-date 20171111.
+These are the example/test programs from the ncurses MAJOR.MINOR distribution,
+for patch-date YYYYMMDD.
 
 This package installs in "bin/ncurses-examples" to avoid conflict with other
 packages.
diff --git a/test/picsmap.c b/test/picsmap.c
index 597f4a82..f95b9b0c 100644
--- a/test/picsmap.c
+++ b/test/picsmap.c
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: picsmap.c,v 1.112 2017/11/26 00:10:57 tom Exp $
+ * $Id: picsmap.c,v 1.114 2017/12/16 23:49:40 tom Exp $
  *
  * Author: Thomas E. Dickey
  *
@@ -1160,6 +1160,7 @@ parse_xpm(char **data)
 		break;
 	    }
 	    num_colors++;
+	    free(list[reading_last]);
 	    list[reading_last] = strdup(arg1);
 	    if ((by_name = lookup_rgb(arg3)) != 0) {
 		found = gather_c_values(by_name->value);
@@ -1473,6 +1474,7 @@ show_picture(PICS_HEAD * pics)
     int my_pair, my_color;
 
     debugmsg("called show_picture");
+    logmsg("...using %dx%d screen", LINES, COLS);
 #if USE_EXTENDED_COLORS
     reset_color_pairs();
 #elif HAVE_CURSCR
-- 
2.44.0