From: Thomas E. Dickey Date: Sun, 19 Feb 2017 02:52:26 +0000 (+0000) Subject: ncurses 6.0 - patch 20170218 X-Git-Tag: v6.1~49 X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff_plain;h=ce4803687b821efbc5fb2c5a5f06d69cd4dc2656 ncurses 6.0 - patch 20170218 + fix several formatting issues with manual pages. + correct read of terminfo entry in which all strings are absent or explicitly cancelled. Before this fix, the result was that all were treated as only absent. + modify infocmp to suppress mixture of absent/cancelled capabilities that would only show as "NULL, NULL", unless the -q option is used, e.g., to show "-, @" or "@, -". --- diff --git a/NEWS b/NEWS index 5278c3f4..3e855116 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.2758 2017/02/12 15:37:55 tom Exp $ +-- $Id: NEWS,v 1.2760 2017/02/18 22:23:44 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -45,6 +45,15 @@ 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. +20170218 + + fix several formatting issues with manual pages. + + correct read of terminfo entry in which all strings are absent or + explicitly cancelled. Before this fix, the result was that all were + treated as only absent. + + modify infocmp to suppress mixture of absent/cancelled capabilities + that would only show as "NULL, NULL", unless the -q option is used, + e.g., to show "-, @" or "@, -". + 20170212 + build-fixes for PGI compilers (report by Adam J. Stewart) + accept whitespace in sed expression for generating expanded.c diff --git a/VERSION b/VERSION index 830d7998..126fac3e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:9 6.0 20170212 +5:0:9 6.0 20170218 diff --git a/dist.mk b/dist.mk index a3550beb..7b8d1871 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.1147 2017/02/12 15:37:55 tom Exp $ +# $Id: dist.mk,v 1.1148 2017/02/18 13:13:37 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 = 20170212 +NCURSES_PATCH = 20170218 # 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 e90e0f90..40c72f6d 100644 --- a/doc/html/man/adacurses6-config.1.html +++ b/doc/html/man/adacurses6-config.1.html @@ -131,7 +131,7 @@

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.0 (patch 20170204).
+       This describes ncurses version 6.0 (patch 20170218).
 
 
 
diff --git a/doc/html/man/captoinfo.1m.html b/doc/html/man/captoinfo.1m.html
index d703b867..c6add38e 100644
--- a/doc/html/man/captoinfo.1m.html
+++ b/doc/html/man/captoinfo.1m.html
@@ -198,7 +198,7 @@
 

SEE ALSO

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

AUTHOR

diff --git a/doc/html/man/clear.1.html b/doc/html/man/clear.1.html
index c04197f3..1b26e0c2 100644
--- a/doc/html/man/clear.1.html
+++ b/doc/html/man/clear.1.html
@@ -147,7 +147,7 @@
 

SEE ALSO

        tput(1), terminfo(5)
 
-       This describes ncurses version 6.0 (patch 20170204).
+       This describes ncurses version 6.0 (patch 20170218).
 
 
 
diff --git a/doc/html/man/curs_getstr.3x.html b/doc/html/man/curs_getstr.3x.html
index 8f42e1f5..61ebd546 100644
--- a/doc/html/man/curs_getstr.3x.html
+++ b/doc/html/man/curs_getstr.3x.html
@@ -26,7 +26,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_getstr.3x,v 1.20 2017/01/07 19:25:15 tom Exp @
+  * @Id: curs_getstr.3x,v 1.21 2017/02/18 16:37:18 tom Exp @
 -->
 
 
@@ -123,7 +123,7 @@
        function keys; the SVr4.0 documentation claimed that "spe-
        cial  keys"  (such  as  function keys, "home" key, "clear"
        key, etc.) are "interpreted", without giving details.   It
-       lied.   In  fact,  the  `character'  value appended to the
+       lied.   In  fact,  the  "character"  value appended to the
        string by those implementations was  predictable  but  not
        useful  (being,  in  fact, the low-order eight bits of the
        key's KEY_ value).
diff --git a/doc/html/man/curs_inopts.3x.html b/doc/html/man/curs_inopts.3x.html
index 211295e4..1d2db721 100644
--- a/doc/html/man/curs_inopts.3x.html
+++ b/doc/html/man/curs_inopts.3x.html
@@ -26,7 +26,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_inopts.3x,v 1.24 2017/01/07 19:25:15 tom Exp @
+  * @Id: curs_inopts.3x,v 1.25 2017/02/18 16:39:44 tom Exp @
 -->
 
 
@@ -294,7 +294,7 @@
        may be macros.
 
        The noraw and nocbreak calls follow historical practice in
-       that they attempt to restore  to  normal  (`cooked')  mode
+       that they attempt to restore  to  normal  ("cooked")  mode
        from  raw and cbreak modes respectively.  Mixing raw/noraw
        and cbreak/nocbreak calls  leads  to  tty  driver  control
        states  that  are hard to predict or understand; it is not
diff --git a/doc/html/man/curs_util.3x.html b/doc/html/man/curs_util.3x.html
index 062eabef..dfef903a 100644
--- a/doc/html/man/curs_util.3x.html
+++ b/doc/html/man/curs_util.3x.html
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_util.3x,v 1.46 2017/01/07 19:35:54 tom Exp @
+  * @Id: curs_util.3x,v 1.47 2017/02/18 16:43:03 tom Exp @
 -->
 
 
@@ -346,9 +346,9 @@
 
        The  strings returned by unctrl in this implementation are
        determined at compile time, showing C1 controls  from  the
-       upper-128  codes with a `~' prefix rather than `^'.  Other
+       upper-128  codes with a "~" prefix rather than "^".  Other
        implementations have different conventions.  For  example,
-       they  may  show  both sets of control characters with `^',
+       they  may  show  both sets of control characters with "^",
        and strip the parameter to 7 bits.  Or they may ignore  C1
        controls  and  treat  all of the upper-128 codes as print-
        able.  This implementation uses 8 bits but does not modify
@@ -357,7 +357,7 @@
 
        Likewise, the  meta(3x)  function  allows  the  caller  to
        change  the output of keyname, i.e., it determines whether
-       to use the `M-' prefix for "meta" keys (codes in the range
+       to use the "M-" prefix for "meta" keys (codes in the range
        128 to 255).  Both use_legacy_coding and meta succeed only
        after curses is initialized.  X/Open Curses does not docu-
        ment  the  treatment  of  codes 128 to 159.  When treating
diff --git a/doc/html/man/form.3x.html b/doc/html/man/form.3x.html
index 6251f05d..528ba797 100644
--- a/doc/html/man/form.3x.html
+++ b/doc/html/man/form.3x.html
@@ -1,7 +1,7 @@
 
 
 
@@ -217,9 +217,9 @@
        files <curses.h> and <eti.h>.
 
        In your library list, libform.a  should  be  before  libn-
