+ modify experimental Windows driver to work with xterm mouse protocol.
+ remove DECCOLM+DECSCLM from foot (patch by Daniel Ekloef).
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3919 2023/03/12 00:14:16 tom Exp $
+-- $Id: NEWS,v 1.3923 2023/04/01 23:29:48 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.
+20230401
+ + modify experimental Windows driver to work with xterm mouse protocol.
+ + remove DECCOLM+DECSCLM from foot (patch by Daniel Ekloef).
+
20230311
+ improve manpage description for addch versus unctrl format used for
non-printable characters.
-5:0:10 6.4 20230311
+5:0:10 6.4 20230401
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1530 2023/03/11 12:02:16 tom Exp $
+# $Id: dist.mk,v 1.1533 2023/04/01 11:05: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 = 20230311
+NCURSES_PATCH = 20230401
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
-# $Revision: 1.1052 $
-# $Date: 2023/01/28 23:21:43 $
+# $Revision: 1.1056 $
+# $Date: 2023/04/01 23:24:35 $
#
# The original header is preserved below for reference. It is noted that there
# is a "newer" version which differs in some cosmetic details (but actually
# Windows Terminal (Preview)
# https://github.com/microsoft/terminal
#
+# Windows 10 22H2 (also Windows 11)
+# Version 1.16.10261.0
+#
+# - Windows Terminal #1553: "Feature Request: Mouse/Touch/Pointer Bindings
+# (like middle-click paste, right-click context menu, etc.)", compare to
+# https://learn.microsoft.com/en-us/windows/console/mouse-event-record-str
+# This appears to be related to a problem with its implementation of the
+# Console API; the mouse does not work in a "Command Window" (e.g., as used
+# in the ncurses MinGW driver), although escape sequences work.
+#
# Windows 10 21H1
# Version 1.9.1942.0
#
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
cub1=^H, cud1=\n, dim=\E[2m, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
el1=\E[1K, flash=\E]555\E\\, ind=\n, invis=\E[8m,
- is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^?, kcbt=\E[Z,
- oc=\E]104\E\\, op=\E[39;49m, rev=\E[7m, ri=\EM, rmacs=\E(B,
- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
+ is2=\E[!p\E[4l\E>, kbs=^?, kcbt=\E[Z, oc=\E]104\E\\,
+ op=\E[39;49m, rev=\E[7m, ri=\EM, rmacs=\E(B, rmam=\E[?7l,
+ rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
+ rs2=\E[!p\E[4l\E>,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;
%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smkx=\E[?1h\E=,
# + correct PS vs PE names in bracketed+paste (report by Bram Moolenaar)
# -TD
#
-# 2022-01-07
+# 2023-01-07
# + add comment to bracketed+paste explaining that vim patch 9.0.1117 is
# needed for use with the updated xterm descriptions (suggested by Bram
# Moolenaar).
# + add RV report+version (suggested by Bram Moolenaar).
#
-# 2022-01-14
+# 2023-01-14
# + change RV to XR/xr, to avoid conflict with pre-existing usage in vim,
# to use RV/rv to denote DA2 and its response (discussion with Bram
# Moolenaar) -TD
# of terminals which may support focus in/out -TD
# + use xterm+focus in xterm-p370 and tmux -TD
#
-# 2022-01-28
+# 2023-01-28
# + document XF, kxIN and kxOUT -TD
# + add note on sun/wscons/cmdtool/shelltool -TD
#
+# 2023-04-01
+# + remove DECCOLM+DECSCLM from foot (patch by Daniel Ekloef).
+#
######## SHANTIH! SHANTIH! SHANTIH!
/****************************************************************************
- * Copyright 2018-2021,2022 Thomas E. Dickey *
+ * Copyright 2018-2022,2023 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_mouse.c,v 1.197 2022/08/13 14:13:12 tom Exp $")
+MODULE_ID("$Id: lib_mouse.c,v 1.198 2023/03/25 23:27:28 tom Exp $")
#include <tic.h>
}
#endif /* USE_SYSMOUSE */
-#ifndef USE_TERM_DRIVER
+#if !defined(USE_TERM_DRIVER) || defined(EXP_WIN32_DRIVER)
#define xterm_kmous "\033[M"
static void
static void
enable_xterm_mouse(SCREEN *sp, int enable)
{
+ TPUTS_TRACE(enable
+ ? "xterm mouse initialization"
+ : "xterm mouse deinitialization");
#if USE_EMX_MOUSE
sp->_emxmouse_activated = enable;
#else
sp->_mouse_active = enable;
}
+#if defined(USE_TERM_DRIVER)
+static void
+enable_win32_mouse(SCREEN *sp, int enable)
+{
+#if defined(EXP_WIN32_DRIVER)
+ enable_xterm_mouse(sp, enable);
+#else
+ sp->_mouse_active = enable;
+#endif
+}
+#endif
+
#if USE_GPM_SUPPORT
static bool
allow_gpm_mouse(SCREEN *sp GCC_UNUSED)
#ifdef USE_TERM_DRIVER
CallDriver(sp, td_initmouse);
-#else
+#endif
+#if !defined(USE_TERM_DRIVER) || defined(EXP_WIN32_DRIVER)
/* we know how to recognize mouse events under "xterm" */
if (NonEmpty(key_mouse)) {
init_xterm_mouse(sp);
{
bool result = FALSE;
+ T((T_CALLED("_nc_mouse_init(%p)"), sp));
+
if (sp != 0) {
if (!sp->_mouse_initialized) {
int i;
sp->_mouse_initialized = TRUE;
- TR(MY_TRACE, ("_nc_mouse_init() called"));
+ TR(MY_TRACE, ("set _mouse_initialized"));
sp->_mouse_eventp = FirstEV(sp);
for (i = 0; i < EV_MAX; i++)
initialize_mousetype(sp);
- T(("_nc_mouse_init() set mousetype to %d", sp->_mouse_type));
+ T(("set _mouse_type to %d", sp->_mouse_type));
}
result = sp->_mouse_initialized;
}
- return result;
+ returnCode(result);
}
/*
static void
mouse_activate(SCREEN *sp, int on)
{
+ T((T_CALLED("mouse_activate(%p,%s)"),
+ (void *) SP_PARM, on ? "on" : "off"));
+
if (!on && !sp->_mouse_initialized)
- return;
+ returnVoid;
if (!_nc_mouse_init(sp))
- return;
+ returnVoid;
if (on) {
sp->_mouse_bstate = 0;
#if NCURSES_EXT_FUNCS
NCURSES_SP_NAME(keyok) (NCURSES_SP_ARGx KEY_MOUSE, on);
#endif
- TPUTS_TRACE("xterm mouse initialization");
enable_xterm_mouse(sp, 1);
break;
#if USE_GPM_SUPPORT
#endif
#ifdef USE_TERM_DRIVER
case M_TERM_DRIVER:
- sp->_mouse_active = TRUE;
+ enable_win32_mouse(sp, TRUE);
break;
#endif
case M_NONE:
- return;
+ returnVoid;
+ default:
+ T(("unexpected mouse mode"));
+ break;
}
/* Make runtime binding to cut down on object size of applications that
* do not use the mouse (e.g., 'clear').
*/
- sp->_mouse_event = _nc_mouse_event;
+ /* *INDENT-EQLS* */
+ sp->_mouse_event = _nc_mouse_event;
sp->_mouse_inline = _nc_mouse_inline;
- sp->_mouse_parse = _nc_mouse_parse;
+ sp->_mouse_parse = _nc_mouse_parse;
sp->_mouse_resume = _nc_mouse_resume;
- sp->_mouse_wrap = _nc_mouse_wrap;
+ sp->_mouse_wrap = _nc_mouse_wrap;
} else {
switch (sp->_mouse_type) {
case M_XTERM:
- TPUTS_TRACE("xterm mouse deinitialization");
enable_xterm_mouse(sp, 0);
break;
#if USE_GPM_SUPPORT
#endif
#ifdef USE_TERM_DRIVER
case M_TERM_DRIVER:
- sp->_mouse_active = FALSE;
+ enable_win32_mouse(sp, FALSE);
break;
#endif
case M_NONE:
- return;
+ returnVoid;
+ default:
+ T(("unexpected mouse mode"));
+ break;
}
}
NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
+ returnVoid;
}
/**************************************************************************
****************************************************************************/
/*
- * $Id: curses.priv.h,v 1.660 2023/02/25 21:24:20 tom Exp $
+ * $Id: curses.priv.h,v 1.661 2023/03/25 23:12:24 tom Exp $
*
* curses.priv.h
*
#define returnMMask(code) TRACE_RETURN_SP(code,mmask_t)
#define returnPtr(code) TRACE_RETURN1(code,ptr)
#define returnSP(code) TRACE_RETURN1(code,sp)
-#define returnVoid T((T_RETURN(""))); return
+#define returnVoid { T((T_RETURN(""))); return; }
#define returnVoidPtr(code) TRACE_RETURN1(code,void_ptr)
#define returnWin(code) TRACE_RETURN1(code,win)
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2023 Thomas E. Dickey *
* Copyright 2008-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#define CUR TerminalType(my_term).
-MODULE_ID("$Id: win32_driver.c,v 1.2 2020/11/21 23:35:56 tom Exp $")
+MODULE_ID("$Id: win32_driver.c,v 1.3 2023/03/25 14:08:36 tom Exp $")
#define WINMAGIC NCDRV_MAGIC(NCDRV_WINCONSOLE)
#define EXP_OPTIMIZE 0
{
SCREEN *sp;
+ T((T_CALLED("win32con::wcon_initmouse(%p)"), TCB));
+
if (validateConsoleHandle()) {
SetSP();
sp->_mouse_type = M_TERM_DRIVER;
}
+ returnVoid;
}
static int
int rc = 0;
SCREEN *sp;
+ T((T_CALLED("win32con::wcon_testmouse(%p)"), TCB));
if (validateConsoleHandle()) {
SetSP();
}
}
- return rc;
+ returnCode(rc);
}
static int
-ncurses6 (6.4+20230311) unstable; urgency=low
+ncurses6 (6.4+20230401) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 05 Mar 2023 13:16:04 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 01 Apr 2023 07:05:21 -0400
ncurses6 (5.9+20131005) unstable; urgency=low
-ncurses6 (6.4+20230311) unstable; urgency=low
+ncurses6 (6.4+20230401) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 05 Mar 2023 13:16:04 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 01 Apr 2023 07:05:21 -0400
ncurses6 (5.9+20131005) unstable; urgency=low
-ncurses6 (6.4+20230311) unstable; urgency=low
+ncurses6 (6.4+20230401) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 05 Mar 2023 13:16:04 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 01 Apr 2023 07:05:21 -0400
ncurses6 (5.9+20120608) unstable; urgency=low
-; $Id: mingw-ncurses.nsi,v 1.569 2023/03/05 18:16:04 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.572 2023/04/01 11:05: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 "0311"\r
+!define VERSION_MMDD "0401"\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: 20230311
+Release: 20230401
License: X11
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.4
-Release: 20230311
+Release: 20230401
License: X11
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.4
-Release: 20230311
+Release: 20230401
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz