From 5e7c0d571f78d9a76ea55fb5bb3a145d0e164264 Mon Sep 17 00:00:00 2001 From: "Thomas E. Dickey" Date: Sun, 14 Apr 2024 22:22:15 +0000 Subject: [PATCH] ncurses 6.4 - patch 20240414 + build/bug-fix for check-size feature (reports by Sam James, Gabriele Balducci). --- NEWS | 6 ++++- VERSION | 2 +- dist.mk | 4 ++-- ncurses/tinfo/lib_setup.c | 38 +++++++++++++++++++++++--------- 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 +- 11 files changed, 47 insertions(+), 25 deletions(-) diff --git a/NEWS b/NEWS index 974a2e0e..588c4cfe 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.4107 2024/04/14 00:19:51 tom Exp $ +-- $Id: NEWS,v 1.4109 2024/04/14 09:43:45 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -46,6 +46,10 @@ 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. +20240414 + + build/bug-fix for check-size feature (reports by Sam James, Gabriele + Balducci). + 20240413 + improve formatting/style of manpages (patches by Branden Robinson). + provide for padding in check-size feature, using new_prescr() to diff --git a/VERSION b/VERSION index e327a6fe..6600dc86 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:10 6.4 20240413 +5:0:10 6.4 20240414 diff --git a/dist.mk b/dist.mk index e5cd1691..3af9726d 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.1606 2024/04/13 11:28:20 tom Exp $ +# $Id: dist.mk,v 1.1607 2024/04/14 08:48:20 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 = 20240413 +NCURSES_PATCH = 20240414 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) diff --git a/ncurses/tinfo/lib_setup.c b/ncurses/tinfo/lib_setup.c index 7231ac67..f1e6c1a2 100644 --- a/ncurses/tinfo/lib_setup.c +++ b/ncurses/tinfo/lib_setup.c @@ -49,7 +49,7 @@ #include #endif -MODULE_ID("$Id: lib_setup.c,v 1.235 2024/04/13 20:35:14 tom Exp $") +MODULE_ID("$Id: lib_setup.c,v 1.239 2024/04/14 17:03:40 tom Exp $") /**************************************************************************** * @@ -364,12 +364,25 @@ get_position(TERMINAL *termp, int fd, int *row, int *col) static bool set_position(NCURSES_SP_DCLx TERMINAL *termp, int row, int col) { - bool result = FALSE; + bool result; char *actual = TIPARM_2(cursor_address, row, col); T((T_CALLED("set_position %d,%d)"), row, col)); - if (NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "set_position", actual) == OK) - result = TRUE; +#if NCURSES_SP_FUNCS + result = (NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "set_position", + actual) == OK); NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); +#else + /* This does not support padding because without sp-funcs, we have only + * the interface using stdio, but we are not guaranteed that Filedes + * is the same as fileno(stdout). + */ + result = FALSE; + if (actual != NULL) { + size_t want = strlen(actual); + int have = (int) write(termp->Filedes, actual, want); + result = ((int) want == have); + } +#endif returnBool(result); } @@ -390,11 +403,11 @@ set_position(NCURSES_SP_DCLx TERMINAL *termp, int row, int col) * So we do a simple check to exclude pseudo-terminals. */ static void -_nc_check_screensize(NCURSES_SP_DCLx TERMINAL *termp, int *linep, int *colp) +_nc_check_screensize(SCREEN *sp, TERMINAL *termp, int *linep, int *colp) { int fd = termp->Filedes; TTY saved; - const char *name; + const char *name = NULL; if (IsRealTty(fd, name) && VALID_STRING(cursor_address) @@ -412,9 +425,11 @@ _nc_check_screensize(NCURSES_SP_DCLx TERMINAL *termp, int *linep, int *colp) sp->_term = termp; NCURSES_SP_NAME(baudrate) (NCURSES_SP_ARG); } +#else + (void) sp; #endif - T(("checking screensize of %s", name)); + T(("trying CPR (u7/u6) with %s", name)); alter.c_lflag &= (unsigned) ~(ECHO | ICANON | ISIG | IEXTEN); alter.c_iflag &= (unsigned) ~(IXON | BRKINT | PARMRK); alter.c_cc[VMIN] = 0; @@ -430,6 +445,9 @@ _nc_check_screensize(NCURSES_SP_DCLx TERMINAL *termp, int *linep, int *colp) } /* restore tty modes */ SET_TTY(fd, &saved); + } else { + T(("NOT trying CPR with fd %d (%s): %s", + fd, NonNull(name), NC_ISATTY(fd) ? "tty" : "not a tty")); } _nc_default_screensize(termp, linep, colp); @@ -510,7 +528,7 @@ _nc_get_screensize(SCREEN *sp, #endif #if HAVE_SIZECHANGE /* try asking the OS */ - if (!NC_ISATTY(cur_term->Filedes)) { + if (NC_ISATTY(cur_term->Filedes)) { STRUCT_WINSIZE size; errno = 0; @@ -561,7 +579,7 @@ _nc_get_screensize(SCREEN *sp, _nc_default_screensize(termp, linep, colp); } else { - _nc_check_screensize(NCURSES_SP_ARGx termp, linep, colp); + _nc_check_screensize(sp, termp, linep, colp); } /* @@ -577,7 +595,7 @@ _nc_get_screensize(SCREEN *sp, OldNumber(termp, columns) = (short) (*colp); #endif } else { - _nc_check_screensize(NCURSES_SP_ARGx termp, linep, colp); + _nc_check_screensize(sp, termp, linep, colp); } T(("screen size is %dx%d", *linep, *colp)); diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog index c1456f7f..088ed45c 100644 --- a/package/debian-mingw/changelog +++ b/package/debian-mingw/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.4+20240413) unstable; urgency=low +ncurses6 (6.4+20240414) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 13 Apr 2024 07:28:20 -0400 + -- Thomas E. Dickey Sun, 14 Apr 2024 04:48:20 -0400 ncurses6 (5.9+20131005) unstable; urgency=low diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog index c1456f7f..088ed45c 100644 --- a/package/debian-mingw64/changelog +++ b/package/debian-mingw64/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.4+20240413) unstable; urgency=low +ncurses6 (6.4+20240414) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 13 Apr 2024 07:28:20 -0400 + -- Thomas E. Dickey Sun, 14 Apr 2024 04:48:20 -0400 ncurses6 (5.9+20131005) unstable; urgency=low diff --git a/package/debian/changelog b/package/debian/changelog index 57b91b13..3c405301 100644 --- a/package/debian/changelog +++ b/package/debian/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.4+20240413) unstable; urgency=low +ncurses6 (6.4+20240414) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 13 Apr 2024 07:28:20 -0400 + -- Thomas E. Dickey Sun, 14 Apr 2024 04:48:20 -0400 ncurses6 (5.9+20120608) unstable; urgency=low diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi index 56452b69..eb57e1dc 100644 --- a/package/mingw-ncurses.nsi +++ b/package/mingw-ncurses.nsi @@ -1,4 +1,4 @@ -; $Id: mingw-ncurses.nsi,v 1.641 2024/04/13 11:28:20 tom Exp $ +; $Id: mingw-ncurses.nsi,v 1.642 2024/04/14 08:48:20 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 "0413" +!define VERSION_MMDD "0414" !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} !define MY_ABI "5" diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec index 72a9ed8c..31ce5996 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: 20240413 +Release: 20240414 License: X11 Group: Development/Libraries URL: https://invisible-island.net/ncurses/ diff --git a/package/ncurses.spec b/package/ncurses.spec index 732c3452..c02876c9 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: 20240413 +Release: 20240414 License: X11 Group: Development/Libraries URL: https://invisible-island.net/ncurses/ diff --git a/package/ncursest.spec b/package/ncursest.spec index c1f96cb2..9903f058 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: 20240413 +Release: 20240414 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz -- 2.45.1