+ adjust man/make_sed.sh to work with dates as the third field of TH.
+ fixes for out-of-memory condition (report by "eaglegai").
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3969 2023/06/24 22:59:35 tom Exp $
+-- $Id: NEWS,v 1.3971 2023/06/25 18:16:49 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.
+20230625
+ + adjust man/make_sed.sh to work with dates as the third field of TH.
+ + fixes for out-of-memory condition (report by "eaglegai").
+
20230624
+ fixes for out-of-memory condition (report by "eaglegai").
-5:0:10 6.4 20230624
+5:0:10 6.4 20230625
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1551 2023/06/24 10:06:22 tom Exp $
+# $Id: dist.mk,v 1.1552 2023/06/25 09:41:21 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 = 20230624
+NCURSES_PATCH = 20230625
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
#!/bin/sh
-# $Id: make_sed.sh,v 1.16 2022/10/01 13:14:07 tom Exp $
+# $Id: make_sed.sh,v 1.17 2023/06/25 18:13:17 tom Exp $
##############################################################################
-# Copyright 2020-2021,2022 Thomas E. Dickey #
+# Copyright 2020-2022,2023 Thomas E. Dickey #
# Copyright 1998-2005,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
echo "# Do the TH lines"
sed -e 's/\//\/TH /' \
-e 's/ / /' \
- -e 's/ / ""\/TH /' \
+ -e 's/ / \/TH /' \
-e 's/ / /' \
- -e 's/\/$/ ""\//' \
+ -e 's/\/$/ \//' \
$UPPER
echo "# Do the embedded references"
#include <curses.priv.h>
-MODULE_ID("$Id: obsolete.c,v 1.9 2023/06/24 22:02:25 tom Exp $")
+MODULE_ID("$Id: obsolete.c,v 1.10 2023/06/25 16:56:27 tom Exp $")
/*
* Obsolete entrypoint retained for binary compatibility.
#undef free
#undef strdup
+#define TR_OOM(stmt) T(stmt)
+
static long oom_limit = -1;
static long oom_count = 0;
oom_limit = 0;
}
}
+ ++oom_count;
if (oom_limit >= 0) {
- result = (++oom_count > oom_limit);
+ result = (oom_count > oom_limit);
if (result && !triggered) {
triggered = TRUE;
- T(("out-of-memory"));
+ TR_OOM(("out-of-memory"));
}
}
return result;
char *result = (oom_check()
? NULL
: malloc(size));
- T(("oom #%ld malloc(%ld) %p", oom_count, size, result));
+ TR_OOM(("oom #%ld malloc(%ld) %p", oom_count, size, result));
return result;
}
char *result = (oom_check()
? NULL
: calloc(nmemb, size));
- T(("oom #%ld calloc(%ld, %ld) %p", oom_count, nmemb, size, result));
+ TR_OOM(("oom #%ld calloc(%ld, %ld) %p", oom_count, nmemb, size, result));
return result;
}
char *result = (oom_check()
? NULL
: realloc(ptr, size));
- T(("oom #%ld realloc(%p, %ld) %p", oom_count, ptr, size, result));
+ TR_OOM(("oom #%ld realloc(%p, %ld) %p", oom_count, ptr, size, result));
return result;
}
NCURSES_EXPORT(void)
_nc_oom_free(void *ptr)
{
- T(("oom #%ld free(%p)", oom_count, ptr));
+ ++oom_count;
+ TR_OOM(("oom #%ld free(%p)", oom_count, ptr));
free(ptr);
}
char *result = (oom_check()
? NULL
: strdup(ptr));
- T(("oom #%ld strdup(%p) %p", oom_count, ptr, result));
+ TR_OOM(("oom #%ld strdup(%p) %p", oom_count, ptr, result));
return result;
}
#endif /* EXP_OOM_TESTING */
#include <curses.priv.h>
-MODULE_ID("$Id: hardscroll.c,v 1.56 2023/06/24 22:55:24 tom Exp $")
+MODULE_ID("$Id: hardscroll.c,v 1.57 2023/06/25 15:39:32 tom Exp $")
#if defined(SCROLLDEBUG) || defined(HASHDEBUG)
NCURSES_SP_NAME(_nc_linedump) (NCURSES_SP_DCL0)
/* dump the state of the real and virtual oldnum fields */
{
- char *buf = 0;
- size_t want = ((size_t) screen_lines(SP_PARM) + 1) * 4;
- (void) SP_PARM;
-
- if ((buf = typeMalloc(char, want)) != 0) {
- int n;
-
- *buf = '\0';
- for (n = 0; n < screen_lines(SP_PARM); n++)
- _nc_SPRINTF(buf + strlen(buf),
- _nc_SLIMIT(want - strlen(buf))
- " %02d", OLDNUM(SP_PARM, n));
- TR(TRACE_UPDATE | TRACE_MOVE, ("virt %s", buf));
- free(buf);
+ if (USE_TRACEF(TRACE_UPDATE | TRACE_MOVE)) {
+ char *buf = 0;
+ size_t want = ((size_t) screen_lines(SP_PARM) + 1) * 4;
+ (void) SP_PARM;
+
+ if ((buf = typeMalloc(char, want)) != 0) {
+ int n;
+
+ *buf = '\0';
+ for (n = 0; n < screen_lines(SP_PARM); n++) {
+ int number = OLDNUM(SP_PARM, n);
+ if (number >= -99 && number < 999) {
+ _nc_SPRINTF(buf + strlen(buf),
+ _nc_SLIMIT(want - strlen(buf))
+ " %02d", number);
+ } else {
+ strcat(buf, " ??");
+ }
+ }
+ free(buf);
+ }
}
}
/****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2023 Thomas E. Dickey *
* Copyright 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: hashmap.c,v 1.69 2020/05/31 17:50:48 tom Exp $")
+MODULE_ID("$Id: hashmap.c,v 1.70 2023/06/25 17:16:01 tom Exp $")
#ifdef HASHDEBUG
if (newhash(SP_PARM) == 0)
newhash(SP_PARM) = typeCalloc(unsigned long,
(size_t) screen_lines(SP_PARM));
- if (!oldhash(SP_PARM) || !newhash(SP_PARM))
+ if (!oldhash(SP_PARM) || !newhash(SP_PARM)) {
+ FreeAndNull(oldhash(SP_PARM));
+ FreeAndNull(newhash(SP_PARM));
return; /* malloc failure */
+ }
for (i = 0; i < screen_lines(SP_PARM); i++) {
newhash(SP_PARM)[i] = hash(SP_PARM, NEWTEXT(SP_PARM, i));
oldhash(SP_PARM)[i] = hash(SP_PARM, OLDTEXT(SP_PARM, i));
-ncurses6 (6.4+20230624) unstable; urgency=low
+ncurses6 (6.4+20230625) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 24 Jun 2023 06:06:22 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 25 Jun 2023 05:41:21 -0400
ncurses6 (5.9+20131005) unstable; urgency=low
-ncurses6 (6.4+20230624) unstable; urgency=low
+ncurses6 (6.4+20230625) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 24 Jun 2023 06:06:22 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 25 Jun 2023 05:41:21 -0400
ncurses6 (5.9+20131005) unstable; urgency=low
-ncurses6 (6.4+20230624) unstable; urgency=low
+ncurses6 (6.4+20230625) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 24 Jun 2023 06:06:22 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 25 Jun 2023 05:41:21 -0400
ncurses6 (5.9+20120608) unstable; urgency=low
-; $Id: mingw-ncurses.nsi,v 1.591 2023/06/24 10:06:22 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.592 2023/06/25 09:41:21 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 "2023"\r
-!define VERSION_MMDD "0624"\r
+!define VERSION_MMDD "0625"\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: 20230624
+Release: 20230625
License: X11
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.4
-Release: 20230624
+Release: 20230625
License: X11
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.4
-Release: 20230624
+Release: 20230625
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz