-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3796 2022/04/16 23:31:41 tom Exp $
+-- $Id: NEWS,v 1.3798 2022/04/23 23:26:44 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.
+20220423
+ + in-progress work on invalid_merge(), disable it (cf: 20220402).
+ + fix memory leak in _nc_tic_dir() when called from _nc_set_writedir().
+ + fix memory leak in tic when "-c" option is used.
+
20220416
+ add a limit-check to guard against corrupt terminfo data
(report/testcase by NCNIPC of China).
-5:0:10 6.3 20220416
+5:0:10 6.3 20220423
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1475 2022/04/16 12:59:30 tom Exp $
+# $Id: dist.mk,v 1.1476 2022/04/23 12:44:18 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 = 3
-NCURSES_PATCH = 20220416
+NCURSES_PATCH = 20220423
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
#include <tic.h>
-MODULE_ID("$Id: comp_parse.c,v 1.114 2022/04/02 22:13:54 tom Exp $")
+MODULE_ID("$Id: comp_parse.c,v 1.116 2022/04/23 23:23:38 tom Exp $")
static void sanity_check2(TERMTYPE2 *, bool);
NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype2) (TERMTYPE2 *, bool) = sanity_check2;
_nc_suppress_warnings = oldsuppress;
}
-#if NCURSES_XNAMES
+#if 0 && NCURSES_XNAMES
static unsigned
find_capname(TERMTYPE2 *p, const char *name)
{
_nc_check_termtype2(&qp->tterm, literal);
+ /*
+ * Checking calls tparm, which can allocate memory. Fix leaks.
+ */
+#define TPS(name) fake_tm.tparm_state.name
+ FreeAndNull(TPS(out_buff));
+ FreeAndNull(TPS(fmt_buff));
+#undef TPS
+
_nc_set_screen(save_SP);
set_curterm(save_tm);
} else {
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2022 Thomas E. Dickey *
* Copyright 2006-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#include <hashed_db.h>
#endif
-MODULE_ID("$Id: db_iterator.c,v 1.48 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: db_iterator.c,v 1.49 2022/04/23 20:03:15 tom Exp $")
#define HaveTicDirectory _nc_globals.have_tic_directory
#define KeepTicDirectory _nc_globals.keep_tic_directory
FreeAndNull(my_list);
}
+static void
+update_tic_dir(const char *update)
+{
+ free((char *) TicDirectory);
+ TicDirectory = update;
+}
+
/*
* Record the "official" location of the terminfo directory, according to
* the place where we're writing to, or the normal default, if not.
{
T(("_nc_tic_dir %s", NonNull(path)));
if (!KeepTicDirectory) {
- if (path != 0) {
- TicDirectory = path;
+ if (path != NULL) {
+ if (path != TicDirectory)
+ update_tic_dir(strdup(path));
HaveTicDirectory = TRUE;
} else if (HaveTicDirectory == 0) {
if (use_terminfo_vars()) {
FreeIfNeeded(my_vars[which].value);
my_vars[which].value = 0;
}
+ update_tic_dir(NULL);
}
#endif
#define TRACE_NUM(n) /* nothing */
#endif
-MODULE_ID("$Id: write_entry.c,v 1.119 2022/02/26 20:59:58 tom Exp $")
+MODULE_ID("$Id: write_entry.c,v 1.120 2022/04/23 19:59:10 tom Exp $")
static int total_written;
static int total_parts;
|| getcwd(actual, sizeof(actual)) == 0)
_nc_err_abort("%s: not a directory", destination);
#endif
- _nc_keep_tic_dir(strdup(actual));
+ _nc_keep_tic_dir(actual);
}
/*
-ncurses6 (6.3+20220416) unstable; urgency=low
+ncurses6 (6.3+20220423) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 16 Apr 2022 08:59:30 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 23 Apr 2022 08:44:18 -0400
ncurses6 (5.9-20131005) unstable; urgency=low
-ncurses6 (6.3+20220416) unstable; urgency=low
+ncurses6 (6.3+20220423) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 16 Apr 2022 08:59:30 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 23 Apr 2022 08:44:18 -0400
ncurses6 (5.9-20131005) unstable; urgency=low
-ncurses6 (6.3+20220416) unstable; urgency=low
+ncurses6 (6.3+20220423) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 16 Apr 2022 08:59:30 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 23 Apr 2022 08:44:18 -0400
ncurses6 (5.9-20120608) unstable; urgency=low
-; $Id: mingw-ncurses.nsi,v 1.515 2022/04/16 12:59:30 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.516 2022/04/23 12:44:18 tom Exp $\r
\r
; TODO add examples\r
; TODO bump ABI to 6\r
!define VERSION_MAJOR "6"\r
!define VERSION_MINOR "3"\r
!define VERSION_YYYY "2022"\r
-!define VERSION_MMDD "0416"\r
+!define VERSION_MMDD "0423"\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.3
-Release: 20220416
+Release: 20220423
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.3
-Release: 20220416
+Release: 20220423
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.3
-Release: 20220416
+Release: 20220423
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
#include <parametrized.h>
#include <transform.h>
-MODULE_ID("$Id: tic.c,v 1.310 2022/04/09 22:17:45 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.311 2022/04/23 19:47:57 tom Exp $")
#define STDIN_NAME "<stdin>"
const char *tried = 0;
if (outdir == NULL) {
- outdir = _nc_tic_dir(0);
+ outdir = _nc_tic_dir(NULL);
}
if ((result = valid_db_path(outdir)) != 0) {
printf("%s\n", result);
if (total != 0)
fprintf(log_fp, "%d entries written to %s\n",
total,
- _nc_tic_dir((char *) 0));
+ _nc_tic_dir(NULL));
else
fprintf(log_fp, "No entries written\n");
}