+ improve tracemunch logic for "RUN" compaction.
+ fix a special case in wresize() where copying the old text did not
check if the last cell on a row was the beginning of a fullwidth
character (adapted from patch by Benno Schulenberg).
+ use vt52+keypad in xterm-vt52, from xterm #354 -TD
+ improve see-also section of user_caps.5
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3475 2020/04/11 17:01:12 tom Exp $
+-- $Id: NEWS,v 1.3477 2020/04/18 23:57:32 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.
+20200418
+ + improve tracemunch logic for "RUN" compaction.
+ + fix a special case in wresize() where copying the old text did not
+ check if the last cell on a row was the beginning of a fullwidth
+ character (adapted from patch by Benno Schulenberg).
+ + use vt52+keypad in xterm-vt52, from xterm #354 -TD
+ + improve see-also section of user_caps.5
+
20200411
+ fix find_pair(), overlooked when refactoring for _nc_reserve_pairs()
(report/testcase by Brad Town, cf: 20170812).
-5:0:10 6.2 20200411
+5:0:10 6.2 20200418
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1345 2020/04/11 13:11:52 tom Exp $
+# $Id: dist.mk,v 1.1346 2020/04/18 09:00: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 = 2
-NCURSES_PATCH = 20200411
+NCURSES_PATCH = 20200418
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_print.3x,v 1.14 2020/02/02 23:34:34 tom Exp @
+ * @Id: curs_print.3x,v 1.15 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
The <STRONG>mcprint</STRONG> function returns <STRONG>ERR</STRONG> if the write operation aborted for
- some reason. In this case, errno will contain either an error associ-
+ some reason. In this case, <STRONG>errno</STRONG> will contain either an error associ-
ated with <STRONG>write(2)</STRONG> or one of the following:
ENODEV
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form.3x,v 1.34 2020/02/02 23:34:34 tom Exp @
+ * @Id: form.3x,v 1.35 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- Routines that return pointers return <STRONG>NULL</STRONG> on error, and set errno to
+ Routines that return pointers return <STRONG>NULL</STRONG> on error, and set <STRONG>errno</STRONG> to
the corresponding error-code returned by functions returning an inte-
ger. Routines that return an integer return one of the following error
codes:
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
descriptions of the entry points.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field.3x,v 1.14 2020/02/02 23:34:34 tom Exp @
+ * @Id: form_field.3x,v 1.15 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
The function <STRONG>form_fields</STRONG> returns a pointer (which may be <STRONG>NULL</STRONG>). It
- does not set errno.
+ does not set <STRONG>errno</STRONG>.
The function <STRONG>field_count</STRONG> returns <STRONG>ERR</STRONG> if the <EM>form</EM> parameter is <STRONG>NULL</STRONG>.
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_buffer.3x,v 1.25 2020/02/02 23:34:34 tom Exp @
+ * @Id: form_field_buffer.3x,v 1.26 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- The <STRONG>field_buffer</STRONG> function returns NULL on error. It sets errno accord-
+ The <STRONG>field_buffer</STRONG> function returns NULL on error. It sets <STRONG>errno</STRONG> accord-
ing to their success:
<STRONG>E_OK</STRONG> The routine succeeded.
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_new.3x,v 1.21 2020/02/02 23:34:34 tom Exp @
+ * @Id: form_field_new.3x,v 1.22 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- The function, <STRONG>new_field</STRONG>, <STRONG>dup_field</STRONG>, <STRONG>link_field</STRONG> return <STRONG>NULL</STRONG> on error.
- They set errno according to their success:
+ The functions <STRONG>new_field</STRONG>, <STRONG>dup_field</STRONG>, <STRONG>link_field</STRONG> return <STRONG>NULL</STRONG> on error.
+ They set <STRONG>errno</STRONG> according to their success:
<STRONG>E_OK</STRONG> The routine succeeded.
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_userptr.3x,v 1.13 2020/02/02 23:34:34 tom Exp @
+ * @Id: form_field_userptr.3x,v 1.14 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
The function <STRONG>field_userptr</STRONG> returns a pointer (which may be <STRONG>NULL</STRONG>). It
- does not set errno.
+ does not set <STRONG>errno</STRONG>.
The function <STRONG>set_field_userptr</STRONG> returns <STRONG>E_OK</STRONG> (success).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_fieldtype.3x,v 1.20 2020/02/02 23:34:34 tom Exp @
+ * @Id: form_fieldtype.3x,v 1.21 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- The pointer-valued routines return NULL on error. They set errno
+ The pointer-valued routines return NULL on error. They set <STRONG>errno</STRONG>
according to their success:
<STRONG>E_OK</STRONG> The routine succeeded.
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_new.3x,v 1.12 2020/02/02 23:34:34 tom Exp @
+ * @Id: form_new.3x,v 1.13 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- The function <STRONG>new_form</STRONG> returns <STRONG>NULL</STRONG> on error. It sets errno according
+ The function <STRONG>new_form</STRONG> returns <STRONG>NULL</STRONG> on error. It sets <STRONG>errno</STRONG> according
to the function's success:
<STRONG>E_OK</STRONG> The routine succeeded.
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_requestname.3x,v 1.12 2020/02/02 23:34:34 tom Exp @
+ * @Id: form_requestname.3x,v 1.13 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- <STRONG>form_request_name</STRONG> returns <STRONG>NULL</STRONG> on error and sets errno to <STRONG>E_BAD_ARGU-</STRONG>
+ <STRONG>form_request_name</STRONG> returns <STRONG>NULL</STRONG> on error and sets <STRONG>errno</STRONG> to <STRONG>E_BAD_ARGU-</STRONG>
<STRONG>MENT</STRONG>.
<STRONG>form_request_by_name</STRONG> returns <STRONG>E_NO_MATCH</STRONG> on error. It does not set
- errno.
+ <STRONG>errno</STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_userptr.3x,v 1.16 2020/02/02 23:34:34 tom Exp @
+ * @Id: form_userptr.3x,v 1.17 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
The function <STRONG>form_userptr</STRONG> returns a pointer (which may be <STRONG>NULL</STRONG>). It
- does not set errno.
+ does not set <STRONG>errno</STRONG>.
The function <STRONG>set_form_userptr</STRONG> returns <STRONG>E_OK</STRONG> (success).
https://invisible-island.net/ncurses/tctest.html
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for detailed
descriptions of the entry points.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_items.3x,v 1.14 2020/02/02 23:34:34 tom Exp @
+ * @Id: menu_items.3x,v 1.15 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
The function <STRONG>menu_items</STRONG> returns a pointer (which may be <STRONG>NULL</STRONG>). It does
- not set errno.
+ not set <STRONG>errno</STRONG>.
The function <STRONG>item_count</STRONG> returns <STRONG>ERR</STRONG> (the general <STRONG>curses</STRONG> error return
value) if its <EM>menu</EM> parameter is <STRONG>NULL</STRONG>.
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_mark.3x,v 1.15 2020/02/02 23:34:34 tom Exp @
+ * @Id: menu_mark.3x,v 1.16 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
The function <STRONG>menu_mark</STRONG> returns a pointer (which may be <STRONG>NULL</STRONG>). It does
- not set errno.
+ not set <STRONG>errno</STRONG>.
The function <STRONG>set_menu_mark</STRONG> may return the following error codes:
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_new.3x,v 1.15 2020/02/02 23:34:34 tom Exp @
+ * @Id: menu_new.3x,v 1.16 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- The function <STRONG>new_menu</STRONG> returns <STRONG>NULL</STRONG> on error. It sets errno according
+ The function <STRONG>new_menu</STRONG> returns <STRONG>NULL</STRONG> on error. It sets <STRONG>errno</STRONG> according
to the function's failure:
<STRONG>E_NOT_CONNECTED</STRONG>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_pattern.3x,v 1.18 2020/02/02 23:34:34 tom Exp @
+ * @Id: menu_pattern.3x,v 1.19 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
The function <STRONG>menu_pattern</STRONG> returns a pointer, which is <STRONG>NULL</STRONG> if the <EM>menu</EM>
parameter is <STRONG>NULL</STRONG>. Otherwise, it is a pointer to a string which is
- empty if no pattern has been set. It does not set errno.
+ empty if no pattern has been set. It does not set <STRONG>errno</STRONG>.
The function <STRONG>set_menu_pattern</STRONG> may return the following error codes:
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_requestname.3x,v 1.12 2020/02/02 23:34:34 tom Exp @
+ * @Id: menu_requestname.3x,v 1.13 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- <STRONG>menu_request_name</STRONG> returns <STRONG>NULL</STRONG> on error and sets errno to <STRONG>E_BAD_ARGU-</STRONG>
+ <STRONG>menu_request_name</STRONG> returns <STRONG>NULL</STRONG> on error and sets <STRONG>errno</STRONG> to <STRONG>E_BAD_ARGU-</STRONG>
<STRONG>MENT</STRONG>.
<STRONG>menu_request_by_name</STRONG> returns <STRONG>E_NO_MATCH</STRONG> on error. It does not set
- errno.
+ <STRONG>errno</STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_userptr.3x,v 1.13 2020/02/02 23:34:34 tom Exp @
+ * @Id: menu_userptr.3x,v 1.14 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
<STRONG>menu_userptr</STRONG> returns a pointer (which may be <STRONG>NULL</STRONG>). It does not set
- errno.
+ <STRONG>errno</STRONG>.
<STRONG>set_menu_userptr</STRONG> returns <STRONG>E_OK</STRONG> (success).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: mitem_current.3x,v 1.17 2020/02/02 23:34:34 tom Exp @
+ * @Id: mitem_current.3x,v 1.18 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
<STRONG>current_item</STRONG> returns a pointer (which may be <STRONG>NULL</STRONG>). It does not set
- errno.
+ <STRONG>errno</STRONG>.
<STRONG>top_row</STRONG> and <STRONG>item_index</STRONG> return <STRONG>ERR</STRONG> (the general <STRONG>curses</STRONG> error value) if
their <EM>menu</EM> parameter is <STRONG>NULL</STRONG>.
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: mitem_name.3x,v 1.11 2020/02/02 23:34:34 tom Exp @
+ * @Id: mitem_name.3x,v 1.12 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
These routines return a pointer (which may be <STRONG>NULL</STRONG>). They do not set
- errno.
+ <STRONG>errno</STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: mitem_new.3x,v 1.16 2020/02/02 23:34:34 tom Exp @
+ * @Id: mitem_new.3x,v 1.17 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- The function <STRONG>new_item</STRONG> returns <STRONG>NULL</STRONG> on error. It sets errno according
+ The function <STRONG>new_item</STRONG> returns <STRONG>NULL</STRONG> on error. It sets <STRONG>errno</STRONG> according
to the function's failure:
<STRONG>E_BAD_ARGUMENT</STRONG>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: mitem_userptr.3x,v 1.14 2020/02/02 23:34:34 tom Exp @
+ * @Id: mitem_userptr.3x,v 1.15 2020/03/28 19:06:28 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
The function <STRONG>item_userptr</STRONG> returns a pointer (possibly <STRONG>NULL</STRONG>). It does
- not set errno.
+ not set <STRONG>errno</STRONG>.
The <STRONG>set_item_userptr</STRONG> always returns <STRONG>E_OK</STRONG> (success).
method of updating character screens with reasonable optimization.
This implementation is "new curses" (ncurses) and is the approved
replacement for 4.4BSD classic curses, which has been discontinued.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
The <STRONG>ncurses</STRONG> library emulates the curses library of System V Release 4
UNIX, and XPG4 (X/Open Portability Guide) curses (also known as XSI
Each cell (row and column) in a <STRONG>WINDOW</STRONG> is stored as a
<STRONG>cchar_t</STRONG>.
- The <STRONG><A HREF="setcchar.3x.html">setcchar(3x)</A></STRONG> and <STRONG><A HREF="getcchar.3x.html">getcchar(3x)</A></STRONG> functions store and
+ The <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG> and <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG> functions store and
retrieve the data from a <STRONG>cchar_t</STRONG> structure.
<STRONG>wchar_t</STRONG>
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
</PRE><H3><a name="h3-resize_term">resize_term</a></H3><PRE>
Most of the work is done by the inner function <STRONG>resize_term</STRONG>. The outer
function <STRONG>resizeterm</STRONG> adds bookkeeping for the <STRONG>SIGWINCH</STRONG> handler, as well
- as repainting the soft-key area (see <STRONG><A HREF="slk_touch.3x.html">slk_touch(3x)</A></STRONG>).
+ as repainting the soft-key area (see <STRONG><A HREF="curs_slk.3x.html">slk_touch(3x)</A></STRONG>).
When resizing the windows, <STRONG>resize_term</STRONG> blank-fills the areas that are
extended. The calling application should fill in these areas with
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
have, by specifying how to perform screen operations, and by specifying
padding requirements and initialization sequences.
- This manual describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This manual describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
</PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
<STRONG><A HREF="term.5.html">term(5)</A></STRONG>. <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
<STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG>ter-</STRONG>
<STRONG><A HREF="terminfo.5.html">minfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
<STRONG>csh(1)</STRONG>, <STRONG>sh(1)</STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG>tty(4)</STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>,
<STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200321).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200418).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: user_caps.5,v 1.12 2020/02/02 23:34:34 tom Exp @
+ * @Id: user_caps.5,v 1.15 2020/04/18 10:29:43 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>.
+ The terminal database section <EM>NCURSES</EM> <EM>USER-DEFINABLE</EM> <EM>CAPABILITIES</EM> sum-
+ marizes commonly-used user-defined capabilities which are used in the
+ terminal descriptions. Some of those features are mentioned in
+ <STRONG>screen(1)</STRONG> or <STRONG>tmux(1)</STRONG>.
+
+ <EM>XTerm</EM> <EM>Control</EM> <EM>Sequences</EM> provides further information on the <STRONG>xterm</STRONG> fea-
+ tures which are used in these extended capabilities.
+
</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
Thomas E. Dickey
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_variables.3x,v 1.14 2020/02/02 23:34:34 tom Exp $
+.\" $Id: curs_variables.3x,v 1.15 2020/04/18 14:29:07 tom Exp $
.TH curs_variables 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.SS TABSIZE
This variable holds the number of columns used by the \fIcurses\fP library
when converting a tab character to spaces as it adds the tab to a window
-(see curs_addch(3X).
+(see \fBcurs_addch\fP(3X).
.SS The Current Screen
This implementation of curses uses a special window \fBcurscr\fP to
record its updates to the terminal screen.
-# $Id: manhtml.aliases,v 1.16 2020/02/15 21:02:48 tom Exp $
+# $Id: manhtml.aliases,v 1.17 2020/04/18 14:30:44 tom Exp $
#***************************************************************************
# Copyright 2019,2020 Thomas E. Dickey *
# Copyright 2013,2017 Free Software Foundation, Inc. *
# authorization. *
#***************************************************************************
# Items in this list will be linked to the corresponding manpages by man2html
-assume_default_colors(3X) default_colors(3X)
addch(3X) curs_addch(3X)
+assume_default_colors(3X) default_colors(3X)
curs_set(3X) curs_kernel(3X)
delscreen(3X) curs_initscr(3X)
doupdate(3X) curs_refresh(3X)
endwin(3X) curs_initscr(3X)
filter(3X) curs_util(3X)
get_wch(3X) curs_get_wch(3X)
+getcchar(3X) curs_getcchar(3X)
getch(3X) curs_getch(3X)
inch(3X) curs_inch(3X)
infocmp(1) infocmp(1M)
reset_shell_mode(3X) curs_kernel(3X)
set_fieldtype(3X) form_fieldtype(3X)
set_term(3X) curs_initscr(3X)
+setcchar(3X) curs_getcchar(3X)
setupterm(3X) curs_terminfo(3X)
slk_init(3X) curs_slk(3X)
+slk_touch(3X) curs_slk(3X)
tic(1) tic(1M)
tigetstr(3X) curs_terminfo(3X)
tparm(3X) curs_terminfo(3X)
tputs(3X) curs_terminfo(3X)
-use_env(3X) curs_util(3X)
use_default_colors(3X) default_colors(3X)
+use_env(3X) curs_util(3X)
use_extended_names(3X) curs_extend(3X)
vidputs(3X) curs_terminfo(3X)
wgetch(3X) curs_getch(3X)
-# $Id: manhtml.externs,v 1.13 2020/02/02 23:34:34 tom Exp $
+# $Id: manhtml.externs,v 1.14 2020/04/18 09:48:50 tom Exp $
# Items in this list will not be linked by man2html
#***************************************************************************
# Copyright 2019,2020 Thomas E. Dickey *
putwc(3)
read(2)
scanf(3)
+screen(1)
sh(1)
sscanf(3)
stdio(3)
stty(1)
system(3)
termios(3)
+tmux(1)
tty(4)
ttys(5)
vprintf(3)
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: user_caps.5,v 1.12 2020/02/02 23:34:34 tom Exp $
+.\" $Id: user_caps.5,v 1.15 2020/04/18 10:29:43 tom Exp $
.TH user_caps 5
.ie \n(.g .ds `` \(lq
.el .ds `` ``
ask \fBkey_defined\fP(3X) for the \fIkey-code\fP which
would be returned for those keys by \fBwgetch\fP(3X).
.PP
+.\"
.SH PORTABILITY
.PP
The \*(``\-x\*('' extension feature of \fB@TIC@\fP and \fB@INFOCMP@\fP
has been adopted in NetBSD curses.
That implementation stores user-defined capabilities,
but makes no use of these capabilities itself.
+.\"
.SH SEE ALSO
.PP
\fB@TIC@\fR(1M),
\fB@INFOCMP@\fR(1M).
+.PP
+The terminal database section
+.I "NCURSES USER-DEFINABLE CAPABILITIES"
+summarizes commonly-used user-defined capabilities
+which are used in the terminal descriptions.
+Some of those features are mentioned in \fBscreen\fR(1) or \fBtmux\fR(1).
+.PP
+.I "XTerm Control Sequences"
+provides further information on the \fBxterm\fP features
+which are used in these extended capabilities.
+.\"
.SH AUTHORS
.PP
Thomas E. Dickey
# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
-# $Revision: 1.787 $
-# $Date: 2020/02/22 23:05:24 $
+# $Revision: 1.788 $
+# $Date: 2020/04/18 16:46:32 $
#
# 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
cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK,
home=\EH, ht=^I, ind=\n, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
kcuu1=\EA, nel=\r\n, ri=\EI, rmacs=\EG, smacs=\EF,
- use=xterm+kbs,
+ use=xterm+kbs, use=vt52+keypad,
xterm-noapp|xterm with cursor keys in normal mode,
rmcup@, rmkx=\E>, smcup@, smkx=\E=, use=xterm+noapp,
# + improve vt50h and vt52 based on DECScope manual -TD
# + add/use vt52+keypad and vt52-basic -TD
#
+# 2020-04-18
+# + use vt52+keypad in xterm-vt52, from xterm #354 -TD
+#
######## SHANTIH! SHANTIH! SHANTIH!
#include <curses.priv.h>
-MODULE_ID("$Id: wresize.c,v 1.39 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: wresize.c,v 1.41 2020/04/18 21:01:00 tom Exp $")
static int
cleanup_lines(struct ldat *data, int length)
if (s == 0)
returnCode(cleanup_lines(new_lines, row));
for (col = 0; col <= ToCols; ++col) {
- s[col] = (col <= size_x
+ bool valid = (col <= size_x);
+ if_WIDEC({
+ if (col == ToCols
+ && col < size_x
+ && isWidecBase(win->_line[row].text[col])) {
+ valid = FALSE;
+ }
+ });
+ s[col] = (valid
? win->_line[row].text[col]
: win->_nc_bkgd);
}
-ncurses6 (6.2+20200411) unstable; urgency=low
+ncurses6 (6.2+20200418) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 11 Apr 2020 09:11:52 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 18 Apr 2020 05:00:18 -0400
ncurses6 (5.9-20131005) unstable; urgency=low
-ncurses6 (6.2+20200411) unstable; urgency=low
+ncurses6 (6.2+20200418) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 11 Apr 2020 09:11:52 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 18 Apr 2020 05:00:18 -0400
ncurses6 (5.9-20131005) unstable; urgency=low
-ncurses6 (6.2+20200411) unstable; urgency=low
+ncurses6 (6.2+20200418) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 11 Apr 2020 09:11:52 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 18 Apr 2020 05:00:18 -0400
ncurses6 (5.9-20120608) unstable; urgency=low
-; $Id: mingw-ncurses.nsi,v 1.389 2020/04/11 13:11:52 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.390 2020/04/18 09:00:18 tom Exp $\r
\r
; TODO add examples\r
; TODO bump ABI to 6\r
!define VERSION_MAJOR "6"\r
!define VERSION_MINOR "2"\r
!define VERSION_YYYY "2020"\r
-!define VERSION_MMDD "0411"\r
+!define VERSION_MMDD "0418"\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.2
-Release: 20200411
+Release: 20200418
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.2
-Release: 20200411
+Release: 20200418
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.2
-Release: 20200411
+Release: 20200418
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
#!/usr/bin/env perl
-# $Id: tracemunch,v 1.28 2020/03/08 12:22:49 tom Exp $
+# $Id: tracemunch,v 1.29 2020/04/18 23:52:24 tom Exp $
##############################################################################
# Copyright 2018-2019,2020 Thomas E. Dickey #
# Copyright 1998-2005,2017 Free Software Foundation, Inc. #
'PutAttrChar\(\{\{ ' . "'(.)'"
. ' = 0[0-7]+ \}\}\) at \(([0-9]+), ([0-9]+)\)';
our $waddnstr =
- 'waddnstr\(0x([[:xdigit:]]+),"([^\"]+)",[0-9]+\) called \{A_NORMAL\}';
+'^called \{waddnstr\((0x[[:xdigit:]]+|window\d+),"((\\.|[^\"]*))",[-]?[0-9]+\)';
+
+our %TR = qw(
+ DISABLE 0x0000
+ TIMES 0x0001
+ TPUTS 0x0002
+ UPDATE 0x0004
+ MOVE 0x0008
+ CHARPUT 0x0010
+ ORDINARY 0x001F
+ CALLS 0x0020
+ VIRTPUT 0x0040
+ IEVENT 0x0080
+ BITS 0x0100
+ ICALLS 0x0200
+ CCALLS 0x0400
+ DATABASE 0x0800
+ ATTRS 0x1000
+);
+
+our $tracelevel = 0;
# If the trace is complete, we can infer addresses using the return value from
# newwin, etc. But if it is incomplete, we can still check for special cases
$_ =~ s/\r\n/\n/g;
$_ =~ s/\r/\n/g;
+ if ( $_ =~
+ /^TRACING NCURSES version.*\(tracelevel=(0x[[:xdigit:]]+)\)/ )
+ {
+ $tracelevel = hex $1;
+ print;
+ next;
+ }
+
my $thread = "";
if ( $_ =~ /^(0x[[:xdigit:]]+):/ ) {
$thr_addr{$1} = ++$thr_nums unless defined $thr_addr{$1};
}
}
- # Compactify runs of PutAttrChar calls (TR_CHARPUT)
- if ( $_ =~ /$putattr/ ) {
+ # Compactify runs of PutAttrChar
+ if ( ( ( $tracelevel & $TR{CHARPUT} ) != 0 ) and $_ =~ /$putattr/ )
+ {
my $putattr_chars = $1;
my $starty = $2;
my $startx = $3;
$putattr_chars .= $1;
}
else {
+ next if ( $_ =~ /^PUTC 0x[[:xdigit:]]+.*/ );
+ next if ( $_ =~ /^\.\.\.skip.*/ );
+ next if ( $_ =~ /^forced to blank.*/ );
last;
}
}
- print
-"RUN of PutAttrChar()s: \"$putattr_chars\" from ${starty}, ${startx}\n";
+ print "RUN of PutAttrChar()s:"
+ . " \"$putattr_chars\" from ${starty}, ${startx}\n";
redo CLASSIFY;
}
- # Compactify runs of waddnstr calls (TR_CALLS)
- if ( $_ =~ /$waddnstr/ ) {
+ # Compactify runs of waddnstr calls
+ if ( ( ( $tracelevel & $TR{CALLS} ) != 0 ) and $_ =~ /$waddnstr/ ) {
my $waddnstr_chars = $2;
my $winaddr = $1;
while (<$STDIN>) {
+ next if ( $_ =~ /^return \}0/ );
if ( $_ =~ /$waddnstr/ && $1 eq $winaddr ) {
$waddnstr_chars .= $2;
}
}
}
my $winaddstr = &transaddr($winaddr);
- print "RUN of waddnstr()s: $winaddr, \"$waddnstr_chars\"\n";
+ print "RUN of waddnstr()s:"
+ . " $winaddstr, \"$waddnstr_chars\"\n";
redo CLASSIFY;
}
}
}
+for my $tr ( keys %TR ) {
+ $TR{$tr} = hex $TR{$tr};
+}
+
if ( $#ARGV >= 0 ) {
while ( $#ARGV >= 0 ) {
my $file = shift @ARGV;