+ improve man/curs_mouse.3x style (Brandon Robinson, Sven Joachim).
+ provide for CCHARW_MAX greater than 1
+ eliminate use of PATH_MAX in lib_trace.c
+ work around misconfiguration of MacPorts gcc13, which exposes invalid
definition of MB_LEN_MAX in gcc's fallback copy of limits.h (MacPorts
#69374).
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.4081 2024/02/17 22:44:28 tom Exp $
+-- $Id: NEWS,v 1.4086 2024/02/24 20:06:19 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.
+20240224
+ + improve man/curs_mouse.3x style (Brandon Robinson, Sven Joachim).
+ + provide for CCHARW_MAX greater than 1
+ + eliminate use of PATH_MAX in lib_trace.c
+ + work around misconfiguration of MacPorts gcc13, which exposes invalid
+ definition of MB_LEN_MAX in gcc's fallback copy of limits.h (MacPorts
+ #69374).
+
20240217
+ add vt100+noapp, vt100+noapp+pc, xterm+app+pc, xterm+decedit from
xterm #389 -TD
-5:0:10 6.4 20240217
+5:0:10 6.4 20240224
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1598 2024/02/17 11:23:23 tom Exp $
+# $Id: dist.mk,v 1.1599 2024/02/24 11:49:33 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 = 20240217
+NCURSES_PATCH = 20240224
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
<!--
****************************************************************************
- * 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 *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_initscr.3x,v 1.60 2023/12/23 16:27:25 tom Exp @
+ * @Id: curs_initscr.3x,v 1.62 2024/02/24 20:03:50 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_initscr 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_initscr 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_initscr 3x 2023-12-23 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_initscr 3x 2024-02-24 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
library:
<STRONG>SIGINT</STRONG>
- The handler <EM>attempts</EM> to cleanup the screen on exit. Although it
+ The handler <EM>attempts</EM> to clean up the screen on exit. Although it
<EM>usually</EM> works as expected, there are limitations:
<STRONG>o</STRONG> Walking the <EM>SCREEN</EM> list is unsafe, since all list management
-ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+ncurses 6.4 2024-02-24 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_kernel.3x,v 1.53 2024/01/05 21:46:58 tom Exp @
+ * @Id: curs_kernel.3x,v 1.54 2024/02/24 19:57:34 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_kernel 3x 2024-01-05 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_kernel 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_kernel 3x 2024-01-05 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_kernel 3x 2024-02-24 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
-ncurses 6.4 2024-01-05 <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+ncurses 6.4 2024-02-24 <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_mouse.3x,v 1.89 2024/02/17 21:43:03 tom Exp @
+ * @Id: curs_mouse.3x,v 1.92 2024/02/24 19:54:30 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_mouse 3x 2024-02-17 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_mouse 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_mouse 3x 2024-02-17 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_mouse 3x 2024-02-24 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
<STRONG>o</STRONG> If <EM>oldmask</EM> is non-<STRONG>NULL</STRONG>, this function fills the indicated location
with the previous value of the current screen's mouse event mask.
- As a side effect, setting a zero mousemask may turn off the mouse
+ As a side effect, setting a zero mouse mask may turn off the mouse
pointer; setting a nonzero mask may turn it on. Whether this happens
is device-dependent.
or vice versa. The resulting <STRONG>stdscr</STRONG>-relative coordinates are not
always identical to screen coordinates due to the mechanism to reserve
lines on top or bottom of the screen for other purposes (see the
- <STRONG>ripoffline</STRONG> and <STRONG><A HREF="curs_slk.3x.html">slk_init(3x)</A></STRONG> calls, for example).
+ <STRONG><A HREF="curs_kernel.3x.html">ripoffline(3x)</A></STRONG> and <STRONG><A HREF="curs_slk.3x.html">slk_init(3x)</A></STRONG> calls, for example).
<STRONG>o</STRONG> If the parameter <EM>to</EM><STRONG>_</STRONG><EM>screen</EM> is <STRONG>TRUE</STRONG>, the pointers <EM>pY,</EM> <EM>pX</EM> must
reference the coordinates of a location inside the window <EM>win</EM>.
</PRE><H3><a name="h3-mouseinterval">mouseinterval</a></H3><PRE>
The <STRONG>mouseinterval</STRONG> function sets the maximum time (in thousands of a
second) that can elapse between press and release events for them to be
- resolved as a click.
+ resolved as a <EM>click.</EM> An application might interpret button press and
+ release events separated by more than the mouse interval as a "long
+ press", or, with motion, as a "drag".
- Calling <STRONG>mouseinterval(0)</STRONG> disables click resolution. When ncurses
+ Calling <STRONG>mouseinterval(0)</STRONG> disables click resolution. When <EM>ncurses</EM>
detects a mouse event, it awaits further input activity up to this
interval, and then checks for a subsequent mouse event which can be
combined with the first event. If the timeout expires without input
-ncurses 6.4 2024-02-17 <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
+ncurses 6.4 2024-02-24 <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_terminfo.3x,v 1.129 2024/01/13 22:15:55 tom Exp @
+ * @Id: curs_terminfo.3x,v 1.130 2024/02/24 20:04:09 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_terminfo 3x 2024-01-13 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_terminfo 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_terminfo 3x 2024-01-13 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_terminfo 3x 2024-02-24 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
the corresponding stream. In addition to the limitation that the
terminal was left in block-buffered mode on exit (like System V
<EM>curses</EM>), it was problematic because <EM>ncurses</EM> did not allow a reliable
- way to cleanup on receiving <STRONG>SIGTSTP</STRONG>.
+ way to clean up on receiving <STRONG>SIGTSTP</STRONG>.
The current version (ncurses6) uses output buffers managed directly by
<EM>ncurses.</EM> Some of the low-level functions described in this manual page
-ncurses 6.4 2024-01-13 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ncurses 6.4 2024-02-24 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<!--
****************************************************************************
- * Copyright 2019-2022,2023 Thomas E. Dickey *
+ * Copyright 2019-2023,2024 Thomas E. Dickey *
* Copyright 2000-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_trace.3x,v 1.42 2023/12/23 16:08:25 tom Exp @
+ * @Id: curs_trace.3x,v 1.44 2024/02/24 20:01:11 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_trace 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_trace 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_trace 3x 2023-12-23 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_trace 3x 2024-02-24 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
These functions check the <EM>NCURSES</EM><STRONG>_</STRONG><EM>TRACE</EM> environment variable, to set
the tracing feature as if <STRONG>curses_trace</STRONG> was called:
- filter, initscr, new_prescr, newterm, nofilter, restartterm,
- ripoffline, setupterm, slk_init, tgetent, use_env,
- use_extended_names, use_tioctl
+ <STRONG>filter</STRONG>, <STRONG>initscr</STRONG>, <STRONG>new_prescr</STRONG>, <STRONG>newterm</STRONG>, <STRONG>nofilter</STRONG>, <STRONG>restartterm</STRONG>,
+ <STRONG>ripoffline</STRONG>, <STRONG>setupterm</STRONG>, <STRONG>slk_init</STRONG>, <STRONG>tgetent</STRONG>, <STRONG>use_env</STRONG>,
+ <STRONG>use_extended_names</STRONG>, <STRONG>use_tioctl</STRONG>
</PRE><H3><a name="h3-Command-line-Utilities">Command-line Utilities</a></H3><PRE>
-ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
+ncurses 6.4 2024-02-24 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_util.3x,v 1.95 2024/01/05 21:46:58 tom Exp @
+ * @Id: curs_util.3x,v 1.96 2024/02/24 19:22:01 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_util 3x 2024-01-05 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_util 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_util 3x 2024-01-05 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_util 3x 2024-02-24 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
-ncurses 6.4 2024-01-05 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+ncurses 6.4 2024-02-24 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: ncurses.3x,v 1.197 2024/01/13 20:30:39 tom Exp @
+ * @Id: ncurses.3x,v 1.200 2024/02/24 20:03:50 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>ncurses 3x 2024-01-13 ncurses 6.4 Library calls</TITLE>
+<TITLE>ncurses 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">ncurses 3x 2024-01-13 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">ncurses 3x 2024-02-24 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> Library calls <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
method of updating character screens with reasonable optimization.
This implementation is "new curses" (<EM>ncurses</EM>) and is the approved
replacement for 4.4BSD classic curses, which has been discontinued.
- This describes <EM>ncurses</EM> version 6.4 (patch 20240217).
+ This describes <EM>ncurses</EM> version 6.4 (patch 20240224).
The <EM>ncurses</EM> library emulates the curses library of System V Release 4
Unix ("SVr4"), and XPG4 (X/Open Portability Guide) curses (also known
If the locale is not initialized, the library assumes that characters
are printable as in ISO-8859-1, to work with certain legacy programs.
You should initialize the locale and not rely on specific details of
- the library when the locale has not been setup.
+ the library when the locale has not been set up.
The function <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> must be called to initialize the
library before any of the other routines that deal with windows and
</PRE><H3><a name="h3-BAUDRATE"><EM>BAUDRATE</EM></a></H3><PRE>
The debugging library checks this environment variable when the
application has redirected output to a file. The variable's numeric
- value is used for the baudrate. If no value is found, <EM>ncurses</EM> uses
+ value is used for the baud rate. If no value is found, <EM>ncurses</EM> uses
9600. This allows testers to construct repeatable test-cases that take
- into account costs that depend on baudrate.
+ into account costs that depend on baud rate.
</PRE><H3><a name="h3-COLUMNS"><EM>COLUMNS</EM></a></H3><PRE>
-ncurses 6.4 2024-01-13 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+ncurses 6.4 2024-02-24 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
have, by specifying how to perform screen operations, and by specifying
padding requirements and initialization sequences.
- This manual describes <EM>ncurses</EM> version 6.4 (patch 20240217).
+ This manual describes <EM>ncurses</EM> version 6.4 (patch 20240224).
</PRE><H3><a name="h3-terminfo-Entry-Syntax"><EM>terminfo</EM> Entry Syntax</a></H3><PRE>
/****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 2018-2021,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* Author: Juergen Pfeifer, 1995,1997 *
****************************************************************************/
-/* $Id: form.priv.h,v 0.48 2021/06/17 21:30:22 tom Exp $ */
+/* $Id: form.priv.h,v 0.49 2024/02/24 12:17:31 tom Exp $ */
#ifndef FORM_PRIV_H
#define FORM_PRIV_H 1
#include <wctype.h>
#endif
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 8 /* should be >= MB_CUR_MAX, but that may be a function */
-#endif
-
#define FIELD_CELL NCURSES_CH_T
#define NCURSES_FIELD_INTERNALS char** expanded; WINDOW *working;
.\"***************************************************************************
-.\" 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 *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_initscr.3x,v 1.60 2023/12/23 16:27:25 tom Exp $
-.TH curs_initscr 3X 2023-12-23 "ncurses 6.4" "Library calls"
+.\" $Id: curs_initscr.3x,v 1.62 2024/02/24 20:03:50 tom Exp $
+.TH curs_initscr 3X 2024-02-24 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
(\fIgn\fP) capability.
Generic entries are detected by \fBsetupterm\fP(3X)
and cannot be used for full-screen operation.
-Other implementations may handle a missing/empty \fITERM\fP variable differently.
+Other implementations may handle
+a missing/empty \fITERM\fP variable differently.
.SS "Signal Handlers"
Quoting from X/Open Curses Issue 7, section 3.1.1:
.RS 5
handlers \fIafter\fP initializing the library:
.TP 5
.B SIGINT
-The handler \fIattempts\fP to cleanup the screen on exit.
+The handler \fIattempts\fP to clean up the screen on exit.
Although it \fIusually\fP works as expected, there are limitations:
.RS 5
.bP
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_kernel.3x,v 1.53 2024/01/05 21:46:58 tom Exp $
-.TH curs_kernel 3X 2024-01-05 "ncurses 6.4" "Library calls"
+.\" $Id: curs_kernel.3x,v 1.54 2024/02/24 19:57:34 tom Exp $
+.TH curs_kernel 3X 2024-02-24 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
The \fBripoffline\fP routine provides access to the same facility that
\fBslk_init\fP [see \fBcurs_slk\fP(3X)] uses to reduce the size of the
screen.
-\fBripoffline\fP must be called before \fBinitscr\fP or
+\fB\%ripoffline\fP must be called before \fBinitscr\fP or
\fBnewterm\fP is called, to prepare these initial actions:
.bP
If \fIline\fP is positive, a line is removed from the top of \fBstdscr\fP.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_mouse.3x,v 1.89 2024/02/17 21:43:03 tom Exp $
-.TH curs_mouse 3X 2024-02-17 "ncurses 6.4" "Library calls"
+.\" $Id: curs_mouse.3x,v 1.92 2024/02/24 19:54:30 tom Exp $
+.TH curs_mouse 3X 2024-02-24 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
this function fills the indicated location with the previous value of the
current screen's mouse event mask.
.PP
-As a side effect, setting a zero mousemask may turn off the mouse pointer;
+As a side effect, setting a zero mouse mask may turn off the mouse pointer;
setting a nonzero mask may turn it on.
Whether this happens is device-dependent.
.SS "Mouse Events"
If the parameter is a pad,
\fB\%wenclose\fP uses the most recent screen coordinates used for
this pad in
-\fP\%prefresh\fP(3X) or
-\fP\%pnoutrefresh\fP(3X).
+\fB\%prefresh\fP(3X) or
+\fB\%pnoutrefresh\fP(3X).
.SS wmouse_trafo
The \fB\%wmouse_trafo\fP function transforms a given pair of coordinates
from \fB\%stdscr\fP-relative coordinates
The resulting \fB\%stdscr\fP-relative coordinates are not always
identical to screen coordinates due to the mechanism to reserve
lines on top or bottom of the screen for other purposes
-(see the \fB\%ripoffline\fP and \fB\%slk_init\fP(3X) calls, for example).
+(see the \fB\%ripoffline\fP(3X) and \fB\%slk_init\fP(3X) calls, for example).
.bP
If the parameter \fIto_screen\fP is \fBTRUE\fP, the pointers
\fIpY, pX\fP must reference the coordinates of a location
The \fB\%mouseinterval\fP function sets the maximum time
(in thousands of a second)
that can elapse between press and release events for them to
-be resolved as a click.
+be resolved as a
+.I click.
+An application might interpret button press and release events separated
+by more than the mouse interval as a \*(``long press\*('',
+or,
+with motion,
+as a \*(``drag\*(''.
.PP
Calling \fB\%mouseinterval(0)\fP disables click resolution.
-When ncurses detects a mouse event,
+When
+.I \%ncurses
+detects a mouse event,
it awaits further input activity up to this interval,
and then checks for a subsequent mouse event which can be combined
with the first event.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_terminfo.3x,v 1.129 2024/01/13 22:15:55 tom Exp $
-.TH curs_terminfo 3X 2024-01-13 "ncurses 6.4" "Library calls"
+.\" $Id: curs_terminfo.3x,v 1.130 2024/02/24 20:04:09 tom Exp $
+.TH curs_terminfo 3X 2024-02-24 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.IR curses ),
it was problematic because
.I \%ncurses
-did not allow a reliable way to cleanup on receiving
+did not allow a reliable way to clean up on receiving
.BR SIGTSTP .
.PP
The current version (ncurses6)
.\"***************************************************************************
-.\" Copyright 2019-2022,2023 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 2000-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_trace.3x,v 1.42 2023/12/23 16:08:25 tom Exp $
-.TH curs_trace 3X 2023-12-23 "ncurses 6.4" "Library calls"
+.\" $Id: curs_trace.3x,v 1.44 2024/02/24 20:01:11 tom Exp $
+.TH curs_trace 3X 2024-02-24 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
These functions check the \fI\%NCURSES_TRACE\fP environment variable,
to set the tracing feature as if \fBcurses_trace\fP was called:
.RS 4
+.na
.PP
-filter,
-initscr,
-new_prescr,
-newterm,
-nofilter,
-restartterm,
-ripoffline,
-setupterm,
-slk_init,
-tgetent,
-use_env,
-use_extended_names,
-use_tioctl
+\fB\%filter\fP,
+\fB\%initscr\fP,
+\fB\%new_prescr\fP,
+\fB\%newterm\fP,
+\fB\%nofilter\fP,
+\fB\%restartterm\fP,
+\fB\%ripoffline\fP,
+\fB\%setupterm\fP,
+\fB\%slk_init\fP,
+\fB\%tgetent\fP,
+\fB\%use_env\fP,
+\fB\%use_extended_names\fP,
+\fB\%use_tioctl\fP
.RE
+.ad
.SS "Command-line Utilities"
The command-line utilities such as \fBtic\fP(1) provide a verbose option
which extends the set of messages written using the \fBcurses_trace\fP function.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_util.3x,v 1.95 2024/01/05 21:46:58 tom Exp $
-.TH curs_util 3X 2024-01-05 "ncurses 6.4" "Library calls"
+.\" $Id: curs_util.3x,v 1.96 2024/02/24 19:22:01 tom Exp $
+.TH curs_util 3X 2024-02-24 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
and were later (in 1988) incorporated into SVr4.
Oddly, there are no such functions in the 4.3BSD curses sources.
.bP
-Most implementations simply dump the binary \fI\%WINDOW\fP structure to the file.
+Most implementations simply dump the binary \fI\%WINDOW\fP structure
+to the file.
These include SVr4 curses, NetBSD and PDCurses,
as well as older \fI\%ncurses\fP versions.
This implementation
-# $Id: manhtml.aliases,v 1.32 2024/02/17 21:58:32 tom Exp $
+# $Id: manhtml.aliases,v 1.33 2024/02/24 20:02:49 tom Exp $
#***************************************************************************
# Copyright 2019-2023,2024 Thomas E. Dickey *
# Copyright 2013,2017 Free Software Foundation, Inc. *
refresh(3X) curs_refresh(3X)
reset_shell_mode(3X) curs_kernel(3X)
restartterm(3X) curs_terminfo(3X)
+ripoffline(3X) curs_kernel(3X)
set_curterm(3X) curs_terminfo(3X)
set_term(3X) curs_initscr(3X)
setcchar(3X) curs_getcchar(3X)
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: ncurses.3x,v 1.197 2024/01/13 20:30:39 tom Exp $
-.TH ncurses 3X 2024-01-13 "ncurses 6.4" "Library calls"
+.\" $Id: ncurses.3x,v 1.200 2024/02/24 20:03:50 tom Exp $
+.TH ncurses 3X 2024-02-24 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
the library assumes that characters are printable as in ISO\-8859\-1,
to work with certain legacy programs.
You should initialize the locale and not rely on specific details of
-the library when the locale has not been setup.
+the library when the locale has not been set up.
.PP
The function \fBinitscr\fP or \fBnewterm\fP
must be called to initialize the library
.SS "\fIBAUDRATE\fP"
The debugging library checks this environment variable when the application
has redirected output to a file.
-The variable's numeric value is used for the baudrate.
+The variable's numeric value is used for the baud rate.
If no value is found, \fI\%ncurses\fP uses 9600.
This allows testers to construct repeatable test-cases
-that take into account costs that depend on baudrate.
+that take into account costs that depend on baud rate.
.SS "\fICOLUMNS\fP"
Specify the width of the screen in characters.
Applications running in a windowing environment usually are able to
obtain the width of the window in which they are executing.
-If neither the \fI\%COLUMNS\fP value nor the terminal's screen size is available,
+If neither the \fI\%COLUMNS\fP value
+nor the terminal's screen size is available,
\fI\%ncurses\fP uses the size which may be specified in the terminfo
database
(i.e., the \fBcols\fP capability).
/****************************************************************************
- * 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 *
****************************************************************************/
/*
- * $Id: curses.priv.h,v 1.677 2023/11/10 15:11:11 tom Exp $
+ * $Id: curses.priv.h,v 1.685 2024/02/24 18:46:40 tom Exp $
*
* curses.priv.h
*
#include <unistd.h>
#endif
-#if HAVE_LIMITS_H
-# include <limits.h>
-#elif HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-
#include <assert.h>
#include <stdio.h>
# endif
#endif
-#ifndef PATH_MAX
-# if defined(_POSIX_PATH_MAX)
-# define PATH_MAX _POSIX_PATH_MAX
-# elif defined(MAXPATHLEN)
-# define PATH_MAX MAXPATHLEN
-# else
-# define PATH_MAX 255 /* the Posix minimum path-size */
-# endif
-#endif
-
#if DECL_ERRNO
extern int errno;
#endif
* string is less than 80 columns, but this buffer size is an absolute
* limit.
*/
+#define TRACECHR_BUF 40
#define TRACEMSE_MAX (80 + (5 * 10) + (32 * 15))
#define TRACEMSE_FMT "id %2d at (%2d, %2d, %2d) state %4lx = {" /* } */
#endif
#ifdef TRACE
- char tracechr_buf[40];
+ char tracechr_buf[TRACECHR_BUF];
char tracemse_buf[TRACEMSE_MAX];
#if USE_REENTRANT
long _outchars;
#define TR_PUTC(c) TR(TRACE_CHARPUT, ("PUTC %#x", UChar(c)))
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 16 /* should be >= MB_CUR_MAX, but that may be a function */
-#endif
-
#if USE_WIDEC_SUPPORT /* { */
/* true if the status/errno indicate an illegal multibyte sequence */
#define isEILSEQ(status) (((size_t)status == (size_t)-1) && (errno == EILSEQ))
#define NulColor /* nothing */
#endif
-#define NulChar 0,0,0,0 /* FIXME: see CCHARW_MAX */
+#if CCHARW_MAX > 6
+#define NulChar 0,0,0,0,0
+#elif CCHARW_MAX > 5
+#define NulChar 0,0,0,0 /* ncurses7 */
+#elif CCHARW_MAX > 4
+#define NulChar 0,0,0 /* ncurses6 */
+#elif CCHARW_MAX > 3
+#define NulChar 0,0
+#elif CCHARW_MAX > 2
+#define NulChar 0
+#else
+#define NulChar /* nothing */
+#endif
+
#define CharOf(c) ((c).chars[0])
#define AttrOf(c) ((c).attr)
#define NewChar2(c,a) { a, { c, NulChar } NulColor }
#define NewChar(ch) NewChar2(ChCharOf(ch), ChAttrOf(ch))
-#if CCHARW_MAX == 5
+#if CCHARW_MAX > 1
#define CharEq(a,b) (((a).attr == (b).attr) \
- && (a).chars[0] == (b).chars[0] \
- && (a).chars[1] == (b).chars[1] \
- && (a).chars[2] == (b).chars[2] \
- && (a).chars[3] == (b).chars[3] \
- && (a).chars[4] == (b).chars[4] \
+ && !memcmp((a).chars, \
+ (b).chars, \
+ CCHARW_MAX * sizeof((b).chars[0])) \
if_EXT_COLORS(&& (a).ext_color == (b).ext_color))
-#elif CCHARW_MAX > 0
-#error Inconsistent values for CCHARW_MAX
#else
#define CharEq(a,b) (!memcmp(&(a), &(b), sizeof(a)))
#endif
/****************************************************************************
- * Copyright 2018-2021,2023 Thomas E. Dickey *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* Author: Thomas E. Dickey *
****************************************************************************/
+#define NEW_PAIR_INTERNAL 1
#include <curses.priv.h>
-MODULE_ID("$Id: report_offsets.c,v 1.23 2023/09/23 16:47:57 tom Exp $")
+MODULE_ID("$Id: report_offsets.c,v 1.28 2024/02/24 15:59:09 tom Exp $")
#define show_size(type) \
flag = 0; \
last = 0; \
printf("%5lu " #type "\n", (unsigned long)sizeof(type))
+#define show_name(name) \
+ printf("%5lu " #name "\n", (unsigned long)(name))
#define show_offset(type,member) \
next = (unsigned long)offsetof(type,member); \
if (last > next) \
#if USE_WIDEC_SUPPORT
show_size(cchar_t);
#endif
+ show_size(color_t);
+ show_size(colorpair_t);
show_size(mmask_t);
+ show_size(rgb_bits_t);
show_size(MEVENT);
show_size(NCURSES_BOOL);
+ show_size(TRIES);
+
+ printf("\n");
+ printf("Sizes of buffers/arrays:\n");
+#if USE_WIDEC_SUPPORT
+ show_name(CCHARW_MAX);
+#endif
+ show_name(EV_MAX);
+ show_name(FIFO_SIZE);
+ show_name(NAMESIZE);
+ show_name(MB_LEN_MAX);
+ show_name(PATH_MAX);
+#ifdef TRACE
+ show_name(TRACECHR_BUF);
+ show_name(TRACEMSE_MAX);
+#endif
printf("\n");
show_size(SCREEN);
#endif
show_WIDECH(NCURSES_GLOBALS, key_name);
show_TRACES(NCURSES_GLOBALS, trace_opened);
+ show_TRACES(NCURSES_GLOBALS, trace_level);
show_MLEAKS(NCURSES_GLOBALS, leak_checking);
printf("\n");
/****************************************************************************
- * Copyright 2021,2023 Thomas E. Dickey *
+ * Copyright 2021-2023,2024 Thomas E. Dickey *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
****************************************************************************/
/*
- * $Id: term.priv.h,v 1.8 2023/09/16 15:16:38 tom Exp $
+ * $Id: term.priv.h,v 1.12 2024/02/24 18:11:38 tom Exp $
*
* term.priv.h
*
#define NCURSES_INTERNALS 1
#define NCURSES_OPAQUE 0
-#include <limits.h> /* PATH_MAX */
+#if HAVE_LIMITS_H
+# include <limits.h> /* PATH_MAX, MB_LEN_MAX, etc */
+#elif HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+
#include <signal.h> /* sig_atomic_t */
#include <time.h> /* time_t */
#include <term.h> /* time_t */
#endif
#endif
+/*
+ * If not properly configured to use the system's limits.h, we get gcc's
+ * fallback for limits.h which sets MB_LEN_MAX to 1, which is never correct.
+ */
+#if defined(MB_LEN_MAX) && (MB_LEN_MAX < 6)
+#undef MB_LEN_MAX
+#endif
+
+#ifndef MB_LEN_MAX
+#define MB_LEN_MAX 16 /* should be >= MB_CUR_MAX, but that may be a function */
+#endif
+
+#ifndef PATH_MAX
+# if defined(_POSIX_PATH_MAX)
+# define PATH_MAX _POSIX_PATH_MAX
+# elif defined(MAXPATHLEN)
+# define PATH_MAX MAXPATHLEN
+# else
+# define PATH_MAX 255 /* the Posix minimum path-size */
+# endif
+#endif
+
/*
* State of tparm().
*/
#ifdef TRACE
bool trace_opened;
- char trace_fname[PATH_MAX];
int trace_level;
FILE * trace_fp;
int trace_fd;
/****************************************************************************
- * Copyright 2018-2021,2022 Thomas E. Dickey *
+ * Copyright 2018-2022,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 <curses.priv.h>
-MODULE_ID("$Id: lib_data.c,v 1.87 2022/07/09 22:03:21 tom Exp $")
+MODULE_ID("$Id: lib_data.c,v 1.89 2024/02/24 18:11:38 tom Exp $")
/*
* OS/2's native linker complains if we don't initialize public data when
#endif
#ifdef TRACE
FALSE, /* trace_opened */
- CHARS_0s, /* trace_fname */
0, /* trace_level */
NULL, /* trace_fp */
-1, /* trace_fd */
/****************************************************************************
- * 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 <ctype.h>
-MODULE_ID("$Id: lib_trace.c,v 1.103 2023/05/28 14:39:10 tom Exp $")
+MODULE_ID("$Id: lib_trace.c,v 1.106 2024/02/24 18:28:19 tom Exp $")
NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
#define MyFP _nc_globals.trace_fp
#define MyFD _nc_globals.trace_fd
#define MyInit _nc_globals.trace_opened
-#define MyPath _nc_globals.trace_fname
#define MyLevel _nc_globals.trace_level
#define MyNested _nc_globals.nested_tracef
#endif /* TRACE */
if (MyFD >= 0) {
MyFP = fdopen(MyFD, BIN_W);
} else {
- if (MyPath[0] == '\0') {
- size_t size = sizeof(MyPath) - 12;
- if (getcwd(MyPath, size) == 0) {
- perror("curses: Can't get working directory");
- exit(EXIT_FAILURE);
- }
- MyPath[size] = '\0';
- assert(strlen(MyPath) <= size);
- _nc_STRCAT(MyPath, "/trace", sizeof(MyPath));
- if (_nc_is_dir_path(MyPath)) {
- _nc_STRCAT(MyPath, ".log", sizeof(MyPath));
- }
+ char myFile[80];
+
+ _nc_STRCPY(myFile, "trace", sizeof(myFile));
+ if (_nc_is_dir_path(myFile)) {
+ _nc_STRCAT(myFile, ".log", sizeof(myFile));
}
#define SAFE_MODE (O_CREAT | O_EXCL | O_RDWR)
- if (_nc_access(MyPath, W_OK) < 0
- || (MyFD = safe_open3(MyPath, SAFE_MODE, 0600)) < 0
+ if (_nc_access(myFile, W_OK) < 0
+ || (MyFD = safe_open3(myFile, SAFE_MODE, 0600)) < 0
|| (MyFP = fdopen(MyFD, BIN_W)) == 0) {
; /* EMPTY */
}
-ncurses6 (6.4+20240217) unstable; urgency=low
+ncurses6 (6.4+20240224) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 17 Feb 2024 06:23:23 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 24 Feb 2024 06:49:33 -0500
ncurses6 (5.9+20131005) unstable; urgency=low
-ncurses6 (6.4+20240217) unstable; urgency=low
+ncurses6 (6.4+20240224) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 17 Feb 2024 06:23:23 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 24 Feb 2024 06:49:33 -0500
ncurses6 (5.9+20131005) unstable; urgency=low
-ncurses6 (6.4+20240217) unstable; urgency=low
+ncurses6 (6.4+20240224) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 17 Feb 2024 06:23:23 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 24 Feb 2024 06:49:33 -0500
ncurses6 (5.9+20120608) unstable; urgency=low
-; $Id: mingw-ncurses.nsi,v 1.633 2024/02/17 11:23:23 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.634 2024/02/24 11:49:33 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 "0217"\r
+!define VERSION_MMDD "0224"\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: 20240217
+Release: 20240224
License: X11
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.4
-Release: 20240217
+Release: 20240224
License: X11
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.4
-Release: 20240217
+Release: 20240224
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz