From 19c0d4acfed45a13096019aa305a63b657fdb24c Mon Sep 17 00:00:00 2001 From: "Thomas E. Dickey" Date: Sun, 4 Feb 2024 00:57:23 +0000 Subject: [PATCH] ncurses 6.4 - patch 20240203 + minor changes to tracing and locale-checks. --- NEWS | 5 ++++- VERSION | 2 +- dist.mk | 4 ++-- ncurses/base/MKunctrl.awk | 7 ++++--- ncurses/tinfo/lib_setup.c | 31 ++++++++++++++++++------------- ncurses/trace/lib_traceatr.c | 9 +++++---- ncurses/trace/lib_tracechr.c | 16 +++++++++------- ncurses/tty/tty_update.c | 5 +++-- package/debian-mingw/changelog | 4 ++-- package/debian-mingw64/changelog | 4 ++-- package/debian/changelog | 4 ++-- package/mingw-ncurses.nsi | 4 ++-- package/mingw-ncurses.spec | 2 +- package/ncurses.spec | 2 +- package/ncursest.spec | 2 +- 15 files changed, 57 insertions(+), 44 deletions(-) diff --git a/NEWS b/NEWS index 05e5aeea..33feec26 100644 --- a/NEWS +++ b/NEWS @@ -26,7 +26,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.4071 2024/01/27 22:04:17 tom Exp $ +-- $Id: NEWS,v 1.4075 2024/02/04 00:53:44 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -46,6 +46,9 @@ 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. +20240203 + + minor changes to tracing and locale-checks. + 20240127 + amend change to z39-a (report by Sven Joachim). + use xterm+nopcfkeys, vt52-basic, dec+pp, dec+sl, vt52+arrows, diff --git a/VERSION b/VERSION index 25dee1cd..3ad45547 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:10 6.4 20240127 +5:0:10 6.4 20240203 diff --git a/dist.mk b/dist.mk index 8f193da0..163c0b51 100644 --- a/dist.mk +++ b/dist.mk @@ -26,7 +26,7 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: dist.mk,v 1.1595 2024/01/27 11:04:16 tom Exp $ +# $Id: dist.mk,v 1.1596 2024/02/03 10:52:10 tom Exp $ # Makefile for creating ncurses distributions. # # This only needs to be used directly as a makefile by developers, but @@ -38,7 +38,7 @@ SHELL = /bin/sh # These define the major/minor/patch versions of ncurses. NCURSES_MAJOR = 6 NCURSES_MINOR = 4 -NCURSES_PATCH = 20240127 +NCURSES_PATCH = 20240203 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) diff --git a/ncurses/base/MKunctrl.awk b/ncurses/base/MKunctrl.awk index 9a2a6db6..e5362bd6 100644 --- a/ncurses/base/MKunctrl.awk +++ b/ncurses/base/MKunctrl.awk @@ -1,6 +1,6 @@ -# $Id: MKunctrl.awk,v 1.29 2020/02/02 23:34:34 tom Exp $ +# $Id: MKunctrl.awk,v 1.30 2024/02/03 21:09:14 tom Exp $ ############################################################################## -# Copyright 2020 Thomas E. Dickey # +# Copyright 2020,2024 Thomas E. Dickey # # Copyright 1998-2012,2017 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # @@ -144,7 +144,7 @@ END { print "\tint check = (int) ChCharOf(ch);" print "\tconst char *result;" print "" - print "(void) sp;" + print "\t(void) sp;" print "\tif (check >= 0 && check < (int)SIZEOF(unctrl_table)) {" print "#if NCURSES_EXT_FUNCS" print "\t\tif ((sp != 0)" @@ -155,6 +155,7 @@ END { print "\t\telse" print "\t\tif ((check >= 160)" print "\t\t && (check < 256)" + print "\t\t && !_nc_unicode_locale()" print "\t\t && ((sp != 0)" print "\t\t && ((sp->_legacy_coding > 0)" print "\t\t || (sp->_legacy_coding == 0" diff --git a/ncurses/tinfo/lib_setup.c b/ncurses/tinfo/lib_setup.c index f2d2bb36..4752ba89 100644 --- a/ncurses/tinfo/lib_setup.c +++ b/ncurses/tinfo/lib_setup.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2018-2022,2023 Thomas E. Dickey * + * Copyright 2018-2023,2024 Thomas E. Dickey * * Copyright 1998-2016,2017 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -49,7 +49,7 @@ #include #endif -MODULE_ID("$Id: lib_setup.c,v 1.230 2023/11/04 21:02:27 tom Exp $") +MODULE_ID("$Id: lib_setup.c,v 1.231 2024/02/04 00:09:34 tom Exp $") /**************************************************************************** * @@ -707,22 +707,27 @@ _nc_get_locale(void) NCURSES_EXPORT(int) _nc_unicode_locale(void) { - int result = 0; + static bool initialized = FALSE; + static int result = 0; + + if (!initialized) { #if defined(_NC_WINDOWS) && USE_WIDEC_SUPPORT - result = 1; + result = 1; #elif HAVE_LANGINFO_CODESET - char *env = nl_langinfo(CODESET); - result = !strcmp(env, "UTF-8"); - T(("_nc_unicode_locale(%s) ->%d", env, result)); + char *env = nl_langinfo(CODESET); + result = !strcmp(env, "UTF-8"); + T(("_nc_unicode_locale(%s) ->%d", env, result)); #else - char *env = _nc_get_locale(); - if (env != 0) { - if (strstr(env, ".UTF-8") != 0) { - result = 1; - T(("_nc_unicode_locale(%s) ->%d", env, result)); + char *env = _nc_get_locale(); + if (env != 0) { + if (strstr(env, ".UTF-8") != 0) { + result = 1; + T(("_nc_unicode_locale(%s) ->%d", env, result)); + } } - } #endif + initialized = TRUE; + } return result; } diff --git a/ncurses/trace/lib_traceatr.c b/ncurses/trace/lib_traceatr.c index d397fb21..b3628625 100644 --- a/ncurses/trace/lib_traceatr.c +++ b/ncurses/trace/lib_traceatr.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2018-2020,2022 Thomas E. Dickey * + * Copyright 2018-2022,2024 Thomas E. Dickey * * Copyright 1998-2017,2018 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -44,7 +44,7 @@ #define CUR SP_TERMTYPE #endif -MODULE_ID("$Id: lib_traceatr.c,v 1.95 2022/06/11 22:40:56 tom Exp $") +MODULE_ID("$Id: lib_traceatr.c,v 1.96 2024/02/04 00:11:35 tom Exp $") #define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name)) @@ -343,6 +343,7 @@ _tracecchar_t2(int bufnum, const cchar_t *ch) } else { PUTC_DATA; int n; + int assume_unicode = _nc_unicode_locale()? 128 : 255; (void) _nc_trace_bufcat(bufnum, "{ "); for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) { @@ -362,10 +363,10 @@ _tracecchar_t2(int bufnum, const cchar_t *ch) UChar(ch->chars[PUTC_i]))); } break; - } else if (ch->chars[PUTC_i] > 255) { + } else if (ch->chars[PUTC_i] > assume_unicode) { char temp[80]; _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) - "{%d:\\u%lx}", + "{%d:\\u%04lx}", _nc_wacs_width(ch->chars[PUTC_i]), (unsigned long) ch->chars[PUTC_i]); (void) _nc_trace_bufcat(bufnum, temp); diff --git a/ncurses/trace/lib_tracechr.c b/ncurses/trace/lib_tracechr.c index 36158d6f..9c879dc6 100644 --- a/ncurses/trace/lib_tracechr.c +++ b/ncurses/trace/lib_tracechr.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2024 Thomas E. Dickey * * Copyright 1998-2009,2012 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -40,7 +40,7 @@ #include -MODULE_ID("$Id: lib_tracechr.c,v 1.23 2020/02/02 23:34:34 tom Exp $") +MODULE_ID("$Id: lib_tracechr.c,v 1.24 2024/02/04 00:11:35 tom Exp $") #ifdef TRACE @@ -54,26 +54,28 @@ _nc_tracechar(SCREEN *sp, int ch) ? sp->tracechr_buf : _nc_globals.tracechr_buf); - if (ch > KEY_MIN || ch < 0) { + if ((ch > KEY_MIN && !_nc_unicode_locale()) || ch < 0) { name = safe_keyname(SP_PARM, ch); if (name == 0 || *name == '\0') name = "NULL"; _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) - "'%.30s' = %#03o", name, ch); - } else if (!is8bits(ch) || !isprint(UChar(ch))) { + "'%.30s' = \\x%02x", name, ch); + } else if (!is8bits(ch) + || (_nc_unicode_locale() && !is7bits(ch)) + || !isprint(UChar(ch))) { /* * workaround for glibc bug: * sprintf changes the result from unctrl() to an empty string if it * does not correspond to a valid multibyte sequence. */ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) - "%#03o", ch); + "\\x%02x", ch); } else { name = safe_unctrl(SP_PARM, (chtype) ch); if (name == 0 || *name == 0) name = "null"; /* shouldn't happen */ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) - "'%.30s' = %#03o", name, ch); + "'%.30s' = \\x%02x", name, ch); } return (MyBuffer); } diff --git a/ncurses/tty/tty_update.c b/ncurses/tty/tty_update.c index 066b7fce..0427024c 100644 --- a/ncurses/tty/tty_update.c +++ b/ncurses/tty/tty_update.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2018-2022,2023 Thomas E. Dickey * + * Copyright 2018-2023,2024 Thomas E. Dickey * * Copyright 1998-2016,2017 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -85,7 +85,7 @@ #include -MODULE_ID("$Id: tty_update.c,v 1.315 2023/09/16 16:38:41 tom Exp $") +MODULE_ID("$Id: tty_update.c,v 1.316 2024/02/04 00:09:34 tom Exp $") /* * This define controls the line-breakout optimization. Every once in a @@ -256,6 +256,7 @@ PutAttrChar(NCURSES_SP_DCLx CARG_CH_T ch) * not checked. */ if (is8bits(CharOf(CHDEREF(ch))) + && (!is7bits(CharOf(CHDEREF(ch))) && _nc_unicode_locale()) && (isprint(CharOf(CHDEREF(ch))) || (SP_PARM->_legacy_coding > 0 && CharOf(CHDEREF(ch)) >= 160) || (SP_PARM->_legacy_coding > 1 && CharOf(CHDEREF(ch)) >= 128) diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog index 190ac14d..619876e3 100644 --- a/package/debian-mingw/changelog +++ b/package/debian-mingw/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.4+20240127) unstable; urgency=low +ncurses6 (6.4+20240203) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 27 Jan 2024 06:04:16 -0500 + -- Thomas E. Dickey Sat, 03 Feb 2024 05:52:10 -0500 ncurses6 (5.9+20131005) unstable; urgency=low diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog index 190ac14d..619876e3 100644 --- a/package/debian-mingw64/changelog +++ b/package/debian-mingw64/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.4+20240127) unstable; urgency=low +ncurses6 (6.4+20240203) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 27 Jan 2024 06:04:16 -0500 + -- Thomas E. Dickey Sat, 03 Feb 2024 05:52:10 -0500 ncurses6 (5.9+20131005) unstable; urgency=low diff --git a/package/debian/changelog b/package/debian/changelog index fde41393..deb1c258 100644 --- a/package/debian/changelog +++ b/package/debian/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.4+20240127) unstable; urgency=low +ncurses6 (6.4+20240203) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 27 Jan 2024 06:04:16 -0500 + -- Thomas E. Dickey Sat, 03 Feb 2024 05:52:10 -0500 ncurses6 (5.9+20120608) unstable; urgency=low diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi index 4c4122c0..05db5415 100644 --- a/package/mingw-ncurses.nsi +++ b/package/mingw-ncurses.nsi @@ -1,4 +1,4 @@ -; $Id: mingw-ncurses.nsi,v 1.630 2024/01/27 11:04:16 tom Exp $ +; $Id: mingw-ncurses.nsi,v 1.631 2024/02/03 10:52:10 tom Exp $ ; TODO add examples ; TODO bump ABI to 6 @@ -10,7 +10,7 @@ !define VERSION_MAJOR "6" !define VERSION_MINOR "4" !define VERSION_YYYY "2024" -!define VERSION_MMDD "0127" +!define VERSION_MMDD "0203" !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} !define MY_ABI "5" diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec index ad5a7f28..48824614 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.4 -Release: 20240127 +Release: 20240203 License: X11 Group: Development/Libraries URL: https://invisible-island.net/ncurses/ diff --git a/package/ncurses.spec b/package/ncurses.spec index 775f770c..6af03fb9 100644 --- a/package/ncurses.spec +++ b/package/ncurses.spec @@ -1,7 +1,7 @@ Summary: shared libraries for terminal handling Name: ncurses6 Version: 6.4 -Release: 20240127 +Release: 20240203 License: X11 Group: Development/Libraries URL: https://invisible-island.net/ncurses/ diff --git a/package/ncursest.spec b/package/ncursest.spec index 59460a5a..c14511b6 100644 --- a/package/ncursest.spec +++ b/package/ncursest.spec @@ -1,7 +1,7 @@ Summary: Curses library with POSIX thread support. Name: ncursest6 Version: 6.4 -Release: 20240127 +Release: 20240203 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz -- 2.45.0