-       curses.a; that is, you want to say `-lform -lncurses', not
+       curses.a; that is, you want to say "-lform -lncurses", not
        the other way around (which would give you  a  link  error
-       using most linkers).
+       when using static libraries).
 
 
 

PORTABILITY

@@ -239,7 +239,7 @@
        curses(3x) and related pages whose names begin "form_" for
        detailed descriptions of the entry points.
 
-       This describes ncurses version 6.0 (patch 20170204).
+       This describes ncurses version 6.0 (patch 20170218).
 
 
 
diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html
index bf777ce1..3f4d43f0 100644
--- a/doc/html/man/infocmp.1m.html
+++ b/doc/html/man/infocmp.1m.html
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: infocmp.1m,v 1.61 2017/02/05 00:27:46 tom Exp @
+  * @Id: infocmp.1m,v 1.65 2017/02/18 19:21:05 tom Exp @
 -->
 
 
@@ -78,25 +78,43 @@
        terminal termname with each of the descriptions  given  by
        the  entries  for  the  other  terminal's termnames.  If a
        capability is defined for only one of the  terminals,  the
-       value  returned will depend on the type of the capability:
-       F for boolean variables, -1  for  integer  variables,  and
-       NULL for string variables.
+       value returned depends on the type of the capability:
 
-       The  -d  option produces a list of each capability that is
-       different between two entries.  This option is  useful  to
-       show  the  difference between two entries, created by dif-
-       ferent people, for the same or similar terminals.
+       o   F for missing boolean variables
 
-       The -c option produces a list of each capability  that  is
-       common between two or more entries.  Capabilities that are
-       not set are ignored.  This option can be used as  a  quick
-       check to see if the -u option is worth using.
+       o   NULL for missing integer or string variables
 
-       The  -n  option produces a list of each capability that is
-       in none of the given entries.  If no termnames are  given,
-       the environment variable TERM will be used for both of the
-       termnames.  This can be used as a quick check  to  see  if
-       anything was left out of a description.
+       Use  the  -q option to show the distinction between absent
+       and cancelled capabilities.
+
+       These options produce a list which you can use to  compare
+       two or more terminal descriptions:
+
+       -d   produces  a list of each capability that is different
+            between two entries.  Each item in the list shows ":"
+            after the capability name, followed by the capability
+            values, separated by a comma.
+
+       -c   produces a list of each  capability  that  is  common
+            between  two  or  more entries.  Missing capabilities
+            are ignored.  Each item in the list shows  "="  after
+            the  capability  name,  followed  by  the  capability
+            value.
+
+            The -u option provides a related output, showing  the
+            first  terminal description rewritten to use the sec-
+            ond as a building block via the "use=" clause.
+
+       -n   produces a list of each capability that is in none of
+            the  given  entries.  Each item in the list shows "!"
+            before the capability name.
+
+            Normally  only  the  conventional  capabilities   are
+            shown.   Use the -x option to add the BSD-compatibil-
+            ity capabilities (names prefixed with "OT").
+
+            If no termnames are given, infocmp uses the  environ-
+            ment variable TERM for each of the termnames.
 
 
 

Source Listing Options [-I] [-L] [-C] [-r]

@@ -132,7 +150,7 @@
        All padding information  for  strings  will  be  collected
        together  and  placed at the beginning of the string where
        termcap expects it.  Mandatory padding  (padding  informa-
-       tion with a trailing '/') will become optional.
+       tion with a trailing "/") will become optional.
 
        All termcap variables no longer supported by terminfo, but
        which are derivable from other terminfo variables, will be
@@ -159,6 +177,8 @@
        equivalents,  and  some terminal types which commonly have
        such sequences, are:
 
+
+
      terminfo                    termcap   Representative Terminals
      ---------------------------------------------------------------
      %p1%c                       %.        adm
@@ -356,18 +376,21 @@
             It also recognizes  a  SGR  action  corresponding  to
             ANSI/ISO  6429/ECMA  Set Graphics Rendition, with the
             values NORMAL, BOLD, UNDERLINE, BLINK,  and  REVERSE.
-            All  but NORMAL may be prefixed with `+' (turn on) or
-            `-' (turn off).
+            All but NORMAL may be prefixed with
+
+            o   "+" (turn on) or
 
-            An  SGR0  designates  an  empty  highlight   sequence
+            o   "-" (turn off).
+
+            An   SGR0  designates  an  empty  highlight  sequence
             (equivalent to {SGR:NORMAL}).
 
        -l   Set output format to terminfo.
 
        -p   Ignore padding specifications when comparing strings.
 
-       -Q n Rather  than  show  source in terminfo (text) format,
-            print the compiled (binary) format in hexadecimal  or
+       -Q n Rather than show source in  terminfo  (text)  format,
+            print  the compiled (binary) format in hexadecimal or
             base64 form, depending on the option's value:
 
                1  hexadecimal
@@ -378,10 +401,13 @@
 
        -q   This makes the output a little shorter:
 
-            o   Make  the  comparison listing shorter by omitting
-                subheadings, and using "-" for  absent  capabili-
+            o   Make the comparison listing shorter  by  omitting
+                subheadings,  and  using "-" for absent capabili-
                 ties, "@" for canceled rather than "NULL".
 
+            o   However, show differences between absent and can-
+                celled capabilities.
+
             o   Omit  the "Reconstructed from" comment for source
                 listings.
 
@@ -466,7 +492,13 @@
        -i,  -l,  -p,  -q and -t options are not supported in SVr4
        curses.
 
-       The -r option's notion of `termcap' capabilities is System
+       SVr4 infocmp does not distinguish between absent and  can-
+       celled capabilities.  Also, it shows missing integer capa-
+       bilities as -1 (the internal value used to represent miss-
+       ing integers).  This implementation shows those as "NULL",
+       for consistency with missing strings.
+
+       The -r option's notion of "termcap" capabilities is System
        V  Release  4's.   Actual  BSD curses versions will have a
        more restricted set.  To see only the 4.4BSD set,  use  -r
        -RBSD.
@@ -482,7 +514,7 @@
 
        http://invisible-island.net/ncurses/tctest.html
 
-       This describes ncurses version 6.0 (patch 20170204).
+       This describes ncurses version 6.0 (patch 20170218).
 
 
 

AUTHOR

diff --git a/doc/html/man/infotocap.1m.html b/doc/html/man/infotocap.1m.html
index b4b16bfb..22d5c1f5 100644
--- a/doc/html/man/infotocap.1m.html
+++ b/doc/html/man/infotocap.1m.html
@@ -88,7 +88,7 @@
 

SEE ALSO

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

AUTHOR

diff --git a/doc/html/man/menu.3x.html b/doc/html/man/menu.3x.html
index 767b344a..d6f2f908 100644
--- a/doc/html/man/menu.3x.html
+++ b/doc/html/man/menu.3x.html
@@ -1,7 +1,7 @@
 
 
 
@@ -198,9 +198,9 @@
        files <curses.h> and <eti.h>.
 
        In your library list, libmenu.a  should  be  before  libn-
