From: Thomas E. Dickey Date: Sun, 13 Oct 2019 01:25:51 +0000 (+0000) Subject: ncurses 6.1 - patch 20191012 X-Git-Tag: v6.2~16 X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff_plain;h=b025434573f466efe27862656a6a9d41dd2bd609 ncurses 6.1 - patch 20191012 + amend recent changes to ncurses*-config and pc-files to filter out Debian linker-flags (report by Sven Joachim, cf: 20150516). + clarify relationship between tic, infocmp and captoinfo in manpage. + check for invalid hashcode in _nc_find_type_entry and _nc_find_name_entry. > fix several errata in tic (reports/testcases by "zjuchenyuan"): + check for invalid hashcode in _nc_find_entry. + check for missing character after backslash in fmt_entry + check for acsc with odd length in dump_entry in check for one-one mapping (cf: 20060415); + check length when converting from old AIX box_chars_1 capability, overlooked in changes to eliminate strcpy (cf: 20001007). + amend the ncurses*-config and pc-files to take into account the rpath --- diff --git a/NEWS b/NEWS index ea31648a..5ba46e9b 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.3382 2019/10/05 22:53:18 tom Exp $ +-- $Id: NEWS,v 1.3389 2019/10/12 21:17:50 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -45,12 +45,26 @@ 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. +20191012 + + amend recent changes to ncurses*-config and pc-files to filter out + Debian linker-flags (report by Sven Joachim, cf: 20150516). + + clarify relationship between tic, infocmp and captoinfo in manpage. + + check for invalid hashcode in _nc_find_type_entry and + _nc_find_name_entry. + > fix several errata in tic (reports/testcases by "zjuchenyuan"): + + check for invalid hashcode in _nc_find_entry. + + check for missing character after backslash in fmt_entry + + check for acsc with odd length in dump_entry in check for one-one + mapping (cf: 20060415); + + check length when converting from old AIX box_chars_1 capability, + overlooked in changes to eliminate strcpy (cf: 20001007). + 20191005 + modify the ncurse*-config and pc-files to more closely match for the -I and -l options. 20190928 - + amend the ncurse*-config and pc-files to take into account the rpath + + amend the ncurses*-config and pc-files to take into account the rpath hack which differed between those files. + improve -L option filtering in ncurses*-config + improve recovery from error when reading command-character in diff --git a/VERSION b/VERSION index aec564a4..b8433300 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:10 6.1 20191005 +5:0:10 6.1 20191012 diff --git a/dist.mk b/dist.mk index 1994b91c..8832349b 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.1308 2019/10/05 14:44:23 tom Exp $ +# $Id: dist.mk,v 1.1309 2019/10/12 15:30:55 tom Exp $ # Makefile for creating ncurses distributions. # # This only needs to be used directly as a makefile by developers, but @@ -37,7 +37,7 @@ SHELL = /bin/sh # These define the major/minor/patch versions of ncurses. NCURSES_MAJOR = 6 NCURSES_MINOR = 1 -NCURSES_PATCH = 20191005 +NCURSES_PATCH = 20191012 # 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 d60c6187..99d2fa60 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.1 (patch 20190921).
+       This describes ncurses version 6.1 (patch 20191012).
 
 
 
diff --git a/doc/html/man/captoinfo.1m.html b/doc/html/man/captoinfo.1m.html
index 704f0ad6..ad1474ab 100644
--- a/doc/html/man/captoinfo.1m.html
+++ b/doc/html/man/captoinfo.1m.html
@@ -1,7 +1,7 @@
 
 
 
@@ -183,14 +183,22 @@
        This utility is actually a link to tic(1m), running in  -I  mode.   You
        can use other tic options such as -f and  -x.
 
-       The  trace  option  is not identical to SVr4's.  Under SVr4, instead of
+       The  verbose option is not identical to SVr4's.  Under SVr4, instead of
        following the -v with a trace level n, you repeat it n times.
 
 
+

PORTABILITY

+       X/Open Curses, Issue 7 (2009) describes tic  briefly,  but  omits  this
+       program.  SVr4 systems provide captoinfo as a separate application from
+       tic.
+
+       NetBSD does not provide this application.
+
+
 

SEE ALSO

        infocmp(1m), curses(3x), terminfo(5)
 
-       This describes ncurses version 6.1 (patch 20190921).
+       This describes ncurses version 6.1 (patch 20191012).
 
 
 

AUTHOR

