ncurses 6.1 - patch 20180505
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 6 May 2018 00:58:46 +0000 (00:58 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 6 May 2018 00:58:46 +0000 (00:58 +0000)
+ add deprecation warnings for internal functions called by older
  versions of tack.
+ fix a special case in PutAttrChar() where a cell is marked as
  alternate-character set, but the terminal does not actually support
  the given graphic character.  This would happen in an older terminal
  such as vt52, which lacks most line-drawing capability.
+ use configure --with-config-suffix option to work around filename
  conflict with Debian packages versus test-packages.
+ update tracemunch to work with perl 5.26.2, which changed the rules
  for escaping regular expressions.

18 files changed:
NEWS
VERSION
dist.mk
include/curses.h.in
include/term_entry.h
include/tic.h
ncurses/tinfo/lib_acs.c
ncurses/trace/lib_traceatr.c
ncurses/tty/tty_update.c
ncurses/widechar/lib_wacs.c
package/debian-mingw/changelog
package/debian-mingw64/changelog
package/debian/changelog
package/debian/rules
package/mingw-ncurses.nsi
package/mingw-ncurses.spec
package/ncurses.spec
test/tracemunch

diff --git a/NEWS b/NEWS
index 4ce3258fe253e55d74f89da322d84cd959f9b7fa..c02a0947e80a1df3bab35eb8a006a7e7b8ea8bfc 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3119 2018/04/28 21:26:58 tom Exp $
+-- $Id: NEWS,v 1.3124 2018/05/05 21:05:04 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -45,6 +45,18 @@ 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.
 
+20180505
+       + add deprecation warnings for internal functions called by older
+         versions of tack.
+       + fix a special case in PutAttrChar() where a cell is marked as
+         alternate-character set, but the terminal does not actually support
+         the given graphic character.  This would happen in an older terminal
+         such as vt52, which lacks most line-drawing capability.
+       + use configure --with-config-suffix option to work around filename
+         conflict with Debian packages versus test-packages.
+       + update tracemunch to work with perl 5.26.2, which changed the rules
+         for escaping regular expressions.
+
 20180428
        + document new form-extension O_EDGE_INSERT_STAY (report by Leon
          Winter).
diff --git a/VERSION b/VERSION
index b5aa960b879163041f0c2aec017949684600ea86..89ec7d772649b12008e5a5637ce8870b654bd356 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5:0:10 6.1     20180428
+5:0:10 6.1     20180505
diff --git a/dist.mk b/dist.mk
index 05ba0a0b8f8efe9ab6c55f35c896671ad46307d1..409c37c7b77e0c33b63886dbefcd68ff84232445 100644 (file)
--- a/dist.mk
+++ b/dist.mk
@@ -25,7 +25,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: dist.mk,v 1.1221 2018/04/28 14:18:55 tom Exp $
+# $Id: dist.mk,v 1.1222 2018/05/02 00:12:25 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 = 20180428
+NCURSES_PATCH = 20180505
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
index c7d80a902dcb600e778a5f91f407e39b5ab84b64..0f95c8fe7285ec7c0392c65c5f8cbc5521d4ab8a 100644 (file)
@@ -32,7 +32,7 @@
  *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
-/* $Id: curses.h.in,v 1.258 2018/04/07 20:36:11 tom Exp $ */
+/* $Id: curses.h.in,v 1.259 2018/05/05 21:28:04 tom Exp $ */
 
 #ifndef __NCURSES_H
 #define __NCURSES_H
@@ -580,6 +580,13 @@ extern NCURSES_EXPORT(int) wgetnstr_events (WINDOW *,char *,int,_nc_eventlist *)
 #define        GCC_UNUSED /* nothing */
 #endif
 
+#undef  GCC_DEPRECATED
+#if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2))
+#define GCC_DEPRECATED(msg) __attribute__((deprecated));
+#else
+#define GCC_DEPRECATED(msg) /* nothing */
+#endif
+
 /*
  * Curses uses a helper function.  Define our type for this to simplify
  * extending it for the sp-funcs feature.
index b97cc12bea8fc4d4bdfed9b059b74774788ec7bb..b98b80e4d46a3fd674923c4cfd5704c35a414b99 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2015,2017 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2017,2018 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            *
@@ -32,7 +32,7 @@
  *     and: Thomas E. Dickey                        1998-on                 *
  ****************************************************************************/
 
-/* $Id: term_entry.h,v 1.55 2017/04/06 22:45:34 tom Exp $ */
+/* $Id: term_entry.h,v 1.56 2018/05/06 00:19:41 tom Exp $ */
 
 /*
  *     term_entry.h -- interface to entry-manipulation code
@@ -210,14 +210,21 @@ extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *);
  * These entrypoints are used by tack.
  */
 
+#undef  NCURSES_TACK_1_08
+#ifdef  NCURSES_INTERNALS
+#define NCURSES_TACK_1_08 /* nothing */
+#else
+#define NCURSES_TACK_1_08 GCC_DEPRECATED("upgrade to tack 1.08")
+#endif
+
 /* alloc_ttype.c: elementary allocation code */
-extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, const TERMTYPE *);
+extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, const TERMTYPE *) NCURSES_TACK_1_08;
 
 /* lib_acs.c */
-extern NCURSES_EXPORT(void) _nc_init_acs (void);       /* corresponds to traditional 'init_acs()' */
+extern NCURSES_EXPORT(void) _nc_init_acs (void) NCURSES_TACK_1_08;     /* corresponds to traditional 'init_acs()' */
 
 /* free_ttype.c: elementary allocation code */
-extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *);
+extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *) NCURSES_TACK_1_08;
 
 #ifdef __cplusplus
 }
index ec03f75a2ac58b94c3a45c12ceaf5140c9eb2d5c..fe7c2969651f7aaf72bdfa4c0d02321adae97bd6 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2012,2017 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2017,2018 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            *
@@ -33,7 +33,7 @@
  ****************************************************************************/
 
 /*
- * $Id: tic.h,v 1.75 2017/07/29 23:21:06 tom Exp $
+ * $Id: tic.h,v 1.76 2018/05/06 00:19:34 tom Exp $
  *     tic.h - Global variables and structures for the terminfo compiler.
  */
 
@@ -343,19 +343,26 @@ extern NCURSES_EXPORT(int) _nc_tic_written (void);
  * These entrypoints are used by tack.
  */
 
+#undef  NCURSES_TACK_1_08
+#ifdef  NCURSES_INTERNALS
+#define NCURSES_TACK_1_08 /* nothing */
+#else
+#define NCURSES_TACK_1_08 GCC_DEPRECATED("upgrade to tack 1.08")
+#endif
+
 /* comp_hash.c: name lookup */
 extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry
-       (const char *, const HashValue *);
-extern NCURSES_EXPORT(const HashValue *) _nc_get_hash_table (bool);
+       (const char *, const HashValue *) NCURSES_TACK_1_08;
+extern NCURSES_EXPORT(const HashValue *) _nc_get_hash_table (bool) NCURSES_TACK_1_08;
 
 /* comp_scan.c: lexical analysis */
-extern NCURSES_EXPORT(void) _nc_reset_input (FILE *, char *);
+extern NCURSES_EXPORT(void) _nc_reset_input (FILE *, char *) NCURSES_TACK_1_08;
 
 /* comp_expand.c: expand string into readable form */
-extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int);
+extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int) NCURSES_TACK_1_08;
 
 /* comp_scan.c: decode string from readable form */
-extern NCURSES_EXPORT(int) _nc_trans_string (char *, char *);
+extern NCURSES_EXPORT(int) _nc_trans_string (char *, char *) NCURSES_TACK_1_08;
 
 #endif /* NCURSES_TERM_ENTRY_H_incl */
 
index 221b1acc7cd77fd43655fbbb8da89f6805622ae2..c552f253fa61cb50776405e399cdeb930c2fc3a4 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2014,2017 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2017,2018 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            *
@@ -39,7 +39,7 @@
 #define CUR SP_TERMTYPE
 #endif
 
-MODULE_ID("$Id: lib_acs.c,v 1.46 2017/09/20 00:48:55 tom Exp $")
+MODULE_ID("$Id: lib_acs.c,v 1.47 2018/05/05 17:35:53 tom Exp $")
 
 #if BROKEN_LINKER || USE_REENTRANT
 #define MyBuffer _nc_prescreen.real_acs_map
@@ -205,8 +205,13 @@ NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_DCL0)
        while (i + 1 < length) {
            if (acs_chars[i] != 0 && UChar(acs_chars[i]) < ACS_LEN) {
                real_map[UChar(acs_chars[i])] = UChar(acs_chars[i + 1]) | A_ALTCHARSET;
-               if (SP != 0)
+               T(("#%d real_map[%s] = %s",
+                  (int) i,
+                  _tracechar(UChar(acs_chars[i])),
+                  _tracechtype(real_map[UChar(acs_chars[i])])));
+               if (SP != 0) {
                    SP->_screen_acs_map[UChar(acs_chars[i])] = TRUE;
+               }
            }
            i += 2;
        }
index 688c4e727c1983a8cf036088c277d4fe9e76cfbf..a4144ab5c4caa10cb815f8cc27d89e8834f3c4c8 100644 (file)
@@ -43,7 +43,7 @@
 #define CUR SP_TERMTYPE
 #endif
 