-       curses.a; that is, you want to say `-lmenu -lncurses', not
-       the other way around (which would  usually  give  a  link-
-       error).
+       curses.a;  that is, you should say "-lmenu -lncurses", not
+       the other way around (which would give a  link-error  when
+       using static libraries).
 
 
 

PORTABILITY

@@ -217,7 +217,7 @@
        curses(3x) and related pages whose names begin "menu_" for
        detailed descriptions of the entry points.
 
-       This describes ncurses version 6.0 (patch 20170204).
+       This describes ncurses version 6.0 (patch 20170218).
 
 
 
diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html
index 753ccfeb..504ac48a 100644
--- a/doc/html/man/ncurses.3x.html
+++ b/doc/html/man/ncurses.3x.html
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: ncurses.3x,v 1.128 2017/02/05 00:33:02 tom Exp @
+  * @Id: ncurses.3x,v 1.129 2017/02/18 16:50:46 tom Exp @
 -->
 
 
@@ -60,7 +60,7 @@
        sonable optimization.  This implementation is "new curses"
        (ncurses) and is the approved replacement for 4.4BSD clas-
        sic  curses,  which has been discontinued.  This describes
-       ncurses version 6.0 (patch 20170204).
+       ncurses version 6.0 (patch 20170218).
 
        The ncurses library emulates the curses library of  System
        V  Release  4  UNIX,  and  XPG4 (X/Open Portability Guide)
@@ -295,7 +295,7 @@
 

Routine Name Index

        The following table lists each curses routine and the name
        of  the  manual  page  on which it is described.  Routines
-       flagged with `*' are ncurses-specific,  not  described  by
+       flagged with "*" are ncurses-specific,  not  described  by
        XPG4 or present in SVr4.
 
               curses Routine Name     Manual Page Name
diff --git a/doc/html/man/ncurses6-config.1.html b/doc/html/man/ncurses6-config.1.html
index f6eea73a..6c80ea87 100644
--- a/doc/html/man/ncurses6-config.1.html
+++ b/doc/html/man/ncurses6-config.1.html
@@ -114,7 +114,7 @@
 

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.0 (patch 20170204).
+       This describes ncurses version 6.0 (patch 20170218).
 
 
 
diff --git a/doc/html/man/panel.3x.html b/doc/html/man/panel.3x.html
index ada9e085..5867e501 100644
--- a/doc/html/man/panel.3x.html
+++ b/doc/html/man/panel.3x.html
@@ -1,6 +1,6 @@
 
 
 
@@ -194,9 +194,9 @@
 
 

NOTE

        In  your  library  list, libpanel.a should be before libn-
-       curses.a; that is, you want to  say  `-lpanel  -lncurses',
-       not the other way around (which would usually give a link-
-       error).
+       curses.a; that is, you should say "-lpanel -lncurses", not
+       the  other  way around (which would give a link-error with
+       static libraries).
 
 
 

FILES

@@ -208,7 +208,7 @@
 

SEE ALSO

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

AUTHOR

diff --git a/doc/html/man/tabs.1.html b/doc/html/man/tabs.1.html
index 0eec4f5c..0869f80b 100644
--- a/doc/html/man/tabs.1.html
+++ b/doc/html/man/tabs.1.html
@@ -170,7 +170,7 @@
 

SEE ALSO

        tset(1), infocmp(1m), curses(3x), terminfo(5).
 
-       This describes ncurses version 6.0 (patch 20170204).
+       This describes ncurses version 6.0 (patch 20170218).
 
 
 
diff --git a/doc/html/man/term.5.html b/doc/html/man/term.5.html
index 7afb2b08..690985ea 100644
--- a/doc/html/man/term.5.html
+++ b/doc/html/man/term.5.html
@@ -26,7 +26,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: term.5,v 1.25 2017/01/07 18:45:42 tom Exp @
+  * @Id: term.5,v 1.26 2017/02/18 16:58:21 tom Exp @
 -->
 
 
@@ -132,7 +132,7 @@
 
        The  terminal  names  section comes next.  It contains the
        first line of the terminfo description, listing the  vari-
-       ous  names  for the terminal, separated by the `|' charac-
+       ous  names  for the terminal, separated by the "|" charac-
        ter.  The section is terminated with an ASCII NUL  charac-
        ter.
 
diff --git a/doc/html/man/term.7.html b/doc/html/man/term.7.html
index 2cb2c11d..ceb5528f 100644
--- a/doc/html/man/term.7.html
+++ b/doc/html/man/term.7.html
@@ -1,6 +1,6 @@
 
 
 
@@ -63,8 +63,8 @@
 
        If you use a dialup line, the type of device  attached  to
        it  may vary.  Older UNIX systems pre-set a very dumb ter-
-       minal type like `dumb' or `dialup' on dialup lines.  Newer
-       ones may pre-set `vt100', reflecting the prevalence of DEC
+       minal type like "dumb" or "dialup" on dialup lines.  Newer
+       ones may pre-set "vt100", reflecting the prevalence of DEC
        VT100-compatible terminals  and  personal-computer  emula-
        tors.
 
@@ -73,7 +73,7 @@
        if  the  remote terminfo or termcap entry for your type is
        not compatible with yours, but this situation is rare  and
        can  almost  always  be  avoided  by  explicitly exporting
-       `vt100' (assuming you are in fact using  a  VT100-superset
+       "vt100" (assuming you are in fact using  a  VT100-superset
        console, terminal, or terminal emulator.)
 
        In any case, you are free to override the system TERM set-
@@ -108,7 +108,7 @@
        described by terminfo(5).
 
        The first line of  a  terminfo(5)  description  gives  the
-       names by which terminfo knows a terminal, separated by `|'
+       names by which terminfo knows a terminal, separated by "|"
        (pipe-bar) characters with the last name field  terminated
        by  a  comma.   The first name field is the type's primary
        name, and is the one to use when setting TERM.   The  last
@@ -200,7 +200,7 @@
        intended to specify a line height, that suffix  should  go
        first.  So, for a hypothetical FuBarCo model 2317 terminal
        in 30-line mode with reverse video,  best  form  would  be
-       fubar-30-rv (rather than, say, `fubar-rv-30').
+       fubar-30-rv (rather than, say, "fubar-rv-30").
 
        Terminal types that are written not as standalone entries,
        but rather as components to be plugged into other  entries
diff --git a/doc/html/man/terminfo.5.html b/doc/html/man/terminfo.5.html
index 8530bc4d..2c8d8b66 100644
--- a/doc/html/man/terminfo.5.html
+++ b/doc/html/man/terminfo.5.html
@@ -5,7 +5,7 @@
   * Note: this must be run through tbl before nroff.
   * The magic cookie on the first line triggers this under some man programs.
   ****************************************************************************
-  * Copyright (c) 1998-2013,2016 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2016,2017 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            *
@@ -31,7 +31,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: terminfo.head,v 1.22 2016/10/15 17:02:31 tom Exp @
+  * @Id: terminfo.head,v 1.23 2017/02/18 17:04:53 tom Exp @
   * Head of terminfo man page ends here
   * @Id: terminfo.tail,v 1.76 2017/01/07 18:32:49 tom Exp @
   * Beginning of terminfo.tail file