@@ -209,6 +217,7 @@
 
  • FILES
  • TRANSLATIONS FROM NONSTANDARD CAPABILITIES
  • NOTES
  • +
  • PORTABILITY
  • SEE ALSO
  • AUTHOR
  • diff --git a/doc/html/man/clear.1.html b/doc/html/man/clear.1.html index ca910d0d..51e563e0 100644 --- a/doc/html/man/clear.1.html +++ b/doc/html/man/clear.1.html @@ -148,7 +148,7 @@

    SEE ALSO

            tput(1), terminfo(5)
     
    -       This describes ncurses version 6.1 (patch 20190921).
    +       This describes ncurses version 6.1 (patch 20191012).
     
     
     
    diff --git a/doc/html/man/form.3x.html b/doc/html/man/form.3x.html
    index ce3c0211..718e72ef 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.1 (patch 20190921).
    +       This describes ncurses version 6.1 (patch 20191012).
     
     
     
    diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html
    index 083b0199..f85a01c4 100644
    --- a/doc/html/man/infocmp.1m.html
    +++ b/doc/html/man/infocmp.1m.html
    @@ -512,7 +512,7 @@
     
            https://invisible-island.net/ncurses/tctest.html
     
    -       This describes ncurses version 6.1 (patch 20190921).
    +       This describes ncurses version 6.1 (patch 20191012).
     
     
     

    AUTHOR

    diff --git a/doc/html/man/infotocap.1m.html b/doc/html/man/infotocap.1m.html
    index fe54702f..dead6b14 100644
    --- a/doc/html/man/infotocap.1m.html
    +++ b/doc/html/man/infotocap.1m.html
    @@ -1,7 +1,7 @@
     
     
     
    @@ -82,10 +82,15 @@
            use other tic options such as -f and  -x.
     
     
    +

    PORTABILITY

    +       None  of  X/Open  Curses,  Issue 7 (2009), SVr4 or NetBSD document this
    +       application.
    +
    +
     

    SEE ALSO

            curses(3x), tic(1m), infocmp(1m), terminfo(5)
     
    -       This describes ncurses version 6.1 (patch 20190921).
    +       This describes ncurses version 6.1 (patch 20191012).
     
     
     

    AUTHOR

    @@ -103,6 +108,7 @@
     
  • DESCRIPTION
  • FILES
  • NOTES
  • +
  • PORTABILITY
  • SEE ALSO
  • AUTHOR
  • diff --git a/doc/html/man/menu.3x.html b/doc/html/man/menu.3x.html index 050b36c6..aac331f5 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.1 (patch 20190921). + This describes ncurses version 6.1 (patch 20191012). diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html index 3c2be488..cc340b4c 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.1 (patch 20190921). + This describes ncurses version 6.1 (patch 20191012). 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 b4c063c8..e0adc9b7 100644 --- a/doc/html/man/ncurses6-config.1.html +++ b/doc/html/man/ncurses6-config.1.html @@ -112,7 +112,7 @@

    SEE ALSO

            curses(3x)
     
    -       This describes ncurses version 6.1 (patch 20190921).
    +       This describes ncurses version 6.1 (patch 20191012).
     
     
     
    diff --git a/doc/html/man/panel.3x.html b/doc/html/man/panel.3x.html
    index 4bf49912..3396ecb7 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.1 (patch 20190921).
    +       This describes ncurses version 6.1 (patch 20191012).
     
     
     

    AUTHOR

    diff --git a/doc/html/man/tabs.1.html b/doc/html/man/tabs.1.html
    index 47c2b294..7f8e59c2 100644
    --- a/doc/html/man/tabs.1.html
    +++ b/doc/html/man/tabs.1.html
    @@ -205,7 +205,7 @@
     

    SEE ALSO

            tset(1), infocmp(1m), curses(3x), terminfo(5).
     
    -       This describes ncurses version 6.1 (patch 20190921).
    +       This describes ncurses version 6.1 (patch 20191012).
     
     
     
    diff --git a/doc/html/man/terminfo.5.html b/doc/html/man/terminfo.5.html
    index 94983c5e..e4c37dd0 100644
    --- a/doc/html/man/terminfo.5.html
    +++ b/doc/html/man/terminfo.5.html
    @@ -103,7 +103,7 @@
            have, by specifying how to perform screen operations, and by specifying
            padding requirements and initialization sequences.
     
    -       This manual describes ncurses version 6.1 (patch 20190921).
    +       This manual describes ncurses version 6.1 (patch 20191012).
     
     
     

    Terminfo Entry Syntax

    diff --git a/doc/html/man/tic.1m.html b/doc/html/man/tic.1m.html
    index 8049d6c0..e003be0a 100644
    --- a/doc/html/man/tic.1m.html
    +++ b/doc/html/man/tic.1m.html
    @@ -26,7 +26,7 @@
       * sale, use or other dealings in this Software without prior written       *
       * authorization.                                                           *
       ****************************************************************************
    -  * @Id: tic.1m,v 1.74 2019/07/20 17:57:09 tom Exp @
    +  * @Id: tic.1m,v 1.75 2019/10/12 20:56:38 tom Exp @
     -->
     
     
    @@ -106,46 +106,55 @@
            o   the system terminfo database (/usr/share/terminfo).
     
     
    +

    ALIASES

    +       This is the same program as infotocap and captoinfo; usually those  are
    +       linked to, or copied from this program:
    +
    +       o   When invoked as infotocap, tic sets the -I option.
    +
    +       o   When invoked as captoinfo, tic sets the -C option.
    +
    +
     

    OPTIONS

            -0     restricts the output to a single line
     
            -1     restricts the output to a single column
     
    -       -a     tells tic to retain commented-out capabilities rather than  dis-
    +       -a     tells  tic to retain commented-out capabilities rather than dis-
                   carding them.  Capabilities are commented by prefixing them with
    -              a period.  This sets the -x option, because it treats  the  com-
    -              mented-out  entries  as  user-defined  names.   If the source is
    -              termcap, accept the 2-character names  required  by  version  6.
    +              a  period.   This sets the -x option, because it treats the com-
    +              mented-out entries as user-defined  names.   If  the  source  is
    +              termcap,  accept  the  2-character  names required by version 6.
                   Otherwise these are ignored.
     
    -       -C     Force  source translation to termcap format.  Note: this differs
    -              from the -C option of infocmp(1m) in that  it  does  not  merely
    +       -C     Force source translation to termcap format.  Note: this  differs
    +              from  the  -C  option  of infocmp(1m) in that it does not merely
                   translate capability names, but also translates terminfo strings
    -              to termcap format.  Capabilities that are not  translatable  are
    -              left  in  the entry under their terminfo names but commented out
    -              with two preceding dots.  The actual  format  used  incorporates
    -              some  improvements  for escaped characters from terminfo format.
    +              to  termcap  format.  Capabilities that are not translatable are
    +              left in the entry under their terminfo names but  commented  out
    +              with  two  preceding  dots.  The actual format used incorporates
    +              some improvements for escaped characters from  terminfo  format.
                   For a stricter BSD-compatible translation, add the -K option.
     
    -              If this is combined with -c,  tic  makes  additional  checks  to
    -              report  cases  where  the  terminfo  values do not have an exact
    +              If  this  is  combined  with  -c, tic makes additional checks to
    +              report cases where the terminfo values  do  not  have  an  exact
                   equivalent in termcap form.  For example:
     
    -              o   sgr usually will not  convert,  because  termcap  lacks  the
    -                  ability  to  work with more than two parameters, and because
    -                  termcap lacks many of the arithmetic/logical operators  used
    +              o   sgr  usually  will  not  convert,  because termcap lacks the
    +                  ability to work with more than two parameters,  and  because
    +                  termcap  lacks many of the arithmetic/logical operators used
                       in terminfo.
     
    -              o   capabilities  with more than one delay or with delays before
    +              o   capabilities with more than one delay or with delays  before
                       the end of the string will not convert completely.
     
    -       -c     tells tic to only check file for errors, including syntax  prob-
    -              lems  and  bad  use-links.   If  you  specify  -C (-I) with this
    -              option, the code will print warnings about entries which,  after
    -              use  resolution, are more than 1023 (4096) bytes long.  Due to a
    +       -c     tells  tic to only check file for errors, including syntax prob-
    +              lems and bad use-links.   If  you  specify  -C  (-I)  with  this
    +              option,  the code will print warnings about entries which, after
    +              use resolution, are more than 1023 (4096) bytes long.  Due to  a
                   fixed buffer length in older termcap libraries, as well as buggy
    -              checking  for  the buffer length (and a documented limit in ter-
    -              minfo), these entries may cause core dumps with other  implemen-
    +              checking for the buffer length (and a documented limit  in  ter-
    +              minfo),  these entries may cause core dumps with other implemen-
                   tations.
     
                   tic checks string capabilities to ensure that those with parame-
    @@ -153,29 +162,29 @@
                   predefined string capabilities; those which are defined with the
                   -x option are ignored.
     
    -       -D     tells tic to print the database locations that it  knows  about,
    +       -D     tells  tic  to print the database locations that it knows about,
                   and exit.  The first location shown is the one to which it would
    -              write compiled terminal descriptions.  If tic  is  not  able  to
    -              find  a writable database location according to the rules summa-
    -              rized above, it will print a diagnostic and exit with  an  error
    +              write  compiled  terminal  descriptions.   If tic is not able to
    +              find a writable database location according to the rules  summa-
    +              rized  above,  it will print a diagnostic and exit with an error
                   rather than printing a list of database locations.
     
            -e names
    -              Limit  writes  and translations to the following comma-separated
    -              list of terminals.  If any name or alias of a  terminal  matches
    -              one  of  the  names  in  the  list, the entry will be written or
    +              Limit writes and translations to the  following  comma-separated
    +              list  of  terminals.  If any name or alias of a terminal matches
    +              one of the names in the list,  the  entry  will  be  written  or
                   translated as normal.  Otherwise no output will be generated for
    -              it.   The  option  value is interpreted as a file containing the
    +              it.  The option value is interpreted as a  file  containing  the
                   list if it contains a '/'.  (Note: depending on how tic was com-
                   piled, this option may require -I or -C.)
     
    -       -f     Display     complex     terminfo     strings    which    contain
    +       -f     Display    complex    terminfo     strings     which     contain
                   if/then/else/endif expressions indented for readability.
     
    -       -G     Display constant literals in  decimal  form  rather  than  their
    +       -G     Display  constant  literals  in  decimal  form rather than their
                   character equivalents.
     
    -       -g     Display  constant  character literals in quoted form rather than
    +       -g     Display constant character literals in quoted form  rather  than
                   their decimal equivalents.
     
            -I     Force source translation to terminfo format.
    @@ -183,24 +192,24 @@
            -K     Suppress some longstanding ncurses extensions to termcap format,
                   e.g., "\s" for space.
     
    -       -L     Force  source  translation  to  terminfo format using the long C
    +       -L     Force source translation to terminfo format  using  the  long  C
                   variable names listed in <term.h>
     
            -N     Disable smart defaults.  Normally, when translating from termcap
    -              to  terminfo,  the  compiler makes a number of assumptions about
    -              the  defaults  of  string   capabilities   reset1_string,   car-
    +              to terminfo, the compiler makes a number  of  assumptions  about
    +              the   defaults   of   string  capabilities  reset1_string,  car-
                   riage_return,  cursor_left,  cursor_down,  scroll_forward,  tab,
                   newline, key_backspace, key_left, and key_down, then attempts to
    -              use  obsolete termcap capabilities to deduce correct values.  It
    +              use obsolete termcap capabilities to deduce correct values.   It
                   also normally suppresses output of obsolete termcap capabilities
    -              such  as bs.  This option forces a more literal translation that
    +              such as bs.  This option forces a more literal translation  that
                   also preserves the obsolete capabilities.
     
    -       -odir  Write compiled entries to given  database  location.   Overrides
    +       -odir  Write  compiled  entries  to given database location.  Overrides
                   the TERMINFO environment variable.
     
    -       -Qn    Rather  than  show  source  in terminfo (text) format, print the
    -              compiled (binary) format in hexadecimal or base64 form,  depend-
    +       -Qn    Rather than show source in terminfo  (text)  format,  print  the
    +              compiled  (binary) format in hexadecimal or base64 form, depend-
                   ing on the option's value:
     
                    1  hexadecimal
    @@ -213,35 +222,35 @@
                   source.
     
            -Rsubset
    -              Restrict output to a given subset.  This option is for use  with
    -              archaic  versions  of  terminfo  like  those on SVr1, Ultrix, or
    -              HP/UX that do not support the full set of SVR4/XSI  Curses  ter-
    -              minfo;  and  outright  broken ports like AIX 3.x that have their
    -              own extensions incompatible with  SVr4/XSI.   Available  subsets
    +              Restrict  output to a given subset.  This option is for use with
    +              archaic versions of terminfo like  those  on  SVr1,  Ultrix,  or
    +              HP/UX  that  do not support the full set of SVR4/XSI Curses ter-
    +              minfo; and outright broken ports like AIX 3.x  that  have  their
    +              own  extensions  incompatible  with SVr4/XSI.  Available subsets
                   are "SVr1", "Ultrix", "HP", "BSD" and "AIX"; see terminfo(5) for
                   details.
     
    -       -r     Force entry resolution (so there are no remaining  tc  capabili-
    -              ties)  even  when doing translation to termcap format.  This may
    -              be needed if you are preparing a  termcap  file  for  a  termcap
    -              library  (such as GNU termcap through version 1.3 or BSD termcap
    -              through 4.3BSD) that does not handle  multiple  tc  capabilities
    +       -r     Force  entry  resolution (so there are no remaining tc capabili-
    +              ties) even when doing translation to termcap format.   This  may
    +              be  needed  if  you  are  preparing a termcap file for a termcap
    +              library (such as GNU termcap through version 1.3 or BSD  termcap
    +              through  4.3BSD)  that  does not handle multiple tc capabilities
                   per entry.
     
    -       -s     Summarize  the  compile  by  showing  the database location into
    -              which entries are written, and the number of entries  which  are
    +       -s     Summarize the compile by  showing  the  database  location  into
    +              which  entries  are written, and the number of entries which are
                   compiled.
     
    -       -T     eliminates  size-restrictions  on  the  generated text.  This is
    -              mainly useful for  testing  and  analysis,  since  the  compiled
    -              descriptions  are limited (e.g., 1023 for termcap, 4096 for ter-
    +       -T     eliminates size-restrictions on the  generated  text.   This  is
    +              mainly  useful  for  testing  and  analysis,  since the compiled
    +              descriptions are limited (e.g., 1023 for termcap, 4096 for  ter-
                   minfo).
     
    -       -t     tells tic to discard commented-out capabilities.  Normally  when
    -              translating  from  terminfo to termcap, untranslatable capabili-
    +       -t     tells  tic to discard commented-out capabilities.  Normally when
    +              translating from terminfo to termcap,  untranslatable  capabili-
                   ties are commented-out.
     
    -       -U   tells tic to not post-process the data after  parsing  the  source
    +       -U   tells  tic  to  not post-process the data after parsing the source
                 file.  Normally, it infers data which is commonly missing in older
                 terminfo data, or in termcaps.
     
    @@ -251,9 +260,9 @@
            -vn  specifies that (verbose) output be written to standard error trace
                 information showing tic's progress.
     
    -            The optional parameter n is a number  from  1  to  10,  inclusive,
    +            The  optional  parameter  n  is  a number from 1 to 10, inclusive,
                 indicating the desired level of detail of information.  If ncurses
    -            is built  without  tracing  support,  the  optional  parameter  is
    +            is  built  without  tracing  support,  the  optional  parameter is
                 ignored.  If n is omitted, the default level is 1.  If n is speci-
                 fied and greater than 1, the level of detail is increased.
     
    @@ -275,90 +284,90 @@
     
                 If the debug level n is not given, it is taken to be one.
     
    -       -W   By itself, the -w  option  will  not  force  long  strings  to  be
    +       -W   By  itself,  the  -w  option  will  not  force  long strings to be
                 wrapped.  Use the -W option to do this.
     
    -            If  you specify both -f and -W options, the latter is ignored when
    +            If you specify both -f and -W options, the latter is ignored  when
                 -f has already split the line.
     
            -wn  specifies the width of the output.  The parameter is optional.  If
                 it is omitted, it defaults to 60.
     
    -       -x   Treat  unknown  capabilities  as  user-defined (see user_caps(5)).
    +       -x   Treat unknown capabilities  as  user-defined  (see  user_caps(5)).
                 That is, if you supply a capability name which tic does not recog-
    -            nize,  it will infer its type (boolean, number or string) from the
    -            syntax and make an extended table entry  for  that.   User-defined
    +            nize, it will infer its type (boolean, number or string) from  the
    +            syntax  and  make  an extended table entry for that.  User-defined
                 capability strings whose name begins with "k" are treated as func-
                 tion keys.
     
     
     

    PARAMETERS

    -       file   contains one or more terminfo terminal  descriptions  in  source
    -              format   [see   terminfo(5)].   Each  description  in  the  file
    +       file   contains  one  or  more terminfo terminal descriptions in source
    +              format  [see  terminfo(5)].   Each  description  in   the   file
                   describes the capabilities of a particular terminal.
     
    -              If file is "-", then the data is read from the  standard  input.
    +              If  file  is "-", then the data is read from the standard input.
                   The file parameter may also be the path of a character-device.
     
     
     

    PROCESSING

    -       All  but  one  of  the capabilities recognized by tic are documented in
    +       All but one of the capabilities recognized by  tic  are  documented  in
            terminfo(5).  The exception is the use capability.
     
            When a use=entry-name field is discovered in a terminal entry currently
    -       being  compiled,  tic  reads  in the binary from /usr/share/terminfo to
    -       complete the entry.  (Entries created from file  will  be  used  first.
    -       tic  duplicates  the  capabilities in entry-name for the current entry,
    +       being compiled, tic reads in the  binary  from  /usr/share/terminfo  to
    +       complete  the  entry.   (Entries  created from file will be used first.
    +       tic duplicates the capabilities in entry-name for  the  current  entry,
            with the exception of those capabilities that explicitly are defined in
            the current entry.
     
    -       When  an  entry, e.g., entry_name_1, contains a use=entry_name_2 field,
    -       any  canceled  capabilities  in  entry_name_2  must  also   appear   in
    -       entry_name_1  before  use=  for  these  capabilities  to be canceled in
    +       When an entry, e.g., entry_name_1, contains a  use=entry_name_2  field,
    +       any   canceled   capabilities  in  entry_name_2  must  also  appear  in
    +       entry_name_1 before use= for  these  capabilities  to  be  canceled  in
            entry_name_1.
     
            Total compiled entries cannot exceed 4096 bytes.  The name field cannot
    -       exceed  512  bytes.   Terminal names exceeding the maximum alias length
    +       exceed 512 bytes.  Terminal names exceeding the  maximum  alias  length
            (32 characters on systems with long filenames, 14 characters otherwise)
    -       will  be  truncated  to  the maximum alias length and a warning message
    +       will be truncated to the maximum alias length  and  a  warning  message
            will be printed.
     
     
     

    HISTORY

    -       System V Release 2 provided  a  tic  utility.   It  accepted  a  single
    -       option:  -v  (optionally  followed  by  a  number).   According to Ross
    +       System  V  Release  2  provided  a  tic  utility.  It accepted a single
    +       option: -v (optionally  followed  by  a  number).   According  to  Ross
            Ridge's comment in mytinfo, this version of tic was unable to represent
            cancelled capabilities.
     
    -       System  V  Release 3 provided a different tic utility, written by Pavel
    -       Curtis, (originally named "compile" in pcurses).  This added an  option
    -       -c  to check the file for errors, with the caveat that errors in "use="
    +       System V Release 3 provided a different tic utility, written  by  Pavel
    +       Curtis,  (originally named "compile" in pcurses).  This added an option
    +       -c to check the file for errors, with the caveat that errors in  "use="
            links would not be reported.  System V Release 3 documented a few warn-
            ing messages which did not appear in pcurses.  While the program itself
    -       was changed little as development continued with System  V  Release  4,
    +       was  changed  little  as development continued with System V Release 4,
            the table of capabilities grew from 180 (pcurses) to 464 (Solaris).
     
    -       In  early  development of ncurses (1993), Zeyd Ben-Halim used the table
    -       from mytinfo to extend the  pcurses  table  to  469  capabilities  (456
    -       matched  SVr4, 8 were only in SVr4, 13 were not in SVr4).  Of those 13,
    -       11 were ultimately discarded (perhaps to  match  the  draft  of  X/Open
    -       Curses).   The exceptions were memory_lock_above and memory_unlock (see
    +       In early development of ncurses (1993), Zeyd Ben-Halim used  the  table
    +       from  mytinfo  to  extend  the  pcurses  table to 469 capabilities (456
    +       matched SVr4, 8 were only in SVr4, 13 were not in SVr4).  Of those  13,
    +       11  were  ultimately  discarded  (perhaps  to match the draft of X/Open
    +       Curses).  The exceptions were memory_lock_above and memory_unlock  (see
            user_caps(5)).
     
    -       Eric Raymond incorporated parts of mytinfo into  ncurses  to  implement
    -       the  termcap-to-terminfo  source conversion, and extended that to begin
    +       Eric  Raymond  incorporated  parts of mytinfo into ncurses to implement
    +       the termcap-to-terminfo source conversion, and extended that  to  begin
            development of the corresponding terminfo-to-termcap source conversion,
    -       Thomas  Dickey  completed  that  development over the course of several
    +       Thomas Dickey completed that development over  the  course  of  several
            years.
     
    -       In 1999, Thomas Dickey added the  -x  option  to  support  user-defined
    +       In  1999,  Thomas  Dickey  added  the -x option to support user-defined
            capabilities.
     
    -       In  2010,  Roy  Marples provided a tic program and terminfo library for
    -       NetBSD.  This implementation  adapts  several  features  from  ncurses,
    +       In 2010, Roy Marples provided a tic program and  terminfo  library  for
    +       NetBSD.   That  implementation  adapts  several  features from ncurses,
            including tic's -x option.
     
    -       The  -c  option  tells tic to check for problems in the terminfo source
    +       The -c option tells tic to check for problems in  the  terminfo  source
            file.  Continued development provides additional checks:
     
            o   pcurses had 8 warnings
    @@ -373,57 +382,70 @@
     
            The checking done in ncurses' tic helps with the conversion to termcap,
            as well as pointing out errors and inconsistencies.  It is also used to
    -       ensure consistency with the user-defined capabilities.  There  are  527
    -       distinct  capabilities  in ncurses' terminal database; 128 of those are
    +       ensure  consistency  with the user-defined capabilities.  There are 527
    +       distinct capabilities in ncurses' terminal database; 128 of  those  are
            user-defined.
     
     
     

    PORTABILITY

    -       X/Open Curses, Issue 7 (2009) provides a brief description of tic.   It
    -       lists  one  option:  -c.  The omission of -v is unexpected.  The change
    -       history states that  the  description  is  derived  from  True64  UNIX.
    -       According  to  its  manual  pages,  that  system  also supported the -v
    +       X/Open  Curses, Issue 7 (2009) provides a brief description of tic.  It
    +       lists one option: -c.  The omission of -v is  unexpected.   The  change
    +       history  states  that  the  description  is  derived  from True64 UNIX.
    +       According to its manual  pages,  that  system  also  supported  the  -v
            option.
     
    -       Shortly after Issue 7 was released,  Tru64  was  discontinued.   As  of
    -       2019,  the  surviving  implementations  of tic are SVr4 (AIX, HP-UX and
    -       Solaris), ncurses and NetBSD curses.
    +       Shortly  after  Issue  7  was  released, Tru64 was discontinued.  As of
    +       2019, the surviving implementations of tic are  SVr4  (AIX,  HP-UX  and
    +       Solaris), ncurses and NetBSD curses.  The SVr4 tic programs all support
    +       the -v option.  The NetBSD tic program follows X/Open's  documentation,
    +       omitting the -v option.
     
    -       The X/Open rationale states that some implementations of tic read  ter-
    -       minal  descriptions  from  the  standard input if the file parameter is
    -       omitted.  None of these implementations do that.  Further, it  comments
    +       The  X/Open rationale states that some implementations of tic read ter-
    +       minal descriptions from the standard input if  the  file  parameter  is
    +       omitted.   None of these implementations do that.  Further, it comments
            that some may choose to read from "./terminfo.src" but that is obsoles-
    -       cent behavior from SVr2, and is not (for example) a documented  feature
    +       cent  behavior from SVr2, and is not (for example) a documented feature
            of SVr3.
     
     
     

    COMPATIBILITY

    -       There  is  some  evidence  that  historic  tic  implementations treated
    -       description fields with no whitespace in them as additional aliases  or
    +       There is  some  evidence  that  historic  tic  implementations  treated
    +       description  fields with no whitespace in them as additional aliases or
            short names.  This tic does not do that, but it does warn when descrip-
    -       tion fields may be treated that way and check them for dangerous  char-
    +       tion  fields may be treated that way and check them for dangerous char-
            acters.
     
     
     

    EXTENSIONS

    -       Unlike  the  SVr4 tic command, this implementation can actually compile
    -       termcap sources.  In fact, entries in terminfo and termcap  syntax  can
    -       be  mixed  in  a  single  source file.  See terminfo(5) for the list of
    +       Unlike the SVr4 tic command, this implementation can  actually  compile
    +       termcap  sources.   In fact, entries in terminfo and termcap syntax can
    +       be mixed in a single source file.  See  terminfo(5)  for  the  list  of
            termcap names taken to be equivalent to terminfo names.
     
    -       The SVr4 manual pages are not clear on the  resolution  rules  for  use
    -       capabilities.   This  implementation  of tic will find use targets any-
    -       where in the source file, or anywhere in the file tree rooted  at  TER-
    -       MINFO  (if TERMINFO is defined), or in the user's $HOME/.terminfo data-
    +       The  SVr4  manual  pages  are not clear on the resolution rules for use
    +       capabilities.  This implementation of tic will find  use  targets  any-
    +       where  in  the source file, or anywhere in the file tree rooted at TER-
    +       MINFO (if TERMINFO is defined), or in the user's $HOME/.terminfo  data-
            base (if it exists), or (finally) anywhere in the system's file tree of
            compiled entries.
     
    -       The  error  messages  from this tic have the same format as GNU C error
    +       The error messages from this tic have the same format as  GNU  C  error
            messages, and can be parsed by GNU Emacs's compile facility.
     
    -       The -0, -1, -C, -G, -I, -N, -R, -T, -V, -a, -e, -f, -g, -o, -r, -s,  -t
    -       and -x options are not supported under SVr4.  The SVr4 -c mode does not
    -       report bad "use=" links.
    +       Aside from -c and -v, options are not portable:
    +
    +       o   Most of tic's options are not supported by SVr4 tic:
    +
    +           -0 -1 -C -G -I -N -R -T -V -a -e -f -g -o -r -s -t -x
    +
    +       o   The NetBSD tic  supports a few of the ncurses options
    +
    +           -a -o -x
    +
    +           and  adds  -S  (a feature which does the same thing as infocmp's -e
    +           and -E options).
    +
    +       The SVr4 -c mode does not report bad "use=" links.
     
            System V does  not  compile  entries  to  or  read  entries  from  your
            $HOME/.terminfo database unless TERMINFO is explicitly set to it.
    @@ -438,7 +460,7 @@
            infocmp(1m),   captoinfo(1m),   infotocap(1m),   toe(1m),   curses(3x),
            term(5).  terminfo(5).  user_caps(5).
     
    -       This describes ncurses version 6.1 (patch 20190921).
    +       This describes ncurses version 6.1 (patch 20191012).
     
     
     

    AUTHOR

    @@ -455,6 +477,7 @@
     
  • SYNOPSIS
  • DESCRIPTION
      +
    • ALIASES
    • OPTIONS
    • PARAMETERS
    • PROCESSING
    • diff --git a/doc/html/man/toe.1m.html b/doc/html/man/toe.1m.html index 29d8ace1..915216da 100644 --- a/doc/html/man/toe.1m.html +++ b/doc/html/man/toe.1m.html @@ -170,7 +170,7 @@ tic(1m), infocmp(1m), captoinfo(1m), infotocap(1m), curses(3x), ter- minfo(5). - This describes ncurses version 6.1 (patch 20190921). + This describes ncurses version 6.1 (patch 20191012). diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html index 2651a8e5..36553080 100644 --- a/doc/html/man/tput.1.html +++ b/doc/html/man/tput.1.html @@ -522,7 +522,7 @@
  • SEE ALSO

            clear(1), stty(1), tabs(1), tset(1), terminfo(5), curs_termcap(3x).
     
    -       This describes ncurses version 6.1 (patch 20190921).
    +       This describes ncurses version 6.1 (patch 20191012).
     
     
     
    diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html
    index 2cb5a4b0..f3d0983c 100644
    --- a/doc/html/man/tset.1.html
    +++ b/doc/html/man/tset.1.html
    @@ -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.1 (patch 20190921).
    +       This describes ncurses version 6.1 (patch 20191012).
     
     
     
    diff --git a/man/captoinfo.1m b/man/captoinfo.1m
    index 8c5d77b8..4fa155e4 100644
    --- a/man/captoinfo.1m
    +++ b/man/captoinfo.1m
    @@ -1,6 +1,6 @@
     '\" t
     .\"***************************************************************************
    -.\" Copyright (c) 1998-2016,2018 Free Software Foundation, Inc.              *
    +.\" Copyright (c) 1998-2018,2019 Free Software Foundation, Inc.              *
     .\"                                                                          *
     .\" Permission is hereby granted, free of charge, to any person obtaining a  *
     .\" copy of this software and associated documentation files (the            *
    @@ -27,7 +27,7 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: captoinfo.1m,v 1.27 2018/07/28 21:34:06 tom Exp $
    +.\" $Id: captoinfo.1m,v 1.29 2019/10/12 21:10:00 tom Exp $
     .TH @CAPTOINFO@ 1M ""
     .ds n 5
     .ds d @TERMINFO@
    @@ -183,9 +183,15 @@ These will be discarded with a warning message.
     This utility is actually a link to \fB@TIC@\fR(1M), running in \fI\-I\fR mode.
     You can use other \fB@TIC@\fR options such as \fB\-f\fR and  \fB\-x\fR.
     .PP
    -The trace option is not identical to SVr4's.
    +The verbose option is not identical to SVr4's.
     Under SVr4, instead of following
     the \fB\-v\fR with a trace level n, you repeat it n times.
    +.SH PORTABILITY
    +X/Open Curses, Issue 7 (2009) describes \fBtic\fP briefly,
    +but omits this program.
    +SVr4 systems provide \fBcaptoinfo\fP as a separate application from \fBtic\fP.
    +.PP
    +NetBSD does not provide this application.
     .SH SEE ALSO
     \fB@INFOCMP@\fR(1M),
     \fBcurses\fR(3X),
    diff --git a/man/infotocap.1m b/man/infotocap.1m
    index 67f21576..2297e313 100644
    --- a/man/infotocap.1m
    +++ b/man/infotocap.1m
    @@ -1,6 +1,6 @@
     '\" t
     .\"***************************************************************************
    -.\" Copyright (c) 1999-2016,2018 Free Software Foundation, Inc.              *
    +.\" Copyright (c) 1999-2018,2019 Free Software Foundation, Inc.              *
     .\"                                                                          *
     .\" Permission is hereby granted, free of charge, to any person obtaining a  *
     .\" copy of this software and associated documentation files (the            *
    @@ -27,7 +27,7 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: infotocap.1m,v 1.13 2018/07/28 21:34:06 tom Exp $
    +.\" $Id: infotocap.1m,v 1.15 2019/10/12 21:16:00 tom Exp $
     .TH @INFOTOCAP@ 1M ""
     .ds n 5
     .ds d @TERMINFO@
    @@ -63,6 +63,8 @@ Compiled terminal description database.
     .SH NOTES
     This utility is actually a link to \fB@TIC@\fR, running in \fI\-C\fR mode.
     You can use other \fB@TIC@\fR options such as \fB\-f\fR and  \fB\-x\fR.
    +.SH PORTABILITY
    +None of X/Open Curses, Issue 7 (2009), SVr4 or NetBSD document this application.
     .SH SEE ALSO
     \fBcurses\fR(3X),
     \fB@TIC@\fR(1M),
    diff --git a/man/tic.1m b/man/tic.1m
    index 07111e89..9f634a4a 100644
    --- a/man/tic.1m
    +++ b/man/tic.1m
    @@ -26,7 +26,7 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: tic.1m,v 1.74 2019/07/20 17:57:09 tom Exp $
    +.\" $Id: tic.1m,v 1.75 2019/10/12 20:56:38 tom Exp $
     .TH @TIC@ 1M ""
     .ie \n(.g .ds `` \(lq
     .el       .ds `` ``
    @@ -128,6 +128,14 @@ directories listed in the TERMINFO_DIRS environment variable,
     a compiled-in list of directories (@TERMINFO_DIRS@), and
     .bP
     the system terminfo database (\fI\*d\fR).
    +.SS ALIASES
    +.PP
    +This is the same program as @INFOTOCAP@ and @CAPTOINFO@;
    +usually those are linked to, or copied from this program:
    +.bP
    +When invoked as @INFOTOCAP@, @TIC@ sets the \fB\-I\fP option.
    +.bP
    +When invoked as @CAPTOINFO@, @TIC@ sets the \fB\-C\fP option.
     .SS OPTIONS
     .TP
     \fB\-0\fR
    @@ -443,7 +451,7 @@ to support user-defined capabilities.
     .PP
     In 2010, Roy Marples provided a \fBtic\fP program
     and terminfo library for NetBSD.
    -This implementation adapts several features from ncurses,
    +That implementation adapts several features from ncurses,
     including \fB@TIC@\fP's \fB\-x\fP option.
     .PP
     The \fB\-c\fP option tells \fB@TIC@\fP to check for problems in the
    @@ -478,6 +486,9 @@ As of 2019, the surviving implementations of \fBtic\fP
     are SVr4 (AIX, HP-UX and Solaris),
     ncurses
     and NetBSD curses.
    +The SVr4 \fBtic\fP programs all support the \fB\-v\fP option.
    +The NetBSD \fBtic\fP program follows X/Open's documentation,
    +omitting the \fB\-v\fP option.
     .PP
     The X/Open rationale states that some implementations of \fBtic\fP
     read terminal descriptions from the standard input if the \fIfile\fP
    @@ -514,27 +525,44 @@ compiled entries.
     The error messages from this \fB@TIC@\fR have the same format as GNU C
     error messages, and can be parsed by GNU Emacs's compile facility.
     .PP
    -The
    -\fB\-0\fR,
    -\fB\-1\fR,
    -\fB\-C\fR,
    -\fB\-G\fR,
    -\fB\-I\fR,
    -\fB\-N\fR,
    -\fB\-R\fR,
    -\fB\-T\fR,
    -\fB\-V\fR,
    -\fB\-a\fR,
    -\fB\-e\fR,
    -\fB\-f\fR,
    -\fB\-g\fR,
    -\fB\-o\fR,
    -\fB\-r\fR,
    -\fB\-s\fR,
    -\fB\-t\fR and
    +Aside from \fB\-c\fP and \fB\-v\fP, options are not portable:
    +.bP
    +Most of @TIC@'s options 
    +are not supported by SVr4 \fBtic\fP:
    +.sp
    +.RS
    +\fB\-0\fR
    +\fB\-1\fR
    +\fB\-C\fR
    +\fB\-G\fR
    +\fB\-I\fR
    +\fB\-N\fR
    +\fB\-R\fR
    +\fB\-T\fR
    +\fB\-V\fR
    +\fB\-a\fR
    +\fB\-e\fR
    +\fB\-f\fR
    +\fB\-g\fR
    +\fB\-o\fR
    +\fB\-r\fR
    +\fB\-s\fR
    +\fB\-t\fR
     \fB\-x\fR
    -options
    -are not supported under SVr4.
    +.RE
    +.bP
    +The NetBSD \fBtic\fP  supports a few of the ncurses options
    +.sp
    +.RS
    +\fB\-a\fP
    +\fB\-o\fP
    +\fB\-x\fP
    +.RE
    +.IP
    +and adds \fB\-S\fP
    +(a feature which does the same thing
    +as @INFOCMP@'s \fB\-e\fP and \fB\-E\fP options).
    +.PP
     The SVr4 \fB\-c\fR mode does not report bad \*(``use=\*('' links.
     .PP
     System V does not compile entries to or read entries from your
    diff --git a/misc/gen-pkgconfig.in b/misc/gen-pkgconfig.in
    index 6d975ea8..51a1a649 100644
    --- a/misc/gen-pkgconfig.in
    +++ b/misc/gen-pkgconfig.in
    @@ -1,5 +1,5 @@
     #!@SHELL@
    -# $Id: gen-pkgconfig.in,v 1.38 2019/10/05 22:25:47 tom Exp $
    +# $Id: gen-pkgconfig.in,v 1.40 2019/10/12 22:27:10 tom Exp $
     ##############################################################################
     # Copyright (c) 2009-2018,2019 Free Software Foundation, Inc.                #
     #                                                                            #
    @@ -77,13 +77,39 @@ if [ "$includedir" != "/usr/include" ]; then
     	fi
     fi
     
    -LDFLAGS=
    -if [ "$libdir" != "/usr/lib" ]; then
    -	LDFLAGS="$LDFLAGS -L\${libdir}"
    -fi
    -if [ "x@EXTRA_LDFLAGS@" != "x" ]; then
    -	LDFLAGS="$LDFLAGS @EXTRA_LDFLAGS@"
    -fi
    +lib_flags=
    +for opt in -L$libdir @LDFLAGS@ @EXTRA_LDFLAGS@ @LIBS@
    +do
    +	case $opt in
    +	-l*) # LIBS is handled specially below
    +		continue
    +		;;
    +	-Wl,-z,*) # ignore flags used to manipulate shared image
    +		continue
    +		;;
    +	-L*)
    +		[ -d ${opt##-L} ] || continue
    +		case ${opt##-L} in
    +		@LD_SEARCHPATH@) # skip standard libdir
    +			continue
    +			;;
    +		*)
    +			found=no
    +			for check in $lib_flags
    +			do
    +				if [ "x$check" = "x$opt" ]
    +				then
    +					found=yes
    +					break
    +				fi
    +			done
    +			[ $found = yes ] && continue
    +			;;
    +		esac
    +		;;
    +	esac
    +	lib_flags="$lib_flags $opt"
    +done
     
     # Check if we should specify the tinfo library explicitly so that terminfo
     # functions or curses variables (which also reside in tinfo) can be linked
    @@ -150,7 +176,7 @@ Description: $desc
     Version: \${version}
     URL: https://invisible-island.net/ncurses
     Requires.private: $reqs
    -Libs: $LDFLAGS $LIBS
    +Libs: $lib_flags $LIBS
     Libs.private: @LIBS@ $main_libs
     Cflags: $CFLAGS
     EOF
    diff --git a/misc/ncurses-config.in b/misc/ncurses-config.in
    index e95227e3..244e592c 100644
    --- a/misc/ncurses-config.in
    +++ b/misc/ncurses-config.in
    @@ -1,5 +1,5 @@
     #!@SHELL@
    -# $Id: ncurses-config.in,v 1.40 2019/10/05 22:24:20 tom Exp $
    +# $Id: ncurses-config.in,v 1.41 2019/10/12 21:25:17 tom Exp $
     ##############################################################################
     # Copyright (c) 2006-2018,2019 Free Software Foundation, Inc.                #
     #                                                                            #
    @@ -103,6 +103,9 @@ lib_flags=
     for opt in -L$libdir @LDFLAGS@ @EXTRA_LDFLAGS@ $LIBS
     do
     	case $opt in
    +	-Wl,-z,*) # ignore flags used to manipulate shared image
    +		continue
    +		;;
     	-L*)
     		[ -d ${opt##-L} ] || continue
     		case ${opt##-L} in
    diff --git a/ncurses/tinfo/comp_hash.c b/ncurses/tinfo/comp_hash.c
    index 21f165ca..a62d38f9 100644
    --- a/ncurses/tinfo/comp_hash.c
    +++ b/ncurses/tinfo/comp_hash.c
    @@ -44,7 +44,7 @@
     #include 
     #include 
     
    -MODULE_ID("$Id: comp_hash.c,v 1.49 2019/03/10 00:06:48 tom Exp $")
    +MODULE_ID("$Id: comp_hash.c,v 1.51 2019/10/12 16:32:13 tom Exp $")
     
     /*
      * Finds the entry for the given string in the hash table if present.
    @@ -63,7 +63,9 @@ _nc_find_entry(const char *string,
     
         hashvalue = data->hash_of(string);
     
    -    if (data->table_data[hashvalue] >= 0) {
    +    if (hashvalue >= 0
    +	&& (unsigned) hashvalue < data->table_size
    +	&& data->table_data[hashvalue] >= 0) {
     
     	real_table = _nc_get_table(termcap);
     	ptr = real_table + data->table_data[hashvalue];
    @@ -96,7 +98,9 @@ _nc_find_type_entry(const char *string,
         const HashData *data = _nc_get_hash_info(termcap);
         int hashvalue = data->hash_of(string);
     
    -    if (data->table_data[hashvalue] >= 0) {
    +    if (hashvalue >= 0
    +	&& (unsigned) hashvalue < data->table_size
    +	&& data->table_data[hashvalue] >= 0) {
     	const struct name_table_entry *const table = _nc_get_table(termcap);
     
     	ptr = table + data->table_data[hashvalue];
    @@ -124,7 +128,9 @@ _nc_find_user_entry(const char *string)
     
         hashvalue = data->hash_of(string);
     
    -    if (data->table_data[hashvalue] >= 0) {
    +    if (hashvalue >= 0
    +	&& (unsigned) hashvalue < data->table_size
    +	&& data->table_data[hashvalue] >= 0) {
     
     	real_table = _nc_get_userdefs_table();
     	ptr = real_table + data->table_data[hashvalue];
    diff --git a/ncurses/tinfo/parse_entry.c b/ncurses/tinfo/parse_entry.c
    index f8cca8b5..064376c5 100644
    --- a/ncurses/tinfo/parse_entry.c
    +++ b/ncurses/tinfo/parse_entry.c
    @@ -47,7 +47,7 @@
     #include 
     #include 
     
    -MODULE_ID("$Id: parse_entry.c,v 1.97 2019/08/03 23:10:38 tom Exp $")
    +MODULE_ID("$Id: parse_entry.c,v 1.98 2019/10/12 00:50:31 tom Exp $")
     
     #ifdef LINT
     static short const parametrized[] =
    @@ -654,12 +654,12 @@ _nc_capcmp(const char *s, const char *t)
     }
     
     static void
    -append_acs0(string_desc * dst, int code, int src)
    +append_acs0(string_desc * dst, int code, char *src, size_t off)
     {
    -    if (src != 0) {
    +    if (src != 0 && off < strlen(src)) {
     	char temp[3];
     	temp[0] = (char) code;
    -	temp[1] = (char) src;
    +	temp[1] = src[off];
     	temp[2] = 0;
     	_nc_safe_strcat(dst, temp);
         }
    @@ -669,7 +669,7 @@ static void
     append_acs(string_desc * dst, int code, char *src)
     {
         if (VALID_STRING(src) && strlen(src) == 1) {
    -	append_acs0(dst, code, *src);
    +	append_acs0(dst, code, src, 0);
         }
     }
     
    @@ -1038,17 +1038,17 @@ postprocess_terminfo(TERMTYPE2 *tp)
     	_nc_str_init(&result, buf2, sizeof(buf2));
     	_nc_safe_strcat(&result, acs_chars);
     
    -	append_acs0(&result, 'l', box_chars_1[0]);	/* ACS_ULCORNER */
    -	append_acs0(&result, 'q', box_chars_1[1]);	/* ACS_HLINE */
    -	append_acs0(&result, 'k', box_chars_1[2]);	/* ACS_URCORNER */
    -	append_acs0(&result, 'x', box_chars_1[3]);	/* ACS_VLINE */
    -	append_acs0(&result, 'j', box_chars_1[4]);	/* ACS_LRCORNER */
    -	append_acs0(&result, 'm', box_chars_1[5]);	/* ACS_LLCORNER */
    -	append_acs0(&result, 'w', box_chars_1[6]);	/* ACS_TTEE */
    -	append_acs0(&result, 'u', box_chars_1[7]);	/* ACS_RTEE */
    -	append_acs0(&result, 'v', box_chars_1[8]);	/* ACS_BTEE */
    -	append_acs0(&result, 't', box_chars_1[9]);	/* ACS_LTEE */
    -	append_acs0(&result, 'n', box_chars_1[10]);	/* ACS_PLUS */
    +	append_acs0(&result, 'l', box_chars_1, 0);	/* ACS_ULCORNER */
    +	append_acs0(&result, 'q', box_chars_1, 1);	/* ACS_HLINE */
    +	append_acs0(&result, 'k', box_chars_1, 2);	/* ACS_URCORNER */
    +	append_acs0(&result, 'x', box_chars_1, 3);	/* ACS_VLINE */
    +	append_acs0(&result, 'j', box_chars_1, 4);	/* ACS_LRCORNER */
    +	append_acs0(&result, 'm', box_chars_1, 5);	/* ACS_LLCORNER */
    +	append_acs0(&result, 'w', box_chars_1, 6);	/* ACS_TTEE */
    +	append_acs0(&result, 'u', box_chars_1, 7);	/* ACS_RTEE */
    +	append_acs0(&result, 'v', box_chars_1, 8);	/* ACS_BTEE */
    +	append_acs0(&result, 't', box_chars_1, 9);	/* ACS_LTEE */
    +	append_acs0(&result, 'n', box_chars_1, 10);	/* ACS_PLUS */
     
     	if (buf2[0]) {
     	    acs_chars = _nc_save_str(buf2);
    diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog
    index 0113008b..b0454cb4 100644
    --- a/package/debian-mingw/changelog
    +++ b/package/debian-mingw/changelog
    @@ -1,8 +1,8 @@
    -ncurses6 (6.1+20191005) unstable; urgency=low
    +ncurses6 (6.1+20191012) unstable; urgency=low
     
       * latest weekly patch
     
    - -- Thomas E. Dickey   Sat, 05 Oct 2019 10:44:23 -0400
    + -- Thomas E. Dickey   Fri, 11 Oct 2019 19:37:45 -0400
     
     ncurses6 (5.9-20131005) unstable; urgency=low
     
    diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog
    index 0113008b..b0454cb4 100644
    --- a/package/debian-mingw64/changelog
    +++ b/package/debian-mingw64/changelog
    @@ -1,8 +1,8 @@
    -ncurses6 (6.1+20191005) unstable; urgency=low
    +ncurses6 (6.1+20191012) unstable; urgency=low
     
       * latest weekly patch
     
    - -- Thomas E. Dickey   Sat, 05 Oct 2019 10:44:23 -0400
    + -- Thomas E. Dickey   Fri, 11 Oct 2019 19:37:45 -0400
     
     ncurses6 (5.9-20131005) unstable; urgency=low
     
    diff --git a/package/debian/changelog b/package/debian/changelog
    index bb15b864..e739b5dd 100644
    --- a/package/debian/changelog
    +++ b/package/debian/changelog
    @@ -1,8 +1,8 @@
    -ncurses6 (6.1+20191005) unstable; urgency=low
    +ncurses6 (6.1+20191012) unstable; urgency=low
     
       * latest weekly patch
     
    - -- Thomas E. Dickey   Sat, 05 Oct 2019 10:44:23 -0400
    + -- Thomas E. Dickey   Fri, 11 Oct 2019 19:37:45 -0400
     
     ncurses6 (5.9-20120608) unstable; urgency=low
     
    diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi
    index ca9eae5f..10a27990 100644
    --- a/package/mingw-ncurses.nsi
    +++ b/package/mingw-ncurses.nsi
    @@ -1,4 +1,4 @@
    -; $Id: mingw-ncurses.nsi,v 1.354 2019/10/05 14:44:23 tom Exp $
    +; $Id: mingw-ncurses.nsi,v 1.355 2019/10/12 15:30:55 tom Exp $
     
     ; TODO add examples
     ; TODO bump ABI to 6
    @@ -10,7 +10,7 @@
     !define VERSION_MAJOR "6"
     !define VERSION_MINOR "1"
     !define VERSION_YYYY  "2019"
    -!define VERSION_MMDD  "1005"
    +!define VERSION_MMDD  "1012"
     !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
     
     !define MY_ABI   "5"
    diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec
    index a666beff..41bd788f 100644
    --- a/package/mingw-ncurses.spec
    +++ b/package/mingw-ncurses.spec
    @@ -3,7 +3,7 @@
     Summary: shared libraries for terminal handling
     Name: mingw32-ncurses6
     Version: 6.1
    -Release: 20191005
    +Release: 20191012
     License: X11
     Group: Development/Libraries
     Source: ncurses-%{version}-%{release}.tgz
    diff --git a/package/ncurses.spec b/package/ncurses.spec
    index ed83905d..478c6656 100644
    --- a/package/ncurses.spec
    +++ b/package/ncurses.spec
    @@ -1,7 +1,7 @@
     Summary: shared libraries for terminal handling
     Name: ncurses6
     Version: 6.1
    -Release: 20191005
    +Release: 20191012
     License: X11
     Group: Development/Libraries
     Source: ncurses-%{version}-%{release}.tgz
    diff --git a/package/ncursest.spec b/package/ncursest.spec
    index 6c7b9a03..1ada75f5 100644
    --- a/package/ncursest.spec
    +++ b/package/ncursest.spec
    @@ -1,7 +1,7 @@
     Summary: Curses library with POSIX thread support.
     Name: ncursest6
     Version: 6.1
    -Release: 20191005
    +Release: 20191012
     License: X11
     Group: Development/Libraries
     Source: ncurses-%{version}-%{release}.tgz
    diff --git a/progs/dump_entry.c b/progs/dump_entry.c
    index d0e420ec..8a47084a 100644
    --- a/progs/dump_entry.c
    +++ b/progs/dump_entry.c
    @@ -39,7 +39,7 @@
     #include "termsort.c"		/* this C file is generated */
     #include 	/* so is this */
     
    -MODULE_ID("$Id: dump_entry.c,v 1.173 2019/05/11 21:02:24 tom Exp $")
    +MODULE_ID("$Id: dump_entry.c,v 1.175 2019/10/12 15:59:07 tom Exp $")
     
     #define DISCARD(string) string = ABSENT_STRING
     #define PRINTF (void) printf
    @@ -1136,7 +1136,8 @@ fmt_entry(TERMTYPE2 *tterm,
     				*d++ = '\\';
     				*d = ':';
     			    } else if (*d == '\\') {
    -				*++d = *s++;
    +				if ((*++d = *s++) == '\0')
    +				    break;
     			    }
     			    d++;
     			    *d = '\0';
    @@ -1396,7 +1397,7 @@ one_one_mapping(const char *mapping)
     
         if (VALID_STRING(mapping)) {
     	int n = 0;
    -	while (mapping[n] != '\0') {
    +	while (mapping[n] != '\0' && mapping[n + 1] != '\0') {
     	    if (isLine(mapping[n]) &&
     		mapping[n] != mapping[n + 1]) {
     		result = FALSE;