-MODULE_ID("$Id: lib_traceatr.c,v 1.91 2018/01/07 02:22:01 tom Exp $")
+MODULE_ID("$Id: lib_traceatr.c,v 1.92 2018/05/05 17:49:17 tom Exp $")
 
 #define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name))
 
@@ -285,19 +285,21 @@ _tracechtype2(int bufnum, chtype ch)
 
     if (result != 0) {
        const char *found;
+       attr_t attr = ChAttrOf(ch);
 
        _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum));
-       if ((found = _nc_altcharset_name(ChAttrOf(ch), ch)) != 0) {
+       if ((found = _nc_altcharset_name(attr, ch)) != 0) {
            (void) _nc_trace_bufcat(bufnum, found);
+           attr &= ~A_ALTCHARSET;
        } else
            (void) _nc_trace_bufcat(bufnum,
                                    _nc_tracechar(CURRENT_SCREEN,
                                                  (int) ChCharOf(ch)));
 
-       if (ChAttrOf(ch) != A_NORMAL) {
+       if (attr != A_NORMAL) {
            (void) _nc_trace_bufcat(bufnum, " | ");
            (void) _nc_trace_bufcat(bufnum,
-                                   _traceattr2(bufnum + 20, ChAttrOf(ch)));
+                                   _traceattr2(bufnum + 20, attr));
        }
 
        result = _nc_trace_bufcat(bufnum, r_brace);
index b5151b94ed2763de2b548c3e410574f031dde3e4..fd35c47beb2e2bdd174f365736f70e04ab35ff46 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2017,2018 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            *
@@ -84,7 +84,7 @@
 
 #include <ctype.h>
 
-MODULE_ID("$Id: tty_update.c,v 1.297 2017/09/02 21:45:44 Jeb.Rosen Exp $")
+MODULE_ID("$Id: tty_update.c,v 1.298 2018/05/05 19:11:55 tom Exp $")
 
 /*
  * This define controls the line-breakout optimization.  Every once in a
@@ -344,7 +344,9 @@ PutAttrChar(NCURSES_SP_DCLx CARG_CH_T ch)
            || is_wacs_value(CharOfD(ch))
 #endif
        )) {
+       int c8;
        my_ch = CHDEREF(ch);    /* work around const param */
+       c8 = CharOf(my_ch);
 #if USE_WIDEC_SUPPORT
        /*
         * This is crude & ugly, but works most of the time.  It checks if the
@@ -368,8 +370,14 @@ PutAttrChar(NCURSES_SP_DCLx CARG_CH_T ch)
                chlen = 1;
            }
 #endif /* !NCURSES_WCWIDTH_GRAPHICS */
-       }
+       } else
 #endif
+       if (!SP_PARM->_screen_acs_map[c8]) {
+           chtype temp = UChar(SP_PARM->_acs_map[c8]);
+           RemAttr(attr, A_ALTCHARSET);
+           SetChar(my_ch, temp, AttrOf(attr));
+       }
+
        /*
         * If we (still) have alternate character set, it is the normal 8bit
         * flavor.  The _screen_acs_map[] array tells if the character was
index 8b91a735f042fe35f5930edc79ff4ae7f4847db5..da5b93e5495aafdc6f460448d0149a9066cde092 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002-2015,2016 Free Software Foundation, Inc.              *
+ * Copyright (c) 2002-2016,2018 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            *
@@ -32,7 +32,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_wacs.c,v 1.18 2016/05/28 23:09:20 tom Exp $")
+MODULE_ID("$Id: lib_wacs.c,v 1.19 2018/05/05 17:26:44 tom Exp $")
 
 NCURSES_EXPORT_VAR(cchar_t) * _nc_wacs = 0;
 
@@ -138,9 +138,9 @@ _nc_init_wacs(void)
                SetChar(_nc_wacs[m], table[n].value[0], A_NORMAL);
            }
 
-           T(("#%d, wide:%d SetChar(%c, %#04x) = %s",
+           T(("#%d, width:%d SetChar(%c, %s) = %s",
               n, wide, m,
-              table[n].value[active],
+              _tracechar(table[n].value[active]),
               _tracecchar_t(&_nc_wacs[m])));
        }
     }
index 7bfef6df86b51b587958e923abe7fa49b4ab66d5..b842644205dbb905fd062091426a7179b6dd7d05 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20180428) unstable; urgency=low
+ncurses6 (6.1+20180505) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 28 Apr 2018 10:18:56 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Tue, 01 May 2018 20:12:25 -0400
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index 7bfef6df86b51b587958e923abe7fa49b4ab66d5..b842644205dbb905fd062091426a7179b6dd7d05 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20180428) unstable; urgency=low
+ncurses6 (6.1+20180505) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 28 Apr 2018 10:18:56 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Tue, 01 May 2018 20:12:25 -0400
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index a31019e15e38ff5fc9a381aeb3e95698aa2d9ff2..1fdb7675292095bb4f60ced2de2afe7be0309f7e 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20180428) unstable; urgency=low
+ncurses6 (6.1+20180505) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 28 Apr 2018 10:18:56 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Tue, 01 May 2018 20:12:25 -0400
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
index 6dd38f78006a5e4b6a407810f8723bf92fad1a12..7927f437f75dcd200c839aac873f044ca9e64eb6 100755 (executable)
@@ -75,6 +75,7 @@ configure = \
                --program-suffix=$(MY_ABI) \
                --verbose \
                --with-abi-version=$(MY_ABI) \
+               --with-config-suffix=dev \
                --with-cxx-shared \
                --with-default-terminfo-dir=$(MYDATA) \
                --with-develop \
index e105da1d85d4c81ee93ba52707504bb1ec85ddae..4391cb083d3d702ee26a30fbe6d74d43970448f5 100644 (file)
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.268 2018/04/28 14:18:55 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.269 2018/05/02 00:12:25 tom Exp $\r
 \r
 ; TODO add examples\r
 ; TODO bump ABI to 6\r
@@ -10,7 +10,7 @@
 !define VERSION_MAJOR "6"\r
 !define VERSION_MINOR "1"\r
 !define VERSION_YYYY  "2018"\r
-!define VERSION_MMDD  "0428"\r
+!define VERSION_MMDD  "0505"\r
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
 \r
 !define MY_ABI   "5"\r
index 48a645b38d3fa66a78dda44242f3b4241fad8f3c..12a749b7b7aebe24b874ed3ca97c929823455fd2 100644 (file)
@@ -3,7 +3,7 @@
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.1
-Release: 20180428
+Release: 20180505
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index d83ff220b0d4bb171de60c2f3b9324000df51a83..08b2dee4e8c71513d6f68bef965eeeb3dc24d29d 100644 (file)
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.1
-Release: 20180428
+Release: 20180505
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index cdb91bc83560fc19ba3619091791f3c8cd1c9e1d..0e05aaee58d189d52723e30ad06d947148c68461 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env perl
-# $Id: tracemunch,v 1.19 2018/04/07 20:37:08 tom Exp $
+# $Id: tracemunch,v 1.20 2018/05/02 00:14:29 tom Exp $
 ##############################################################################
 # Copyright (c) 1998-2017,2018 Free Software Foundation, Inc.                #
 #                                                                            #
@@ -37,9 +37,10 @@ use strict;
 use warnings;
 
 our $putattr =
-  "PutAttrChar\\({{ '(.)' = 0[0-7]+ }}\\) at \\(([0-9]+), ([0-9]+)\\)";
+    'PutAttrChar\(\{\{ ' . "'(.)'"
+  . ' = 0[0-7]+ \}\}\) at \(([0-9]+), ([0-9]+)\)';
 our $waddnstr =
-  "waddnstr\\(0x([[:xdigit:]]+),\"([^\"]+)\",[0-9]+\\) called {A_NORMAL}";
+  'waddnstr\(0x([[:xdigit:]]+),"([^\"]+)",[0-9]+\) called \{A_NORMAL\}';
 
 our $scr_nums = 0;
 our $thr_nums = 0;
@@ -107,7 +108,7 @@ while (<STDIN>) {
         $awaiting = "curscr" if ( $_ =~ /creating curscr/ );
         $awaiting = "newscr" if ( $_ =~ /creating newscr/ );
         $awaiting = "stdscr" if ( $_ =~ /creating stdscr/ );
-        $awaiting = "screen" if ( $_ =~ /^(\+ )*called {new_prescr\(\)/ );
+        $awaiting = "screen" if ( $_ =~ /^(\+ )*called \{new_prescr\(\)/ );
         if ( $_ =~ /^create :window 0x([[:xdigit:]]+)/ ) {
             $addr = "0x$1";
             if ( $awaiting eq "curscr" ) {
@@ -124,7 +125,7 @@ while (<STDIN>) {
             }
             $awaiting = "";
         }
-        elsif ( $_ =~ /^(\+ )*called {_nc_add_to_try\((0x[[:xdigit:]]+),/ ) {
+        elsif ( $_ =~ /^(\+ )*called \{_nc_add_to_try\((0x[[:xdigit:]]+),/ ) {
             $try_addr{$2} = ++$try_nums unless defined $try_addr{$2};
         }
         elsif ( $_ =~ /^(\+ )*_nc_alloc_screen_sp 0x([[:xdigit:]]+)/ ) {