@@ -75,13 +75,13 @@
        nals by giving a set of capabilities which they  have,  by
        specifying how to perform screen operations, and by speci-
        fying padding requirements and  initialization  sequences.
-       This describes ncurses version 6.0 (patch 20170204).
+       This describes ncurses version 6.0 (patch 20170218).
 
-       Entries in terminfo consist of a sequence of `,' separated
+       Entries in terminfo consist of a sequence of "," separated
        fields (embedded commas may be escaped with a backslash or
-       notated  as \054).  White space after the `,' separator is
+       notated  as \054).  White space after the "," separator is
        ignored.  The first entry  for  each  terminal  gives  the
-       names  which  are known for the terminal, separated by `|'
+       names  which  are known for the terminal, separated by "|"
        characters.  The first  name  given  is  the  most  common
        abbreviation  for the terminal, the last name given should
        be a long name fully identifying  the  terminal,  and  all
@@ -90,7 +90,7 @@
        no  blanks;  the last name may well contain upper case and
        blanks for readability.
 
-       Lines beginning with a `#' in the first column are treated
+       Lines beginning with a "#" in the first column are treated
        as  comments.  While comment lines are legal at any point,
        the output of captoinfo and infotocap  (aliases  for  tic)
        will move comments so they occur only between entries.
diff --git a/doc/html/man/tic.1m.html b/doc/html/man/tic.1m.html
index aabeafd0..faba1a86 100644
--- a/doc/html/man/tic.1m.html
+++ b/doc/html/man/tic.1m.html
@@ -403,7 +403,7 @@
        infocmp(1m),   captoinfo(1m),   infotocap(1m),    toe(1m),
        curses(3x), term(5).  terminfo(5).
 
-       This describes ncurses version 6.0 (patch 20170204).
+       This describes ncurses version 6.0 (patch 20170218).
 
 
 

AUTHOR

diff --git a/doc/html/man/toe.1m.html b/doc/html/man/toe.1m.html
index b6905f70..e2a40ab5 100644
--- a/doc/html/man/toe.1m.html
+++ b/doc/html/man/toe.1m.html
@@ -26,7 +26,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: toe.1m,v 1.28 2017/01/14 19:55:36 tom Exp @
+  * @Id: toe.1m,v 1.29 2017/02/18 17:10:26 tom Exp @
 -->
 
 
@@ -82,7 +82,7 @@
        -u file
               says to write a  report  to  the  standard  output,
               listing  dependencies in the given terminfo/termcap
-              source file.  The report condenses the `use'  rela-
+              source file.  The report condenses the "use"  rela-
               tion:  each  line consists of the primary name of a
               terminal that has use capabilities, followed  by  a
               colon, followed by the whitespace-separated primary
@@ -93,7 +93,7 @@
               says  to  write  a  report  to the standard output,
               listing reverse  dependencies  in  the  given  ter-
               minfo/termcap source file.  The report reverses the
-              `use' relation: each line consists of  the  primary
+              "use" relation: each line consists of  the  primary
               name of a terminal that occurs in use capabilities,
               followed by a colon, followed  by  the  whitespace-
               separated  primary  names  of  all  terminals which
@@ -120,7 +120,7 @@
        tic(1m),    infocmp(1m),   captoinfo(1m),   infotocap(1m),
        curses(3x), terminfo(5).
 
-       This describes ncurses version 6.0 (patch 20170204).
+       This describes ncurses version 6.0 (patch 20170218).
 
 
 
diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html
index a6888a1f..7fa10e86 100644
--- a/doc/html/man/tput.1.html
+++ b/doc/html/man/tput.1.html
@@ -530,7 +530,7 @@
        clear(1),    stty(1),   tabs(1),   tset(1),   terminfo(5),
        curs_termcap(3x).
 
-       This describes ncurses version 6.0 (patch 20170204).
+       This describes ncurses version 6.0 (patch 20170218).
 
 
 
diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html
index 62d8626d..70599a4e 100644
--- a/doc/html/man/tset.1.html
+++ b/doc/html/man/tset.1.html
@@ -435,7 +435,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 20170204).
+       This describes ncurses version 6.0 (patch 20170218).
 
 
 
diff --git a/man/curs_getstr.3x b/man/curs_getstr.3x
index e8fbbc6d..ee8ae92d 100644
--- a/man/curs_getstr.3x
+++ b/man/curs_getstr.3x
@@ -26,8 +26,12 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_getstr.3x,v 1.20 2017/01/07 19:25:15 tom Exp $
+.\" $Id: curs_getstr.3x,v 1.21 2017/02/18 16:37:18 tom Exp $
 .TH curs_getstr 3X ""
