-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.4075 2024/02/04 00:53:44 tom Exp $
+-- $Id: NEWS,v 1.4078 2024/02/10 23:48:51 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
+20240210
+ + compiler-warning fixes, while investigating an optimizer bug in
+ "gcc (MacPorts gcc13 13.2.0_4+stdlib_flag) 13.2.0"
+ which results in only the first byte of a multibyte character being
+ printed to the screen.
+
20240203
+ minor changes to tracing and locale-checks.
-5:0:10 6.4 20240203
+5:0:10 6.4 20240210
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1596 2024/02/03 10:52:10 tom Exp $
+# $Id: dist.mk,v 1.1597 2024/02/10 12:26:54 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 6
NCURSES_MINOR = 4
-NCURSES_PATCH = 20240203
+NCURSES_PATCH = 20240210
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
.\"***************************************************************************
-.\" Copyright 2018-2021,2023 Thomas E. Dickey *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey *
.\" Copyright 2008-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tabs.1,v 1.54 2024/01/20 16:54:03 tom Exp $
+.\" $Id: tabs.1,v 1.55 2024/01/20 16:54:03 tom Exp $
.TH @TABS@ 1 2024-01-20 "ncurses 6.4" "User commands"
.ie \n(.g \{\
.ds `` \(lq
/****************************************************************************
- * 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 *
#include <tic.h>
-MODULE_ID("$Id: comp_parse.c,v 1.133 2023/05/27 20:13:10 tom Exp $")
+MODULE_ID("$Id: comp_parse.c,v 1.134 2024/02/10 15:52:11 tom Exp $")
static void sanity_check2(TERMTYPE2 *, bool);
NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype2) (TERMTYPE2 *, bool) = sanity_check2;
ENTRY *qp, *rp, *lastread = 0;
bool keepgoing;
unsigned i, j;
- int unresolved, total_unresolved, multiples;
+ int total_unresolved, multiples;
DEBUG(2, (T_CALLED("_nc_resolve_uses2")));
total_unresolved = 0;
_nc_curr_col = -1;
for_entry_list(qp) {
- unresolved = 0;
for (i = 0; i < qp->nuses; i++) {
bool foundit;
char *child = _nc_first_name(qp->tterm.term_names);
/* no good, mark this one unresolvable and complain */
if (!foundit) {
- unresolved++;
total_unresolved++;
_nc_curr_line = (int) lookline;
-ncurses6 (6.4+20240203) unstable; urgency=low
+ncurses6 (6.4+20240210) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 03 Feb 2024 05:52:10 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 10 Feb 2024 07:26:54 -0500
ncurses6 (5.9+20131005) unstable; urgency=low
-ncurses6 (6.4+20240203) unstable; urgency=low
+ncurses6 (6.4+20240210) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 03 Feb 2024 05:52:10 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 10 Feb 2024 07:26:54 -0500
ncurses6 (5.9+20131005) unstable; urgency=low
-ncurses6 (6.4+20240203) unstable; urgency=low
+ncurses6 (6.4+20240210) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 03 Feb 2024 05:52:10 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 10 Feb 2024 07:26:54 -0500
ncurses6 (5.9+20120608) unstable; urgency=low
-; $Id: mingw-ncurses.nsi,v 1.631 2024/02/03 10:52:10 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.632 2024/02/10 12:26:54 tom Exp $\r
\r
; TODO add examples\r
; TODO bump ABI to 6\r
!define VERSION_MAJOR "6"\r
!define VERSION_MINOR "4"\r
!define VERSION_YYYY "2024"\r
-!define VERSION_MMDD "0203"\r
+!define VERSION_MMDD "0210"\r
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
\r
!define MY_ABI "5"\r
Summary: shared libraries for terminal handling
Name: mingw32-ncurses6
Version: 6.4
-Release: 20240203
+Release: 20240210
License: X11
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.4
-Release: 20240203
+Release: 20240210
License: X11
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.4
-Release: 20240203
+Release: 20240210
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
/****************************************************************************
- * Copyright 2018-2022,2023 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 1998-2017,2018 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
/****************************************************************************
* Author: Thomas E. Dickey 1996-on *
****************************************************************************/
-/* $Id: test.priv.h,v 1.217 2023/11/11 00:23:26 tom Exp $ */
+/* $Id: test.priv.h,v 1.218 2024/02/10 14:40:03 tom Exp $ */
#ifndef __TEST_PRIV_H
#define __TEST_PRIV_H 1
," -V show version of curses"
#if HAVE_CURSES_VERSION
-#define format_version(buffer) strcpy(buffer, curses_version())
+#define format_version(buffer, size) strcpy(buffer, curses_version())
#elif defined(NCURSES_VERSION_MAJOR) && defined(NCURSES_VERSION_MINOR) && defined(NCURSES_VERSION_PATCH)
-#define format_version(buffer) sprintf(buffer, "ncurses %d.%d.%d", \
- NCURSES_VERSION_MAJOR, \
- NCURSES_VERSION_MINOR, \
- NCURSES_VERSION_PATCH)
+#define format_version(buffer, size) \
+ _nc_SPRINTF(buffer, _nc_SLIMIT(size) "ncurses %d.%d.%d", \
+ NCURSES_VERSION_MAJOR, \
+ NCURSES_VERSION_MINOR, \
+ NCURSES_VERSION_PATCH)
#else
-#define format_version(buffer) strcpy(buffer, "ncurses-examples")
+#define format_version(buffer, size) strcpy(buffer, "ncurses-examples")
#endif
#define VERSION_COMMON() \
static char *version_common(char **argv) { \
char *base = argv[0]; \
char *part = strrchr(base, '/'); \
- char *result = malloc(strlen(base) + 80); \
+ size_t need = strlen(base) + 80; \
+ char *result = malloc(need); \
if (result != NULL) { \
if (part++ == NULL) part = base; \
- sprintf(result, "%.20s: ", part); \
- format_version(result + strlen(result)); \
+ _nc_SPRINTF(result, _nc_SLIMIT(need) "%.20s: ", part); \
+ format_version(result + strlen(result), need - strlen(result)); \
} \
return result; \
} \
#if HAVE_CLOCK_GETTIME
# define GetClockTime(t) clock_gettime(CLOCK_REALTIME, t)
# define TimeType struct timespec
-# define TimeScale 1000000000L /* 1e9 */
+# define TimeScale 1000000000L /* 1e9 */
# define ElapsedSeconds(b,e) \
(double) (((e)->tv_sec - (b)->tv_sec) \
+ ((e)->tv_nsec - (b)->tv_nsec) / TimeScale)
#elif HAVE_GETTIMEOFDAY
# define GetClockTime(t) gettimeofday(t, 0)
# define TimeType struct timeval
-# define TimeScale 1000000L /* 1e6 */
+# define TimeScale 1000000L /* 1e6 */
# define ElapsedSeconds(b,e) \
(double) (((e)->tv_sec - (b)->tv_sec) \
+ ((e)->tv_usec - (b)->tv_usec) / TimeScale)
/****************************************************************************
- * Copyright 2022,2023 Thomas E. Dickey *
+ * Copyright 2022-2023,2024 Thomas E. Dickey *
* Copyright 2022 Leonid S. Usov <leonid.s.usov at gmail.com> *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
****************************************************************************/
/*
- * $Id: test_mouse.c,v 1.28 2023/04/16 17:36:47 tom Exp $
+ * $Id: test_mouse.c,v 1.29 2024/02/10 14:39:40 tom Exp $
*
* Author: Leonid S Usov
*
int interval = 0;
int ch;
MEVENT event;
+ size_t my_len;
char *my_environ = NULL;
const char *term_format = "TERM=%s";
rawmode = TRUE;
break;
case 'T':
- my_environ = malloc(strlen(term_format) + strlen(optarg));
+ my_len = strlen(term_format) + strlen(optarg) + 1;
+ my_environ = malloc(my_len);
if (my_environ != NULL) {
- sprintf(my_environ, term_format, optarg);
+ _nc_SPRINTF(my_environ, _nc_SLIMIT(my_len) term_format, optarg);
putenv(my_environ);
}
break;