+.ie \n(.g .ds `` \(lq
+.el       .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el       .ds '' ''
 .na
 .hy 0
 .SH NAME
@@ -81,7 +85,7 @@ backspace is echoed as deletion of the previous character (typically a left
 motion).
 .SH RETURN VALUE
 All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
+specifies only \*(``an integer value other than \fBERR\fR\*('') upon successful
 completion.
 .PP
 X/Open defines no error conditions.
@@ -95,7 +99,7 @@ This implementation provides an extension as well.
 If a SIGWINCH interrupts the function, it will return \fBKEY_RESIZE\fP
 rather than \fBOK\fP or \fBERR\fP.
 .PP
-Functions with a "mv" prefix first perform a cursor movement using
+Functions with a \*(``mv\*('' prefix first perform a cursor movement using
 \fBwmove\fP, and return an error if the position is outside the window,
 or if the window pointer is null.
 .SH NOTES
@@ -108,9 +112,14 @@ This implementation returns ERR if the window pointer is null,
 or if the lower-level \fBwgetch\fR(3X) call returns an ERR.
 .PP
 SVr3 and early SVr4 curses implementations did not reject function keys;
-the SVr4.0 documentation claimed that "special keys" (such as function
-keys, "home" key, "clear" key, \fIetc\fR.) are "interpreted", without
-giving details.  It lied.  In fact, the `character' value appended to the
+the SVr4.0 documentation claimed that \*(``special keys\*(''
+(such as function keys,
+\*(``home\*('' key,
+\*(``clear\*('' key,
+\fIetc\fR.) are \*(``interpreted\*('',
+without giving details.
+It lied.
+In fact, the \*(``character\*('' value appended to the
 string by those implementations was predictable but not useful
 (being, in fact, the low-order eight bits of the key's KEY_ value).
 .PP
diff --git a/man/curs_inopts.3x b/man/curs_inopts.3x
index 69ad2c21..c1882eae 100644
--- a/man/curs_inopts.3x
+++ b/man/curs_inopts.3x
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_inopts.3x,v 1.24 2017/01/07 19:25:15 tom Exp $
+.\" $Id: curs_inopts.3x,v 1.25 2017/02/18 16:39:44 tom Exp $
 .TH curs_inopts 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -267,7 +267,7 @@ If \fIfd\fR is
 .\"
 .SH RETURN VALUE
 All routines that return an integer return \fBERR\fR upon failure and OK (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
+specifies only \*(``an integer value other than \fBERR\fR\*('') upon successful
 completion, unless otherwise noted in the preceding routine descriptions.
 .PP
 X/Open does not define any error conditions.
@@ -298,13 +298,13 @@ ncurses loads the key-definitions for the current terminal description.
 If the terminal description includes extended string capabilities,
 e.g., from using the \fB\-x\fP option of \fB@TIC@\fP,
 then ncurses also defines keys for the capabilities whose names
-begin with "k".
+begin with \*(``k\*(''.
 The corresponding keycodes are generated and (depending on previous
 loads of terminal descriptions) may differ from one execution of a
 program to the next.
 The generated keycodes are recognized by the \fBkeyname\fP function
-(which will then return a name beginning with "k" denoting the
-terminfo capability name rather than "K", used for curses key-names).
+(which will then return a name beginning with \*(``k\*('' denoting the
+terminfo capability name rather than \*(``K\*('', used for curses key-names).
 On the other hand, an application can use \fBdefine_key\fP to establish
 a specific keycode for a given string.
 This makes it possible for an application to check for an extended
@@ -334,7 +334,7 @@ Note that \fBecho\fR, \fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR,
 \fBqiflush\fR, \fBtimeout\fR, and \fBwtimeout\fR may be macros.
 .PP
 The \fBnoraw\fR and \fBnocbreak\fR calls follow historical practice in that
-they attempt to restore to normal (`cooked') mode from raw and cbreak modes
+they attempt to restore to normal (\*(``cooked\*('') mode from raw and cbreak modes
 respectively.
 Mixing raw/noraw and cbreak/nocbreak calls leads to tty driver
 control states that are hard to predict or understand; it is not recommended.
diff --git a/man/curs_util.3x b/man/curs_util.3x
index 32be55d6..f0c4c141 100644
--- a/man/curs_util.3x
+++ b/man/curs_util.3x
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_util.3x,v 1.46 2017/01/07 19:35:54 tom Exp $
+.\" $Id: curs_util.3x,v 1.47 2017/02/18 16:43:03 tom Exp $
 .TH curs_util 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -341,9 +341,9 @@ parameter values outside the 0 to 255 range.
 .PP
 The strings returned by \fBunctrl\fR in this implementation are determined
 at compile time,
-showing C1 controls from the upper-128 codes with a `~' prefix rather than `^'.
+showing C1 controls from the upper-128 codes with a \*(``~\*('' prefix rather than \*(``^\*(''.
 Other implementations have different conventions.
-For example, they may show both sets of control characters with `^',
+For example, they may show both sets of control characters with \*(``^\*('',
 and strip the parameter to 7 bits.
 Or they may ignore C1 controls and treat all of the upper-128 codes as
 printable.
@@ -354,7 +354,7 @@ change the output of \fBunctrl\fP.
 .PP
 Likewise, the \fBmeta\fP(3X) function allows the caller to change the
 output of \fBkeyname\fP, i.e.,
-it determines whether to use the `M\-' prefix
+it determines whether to use the \*(``M\-\*('' prefix
 for \*(``meta\*('' keys (codes in the range 128 to 255).
 Both \fBuse_legacy_coding\fP and \fBmeta\fP succeed only after
 curses is initialized.
diff --git a/man/form.3x b/man/form.3x
index c21f857b..64759f2f 100644
--- a/man/form.3x
+++ b/man/form.3x
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2015,2016 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2016,2017 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,8 +27,12 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form.3x,v 1.28 2016/10/29 22:26:35 tom Exp $
+.\" $Id: form.3x,v 1.29 2017/02/18 16:46:53 tom Exp $
 .TH form 3X ""
+.ie \n(.g .ds `` \(lq
+.el       .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el       .ds '' ''
 .SH NAME
 \fBform\fR \- curses extension for programming forms
 .SH SYNOPSIS
@@ -196,8 +200,8 @@ The header file \fB\fR automatically includes the header files
 \fB\fR and \fB\fR.
 .PP
 In your library list, libform.a should be before libncurses.a; that is,
-you want to say `\-lform \-lncurses', not the other way around (which would
-give you a link error using most linkers).
+you want to say \*(``\-lform \-lncurses\*('', not the other way around
+(which would give you a link error when using static libraries).
 .SH PORTABILITY
 These routines emulate the System V forms library.  They were not supported on
 Version 7 or BSD versions.
diff --git a/man/infocmp.1m b/man/infocmp.1m
index 1e4bf1f5..79a12a4d 100644
--- a/man/infocmp.1m
+++ b/man/infocmp.1m
@@ -27,8 +27,12 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: infocmp.1m,v 1.61 2017/02/05 00:27:46 tom Exp $
+.\" $Id: infocmp.1m,v 1.65 2017/02/18 19:21:05 tom Exp $
 .TH @INFOCMP@ 1M ""
+.ie \n(.g .ds `` \(lq
+.el       .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el       .ds '' ''
 .ds n 5
 .de bP
 .IP \(bu 4
@@ -89,27 +93,46 @@ the \fB\-d\fR option will be assumed.
 \fItermname\fR with each of the descriptions given by the entries for the other
 terminal's \fItermnames\fR.
 If a capability is defined for only one of the
-terminals, the value returned will depend on the type of the capability:
-\fBF\fR for boolean variables, \fB\-1\fR for integer variables, and \fBNULL\fR
-for string variables.
+terminals, the value returned depends on the type of the capability:
+.bP
+\fBF\fR for missing boolean variables
+.bP
+\fBNULL\fR for missing integer or string variables
 .PP
-The \fB\-d\fR option produces a list of each capability that is different
-between two entries.
-This option is useful to show the difference between two
-entries, created by different people, for the same or similar terminals.
+Use the \fB\-q\fP option to show the distinction between
+\fIabsent\fP and \fIcancelled\fP capabilities.
 .PP
-The \fB\-c\fR option produces a list of each capability that is common between
+These options produce a list which you can use to compare two
+or more terminal descriptions:
+.TP 5
+\fB\-d\fR
+produces a list of each capability that is \fIdifferent\fP
+between two entries.
+Each item in the list shows \*(``:\*('' after the capability name,
+followed by the capability values, separated by a comma.
+.TP
+\fB\-c\fR
+produces a list of each capability that is \fIcommon\fP between
 two or more entries.
-Capabilities that are not set are ignored.
-This option can be
-used as a quick check to see if the \fB\-u\fR option is worth using.
-.PP
-The \fB\-n\fR option produces a list of each capability that is in none of
-the given entries.
-If no \fItermnames\fR are given, the environment variable \fBTERM\fR
-will be used for both of the \fItermnames\fR.
-This can be used as a quick
-check to see if anything was left out of a description.
+Missing capabilities are ignored.
+Each item in the list shows \*(``=\*('' after the capability name,
+followed by the capability value.
+.IP
+The \fB\-u\fR option provides a related output,
+showing the first terminal description rewritten to use the second
+as a building block via the \*(``use=\*('' clause. 
+.TP
+\fB\-n\fR
+produces a list of each capability that is in \fInone\fP of the given entries.
+Each item in the list shows \*(``!\*('' before the capability name.
+.IP
+Normally only the conventional capabilities are shown.
+Use the \fB\-x\fP option to add the BSD-compatibility
+capabilities (names prefixed with \*(``OT\*('').
+.IP
+If no \fItermnames\fR are given,
+\fB@INFOCMP@\fR uses the environment variable \fBTERM\fR
+for each of the \fItermnames\fR.
 .SS Source Listing Options [\-I] [\-L] [\-C] [\-r]
 The \fB\-I\fR, \fB\-L\fR, and \fB\-C\fR options will produce a source listing for
 each terminal named.
@@ -148,7 +171,7 @@ and trim excess whitespace (use the \fB\-0\fP option for that).
 All padding information for strings will be collected together and placed
 at the beginning of the string where \fBtermcap\fR expects it.
 Mandatory
-padding (padding information with a trailing '/') will become optional.
+padding (padding information with a trailing \*(``/\*('') will become optional.
 .PP
 All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which
 are derivable from other \fBterminfo\fR variables, will be output.
@@ -381,7 +404,13 @@ DEC[+\-]ARM/auto-repeat mode
 It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set
 Graphics Rendition, with the values NORMAL, BOLD, UNDERLINE, BLINK, and
 REVERSE.
-All but NORMAL may be prefixed with `+' (turn on) or `\-' (turn off).
+All but NORMAL may be prefixed with
+.RS
+.bP
+\*(``+\*('' (turn on) or
+.bP
+\*(``\-\*('' (turn off).
+.RE
 .IP
 An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}).
 .TP 5
@@ -412,9 +441,11 @@ This makes the output a little shorter:
 .RS
 .bP
 Make the comparison listing shorter by omitting subheadings, and using
-"\-" for absent capabilities, "@" for canceled rather than "NULL".
+\*(``\-\*('' for absent capabilities, \*(``@\*('' for canceled rather than \*(``NULL\*(''.
 .bP
-Omit the "Reconstructed from" comment for source listings.
+However, show differences between absent and cancelled capabilities.
+.bP
+Omit the \*(``Reconstructed from\*('' comment for source listings.
 .RE
 .TP 5
 \fB\-R\fR\fIsubset\fR
@@ -425,9 +456,9 @@ the full set of SVR4/XSI Curses terminfo; and variants such as AIX
 that have their own extensions incompatible with SVr4/XSI.
 .IP
 Available terminfo
-subsets are "SVr1", "Ultrix", "HP", and "AIX"; see \fBterminfo\fR(\*n) for
+subsets are \*(``SVr1\*('', \*(``Ultrix\*('', \*(``HP\*('', and \*(``AIX\*(''; see \fBterminfo\fR(\*n) for
 details.
-You can also choose the subset "BSD" which selects only capabilities
+You can also choose the subset \*(``BSD\*('' which selects only capabilities
 with termcap equivalents recognized by 4.4BSD.
 .TP
 \fB\-s \fR\fI[d|i|l|c]\fR
@@ -518,7 +549,13 @@ The
 \fB\-t\fR
 options are not supported in SVr4 curses.
 .PP
-The \fB\-r\fR option's notion of `termcap' capabilities is System V Release 4's.
+SVr4 infocmp does not distinguish between absent and cancelled capabilities.
+Also, it shows missing integer capabilities as \fB\-1\fP
+(the internal value used to represent missing integers).
+This implementation shows those as \*(``NULL\*('',
+for consistency with missing strings.
+.PP
+The \fB\-r\fR option's notion of \*(``termcap\*('' capabilities is System V Release 4's.
 Actual BSD curses versions will have a more restricted set.
 To see only the
 4.4BSD set, use \fB\-r\fR \fB\-RBSD\fR.
diff --git a/man/menu.3x b/man/menu.3x
index c0be4695..6e61512d 100644
--- a/man/menu.3x
+++ b/man/menu.3x
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2010,2014 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2014,2017 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,8 +27,12 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: menu.3x,v 1.22 2014/08/16 20:32:08 tom Exp $
+.\" $Id: menu.3x,v 1.23 2017/02/18 16:49:46 tom Exp $
 .TH menu 3X ""
+.ie \n(.g .ds `` \(lq
+.el       .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el       .ds '' ''
 .SH NAME
 \fBmenu\fR \- curses extension for programming menus
 .SH SYNOPSIS
@@ -171,8 +175,8 @@ The header file \fB\fR automatically includes the header files
 \fB\fR and \fB\fR.
 .PP
 In your library list, libmenu.a should be before libncurses.a; that is,
-you want to say `\-lmenu \-lncurses', not the other way around (which would
-usually give a link-error).
+you should say \*(``\-lmenu \-lncurses\*('', not the other way around
+(which would give a link-error when using static libraries).
 .SH PORTABILITY
 These routines emulate the System V menu library.  They were not supported on
 Version 7 or BSD versions.
@@ -180,8 +184,8 @@ Version 7 or BSD versions.
 Juergen Pfeifer.  Manual pages and adaptation for ncurses by Eric
 S. Raymond.
 .SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin "menu_" for detailed
-descriptions of the entry points.
+\fBcurses\fR(3X) and related pages whose names begin \*(``menu_\*(''
+for detailed descriptions of the entry points.
 .PP
 This describes \fBncurses\fR
 version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
diff --git a/man/ncurses.3x b/man/ncurses.3x
index 8f33ebd7..902064e6 100644
--- a/man/ncurses.3x
+++ b/man/ncurses.3x
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: ncurses.3x,v 1.128 2017/02/05 00:33:02 tom Exp $
+.\" $Id: ncurses.3x,v 1.129 2017/02/18 16:50:46 tom Exp $
 .hy 0
 .TH ncurses 3X ""
 .ie \n(.g .ds `` \(lq
@@ -307,7 +307,7 @@ For example, \fBwaddch\fP becomes \fBwadd_wch\fP.
 .SS Routine Name Index
 The following table lists each \fBcurses\fR routine and the name of
 the manual page on which it is described.
-Routines flagged with `*'
+Routines flagged with \*(``*\*(''
 are ncurses-specific, not described by XPG4 or present in SVr4.
 .PP
 .TS
diff --git a/man/panel.3x b/man/panel.3x
index 7880e8cd..0d683130 100644
--- a/man/panel.3x
+++ b/man/panel.3x
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2015,2016 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2016,2017 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            *
@@ -26,8 +26,12 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: panel.3x,v 1.20 2016/10/15 17:02:31 tom Exp $
+.\" $Id: panel.3x,v 1.21 2017/02/18 16:53:23 tom Exp $
 .TH panel 3X ""
+.ie \n(.g .ds `` \(lq
+.el       .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el       .ds '' ''
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
@@ -172,8 +176,8 @@ move to the top of the stack. You are cautioned to use the correct
 function to ensure compatibility with native panel libraries.
 .SH NOTE
 In your library list, libpanel.a should be before libncurses.a; that is,
-you want to say `\-lpanel \-lncurses', not the other way around (which would
-usually give a link-error).
+you should say \*(``\-lpanel \-lncurses\*('', not the other way around
+(which would give a link-error with static libraries).
 .SH FILES
 .P
 panel.h
diff --git a/man/term.5 b/man/term.5
index bab338cb..571b9f55 100644
--- a/man/term.5
+++ b/man/term.5
@@ -26,8 +26,12 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: term.5,v 1.25 2017/01/07 18:45:42 tom Exp $
+.\" $Id: term.5,v 1.26 2017/02/18 16:58:21 tom Exp $
 .TH term 5
+.ie \n(.g .ds `` \(lq
+.el       .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el       .ds '' ''
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
@@ -118,7 +122,7 @@ integers as two bytes and compute the little-endian value.
 The terminal names section comes next.
 It contains the first line of the terminfo description,
 listing the various names for the terminal,
-separated by the `|' character.
+separated by the \*(``|\*('' character.
 The section is terminated with an \s-1ASCII NUL\s+1 character.
 .PP
 The boolean flags have one byte for each flag.
diff --git a/man/term.7 b/man/term.7
index cee8a012..52d366d2 100644
--- a/man/term.7
+++ b/man/term.7
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2011,2017 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            *
@@ -26,8 +26,12 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: term.7,v 1.23 2011/12/17 23:32:17 tom Exp $
+.\" $Id: term.7,v 1.24 2017/02/18 17:01:51 tom Exp $
 .TH term 7
+.ie \n(.g .ds `` \(lq
+.el       .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el       .ds '' ''
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
@@ -44,14 +48,14 @@ or \fB/etc/ttys\fR (BSD UNIXes).
 This will nearly always suffice for workstation and microcomputer consoles.
 .PP
 If you use a dialup line, the type of device attached to it may vary.  Older
-UNIX systems pre-set a very dumb terminal type like `dumb' or `dialup' on
-dialup lines.  Newer ones may pre-set `vt100', reflecting the prevalence of DEC
+UNIX systems pre-set a very dumb terminal type like \*(``dumb\*('' or \*(``dialup\*('' on
+dialup lines.  Newer ones may pre-set \*(``vt100\*('', reflecting the prevalence of DEC
 VT100-compatible terminals and personal-computer emulators.
 .PP
 Modern telnets pass your \fBTERM\fR environment variable from the local side to
 the remote one.  There can be problems if the remote terminfo or termcap entry
 for your type is not compatible with yours, but this situation is rare and
-can almost always be avoided by explicitly exporting `vt100' (assuming you
+can almost always be avoided by explicitly exporting \*(``vt100\*('' (assuming you
 are in fact using a VT100-superset console, terminal, or terminal emulator.)
 .PP
 In any case, you are free to override the system \fBTERM\fR setting to your
@@ -81,7 +85,7 @@ letter).  This command dumps a capability file in the text format described by
 \fBterminfo\fR(\*n).
 .PP
 The first line of a \fBterminfo\fR(\*n) description gives the names by which
-terminfo knows a terminal, separated by `|' (pipe-bar) characters with the last
+terminfo knows a terminal, separated by \*(``|\*('' (pipe-bar) characters with the last
 name field terminated by a comma.  The first name field is the type's
 \fIprimary name\fR, and is the one to use when setting \fBTERM\fR.  The last
 name field (if distinct from the first) is actually a description of the
@@ -172,7 +176,7 @@ Wide; terminal is in 132 column mode.
 Conventionally, if your terminal type is a variant intended to specify a
 line height, that suffix should go first.  So, for a hypothetical FuBarCo
 model 2317 terminal in 30-line mode with reverse video, best form would be
-\fBfubar\-30\-rv\fR (rather than, say, `fubar\-rv\-30').
+\fBfubar\-30\-rv\fR (rather than, say, \*(``fubar\-rv\-30\*('').
 .PP
 Terminal types that are written not as standalone entries, but rather as
 components to be plugged into other entries via \fBuse\fP capabilities,
diff --git a/man/terminfo.head b/man/terminfo.head
index b4c17205..fcd27e3a 100644
--- a/man/terminfo.head
+++ b/man/terminfo.head
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2013,2016 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2016,2017 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            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: terminfo.head,v 1.22 2016/10/15 17:02:31 tom Exp $
+.\" $Id: terminfo.head,v 1.23 2017/02/18 17:04:53 tom Exp $
 .TH terminfo 5 "" "" "File Formats"
 .ds n 5
 .ds d @TERMINFO@
@@ -57,18 +57,18 @@ version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
 .PP
 Entries in
 .I terminfo
-consist of a sequence of `,' separated fields (embedded commas may be
+consist of a sequence of \*(``,\*('' separated fields (embedded commas may be
 escaped with a backslash or notated as \\054).
-White space after the `,' separator is ignored.
+White space after the \*(``,\*('' separator is ignored.
 The first entry for each terminal gives the names which are known for the
-terminal, separated by `|' characters.
+terminal, separated by \*(``|\*('' characters.
 The first name given is the most common abbreviation for the terminal,
 the last name given should be a long name fully identifying the terminal,
 and all others are understood as synonyms for the terminal name.
 All names but the last should be in lower case and contain no blanks;
 the last name may well contain upper case and blanks for readability.
 .PP
-Lines beginning with a `#' in the first column are treated as comments.
+Lines beginning with a \*(``#\*('' in the first column are treated as comments.
 While comment lines are legal at any point, the output of \fB@CAPTOINFO@\fP
 and \fB@INFOTOCAP@\fP (aliases for \fB@TIC@\fP)
 will move comments so they occur only between entries.
diff --git a/man/toe.1m b/man/toe.1m
index 001a5d5f..ed839152 100644
--- a/man/toe.1m
+++ b/man/toe.1m
@@ -26,8 +26,12 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: toe.1m,v 1.28 2017/01/14 19:55:36 tom Exp $
+.\" $Id: toe.1m,v 1.29 2017/02/18 17:10:26 tom Exp $
 .TH @TOE@ 1M ""
+.ie \n(.g .ds `` \(lq
+.el       .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el       .ds '' ''
 .ds n 5
 .ds d @TERMINFO@
 .SH NAME
@@ -68,7 +72,7 @@ sort the output by the entry names.
 \fB\-u\fR \fIfile\fR
 says to write a report to the standard output,
 listing dependencies in the given terminfo/termcap source file.
-The report condenses the `use' relation:
+The report condenses the \*(``use\*('' relation:
 each line consists of the primary name of a terminal that
 has use capabilities,
 followed by a colon,
@@ -80,7 +84,7 @@ followed by a newline
 \fB\-U\fR \fIfile\fR
 says to write a report to the standard output,
 listing reverse dependencies in the given terminfo/termcap source file.
-The report reverses the `use' relation:
+The report reverses the \*(``use\*('' relation:
 each line consists of the primary name of a
 terminal that occurs in use capabilities,
 followed by a colon,
diff --git a/ncurses/tinfo/read_entry.c b/ncurses/tinfo/read_entry.c
index a221e2df..fc360bb8 100644
--- a/ncurses/tinfo/read_entry.c
+++ b/ncurses/tinfo/read_entry.c
@@ -41,7 +41,7 @@
 
 #include 
 
-MODULE_ID("$Id: read_entry.c,v 1.140 2017/02/05 01:49:55 tom Exp $")
+MODULE_ID("$Id: read_entry.c,v 1.141 2017/02/18 23:39:22 tom Exp $")
 
 #define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
 
@@ -212,17 +212,10 @@ _nc_read_termtype(TERMTYPE *ptr, char *buffer, int limit)
     }
 
     want = (unsigned) (str_size + name_size + 1);
-    if (str_size) {
-	/* try to allocate space for the string table */
-	if (str_count * 2 >= MAX_ENTRY_SIZE
-	    || (string_table = typeMalloc(char, want)) == 0) {
-	    returnDB(TGETENT_NO);
-	}
-    } else {
-	str_count = 0;
-	if ((string_table = typeMalloc(char, want)) == 0) {
-	    returnDB(TGETENT_NO);
-	}
+    /* try to allocate space for the string table */
+    if (str_count * 2 >= MAX_ENTRY_SIZE
+	|| (string_table = typeMalloc(char, want)) == 0) {
+	returnDB(TGETENT_NO);
     }
 
     /* grab the name (a null-terminated string) */
diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog
index 03101cdf..ee88beb8 100644
--- a/package/debian-mingw/changelog
+++ b/package/debian-mingw/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.0+20170212) unstable; urgency=low
+ncurses6 (6.0+20170218) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sun, 12 Feb 2017 10:37:55 -0500
+ -- Thomas E. Dickey   Sat, 18 Feb 2017 08:13:37 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog
index 03101cdf..ee88beb8 100644
--- a/package/debian-mingw64/changelog
+++ b/package/debian-mingw64/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.0+20170212) unstable; urgency=low
+ncurses6 (6.0+20170218) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sun, 12 Feb 2017 10:37:55 -0500
+ -- Thomas E. Dickey   Sat, 18 Feb 2017 08:13:37 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
diff --git a/package/debian/changelog b/package/debian/changelog
index ffc28693..eecd946f 100644
--- a/package/debian/changelog
+++ b/package/debian/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.0+20170212) unstable; urgency=low
+ncurses6 (6.0+20170218) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sun, 12 Feb 2017 10:37:55 -0500
+ -- Thomas E. Dickey   Sat, 18 Feb 2017 08:13:37 -0500
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi
index b1f730d4..3b57cace 100644
--- a/package/mingw-ncurses.nsi
+++ b/package/mingw-ncurses.nsi
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.198 2017/02/12 15:37:55 tom Exp $
+; $Id: mingw-ncurses.nsi,v 1.199 2017/02/18 13:13:37 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  "0212"
+!define VERSION_MMDD  "0218"
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
 
 !define MY_ABI   "5"
diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec
index 62da2e0b..e7ce0fbc 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: 20170212
+Release: 20170218
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
diff --git a/package/ncurses.spec b/package/ncurses.spec
index 08224991..4d3e969f 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: 20170212
+Release: 20170218
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
diff --git a/progs/infocmp.c b/progs/infocmp.c
index b864ad88..6035179c 100644
--- a/progs/infocmp.c
+++ b/progs/infocmp.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2015,2016 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2016,2017 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            *
@@ -42,7 +42,7 @@
 
 #include 
 
-MODULE_ID("$Id: infocmp.c,v 1.140 2016/10/01 19:09:22 tom Exp $")
+MODULE_ID("$Id: infocmp.c,v 1.142 2017/02/18 18:40:18 tom Exp $")
 
 #define MAX_STRING	1024	/* maximum formatted string */
 
@@ -136,6 +136,33 @@ canonical_name(char *ptr, char *buf)
     return (buf);
 }
 
+static bool
+no_boolean(int value)
+{
+    bool result = (value == ABSENT_BOOLEAN);
+    if (!strcmp(s_absent, s_cancel))
+	result = !VALID_BOOLEAN(value);
+    return result;
+}
+
+static bool
+no_numeric(int value)
+{
+    bool result = (value == ABSENT_NUMERIC);
+    if (!strcmp(s_absent, s_cancel))
+	result = !VALID_NUMERIC(value);
+    return result;
+}
+
+static bool
+no_string(char *value)
+{
+    bool result = (value == ABSENT_STRING);
+    if (!strcmp(s_absent, s_cancel))
+	result = !VALID_STRING(value);
+    return result;
+}
+
 /***************************************************************************
  *
  * Predicates for dump function
@@ -326,7 +353,7 @@ dump_boolean(int val)
 
 static void
 dump_numeric(int val, char *buf)
-/* display the value of a boolean capability */
+/* display the value of a numeric capability */
 {
     switch (val) {
     case ABSENT_NUMERIC:
@@ -434,7 +461,7 @@ compare_predicate(PredType type, PredIdx idx, const char *name)
 	switch (compare) {
 	case C_DIFFERENCE:
 	    b2 = next_entry->Booleans[idx];
-	    if (!(b1 == ABSENT_BOOLEAN && b2 == ABSENT_BOOLEAN) && b1 != b2)
+	    if (!(no_boolean(b1) && no_boolean(b2)) && (b1 != b2))
 		(void) printf("\t%s: %s%s%s.\n",
 			      name,
 			      dump_boolean(b1),
@@ -482,7 +509,7 @@ compare_predicate(PredType type, PredIdx idx, const char *name)
 	switch (compare) {
 	case C_DIFFERENCE:
 	    n2 = next_entry->Numbers[idx];
-	    if (!((n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC)) && n1 != n2) {
+	    if (!(no_numeric(n1) && no_numeric(n2)) && n1 != n2) {
 		dump_numeric(n1, buf1);
 		dump_numeric(n2, buf2);
 		(void) printf("\t%s: %s, %s.\n", name, buf1, buf2);
@@ -530,7 +557,7 @@ compare_predicate(PredType type, PredIdx idx, const char *name)
 	switch (compare) {
 	case C_DIFFERENCE:
 	    s2 = next_entry->Strings[idx];
-	    if (capcmp(idx, s1, s2)) {
+	    if (!(no_string(s1) && no_string(s2)) && capcmp(idx, s1, s2)) {
 		dump_string(s1, buf1);
 		dump_string(s2, buf2);
 		if (strcmp(buf1, buf2))