ncurses/ncurses-6.0-20161119.patch

1035 lines
53 KiB
Diff
Raw Permalink Normal View History

# ncurses 6.0 - patch 20161119 - Thomas E. Dickey
#
# ------------------------------------------------------------------------------
#
# Ncurses 6.0 is at
# ftp.gnu.org:/pub/gnu
#
# Patches for ncurses 6.0 can be found at
# ftp://invisible-island.net/ncurses/6.0
# http://invisible-mirror.net/archives/ncurses/6.0
#
# ------------------------------------------------------------------------------
# ftp://invisible-island.net/ncurses/6.0/ncurses-6.0-20161119.patch.gz
# patch by Thomas E. Dickey <dickey@invisible-island.net>
# created Sun Nov 20 02:06:40 UTC 2016
# ------------------------------------------------------------------------------
# NEWS | 9 +
# VERSION | 2
# dist.mk | 4
# doc/html/man/adacurses6-config.1.html | 14 +-
# doc/html/man/captoinfo.1m.html | 2
# doc/html/man/clear.1.html | 76 ++++++++++++++
# doc/html/man/form.3x.html | 166 ++++++++++++++++----------------
# doc/html/man/form_page.3x.html | 16 ++-
# doc/html/man/infocmp.1m.html | 2
# doc/html/man/infotocap.1m.html | 2
# doc/html/man/menu.3x.html | 2
# doc/html/man/ncurses.3x.html | 2
# doc/html/man/ncurses6-config.1.html | 2
# doc/html/man/panel.3x.html | 2
# doc/html/man/tabs.1.html | 2
# doc/html/man/terminfo.5.html | 6 -
# doc/html/man/tic.1m.html | 2
# doc/html/man/toe.1m.html | 2
# doc/html/man/tput.1.html | 2
# doc/html/man/tset.1.html | 2
# man/clear.1 | 91 ++++++++++++++++-
# package/debian-mingw/changelog | 4
# package/debian-mingw64/changelog | 4
# package/debian/changelog | 4
# package/mingw-ncurses.nsi | 4
# package/mingw-ncurses.spec | 2
# package/ncurses.spec | 2
# progs/tic.c | 101 +++++++++++++++++++
# 28 files changed, 401 insertions(+), 128 deletions(-)
# ------------------------------------------------------------------------------
Index: NEWS
Prereq: 1.2695
--- ncurses-6.0-20161112+/NEWS 2016-11-13 00:10:13.000000000 +0000
+++ ncurses-6.0-20161119/NEWS 2016-11-20 00:36:25.000000000 +0000
@@ -25,7 +25,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.2695 2016/11/13 00:10:13 tom Exp $
+-- $Id: NEWS,v 1.2698 2016/11/20 00:36:25 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
@@ -45,6 +45,13 @@
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
+20161119
+ + add check in tic for some syntax errors of delays, as well as use of
+ proportional delays for non-line capabilities.
+ + document history of the clear program and the E3 extension, prompted
+ by various discussions including
+ http://unix.stackexchange.com/questions/87469/clearing-the-old-scrollback-buffer
+
20161112
+ improve -W option in tic/infocmp:
+ correct order of size-adjustments in wrapped lines
Index: VERSION
--- ncurses-6.0-20161112+/VERSION 2016-11-12 15:46:51.000000000 +0000
+++ ncurses-6.0-20161119/VERSION 2016-11-19 18:20:25.000000000 +0000
@@ -1 +1 @@
-5:0:9 6.0 20161112
+5:0:9 6.0 20161119
Index: dist.mk
Prereq: 1.1132
--- ncurses-6.0-20161112+/dist.mk 2016-11-12 15:46:51.000000000 +0000
+++ ncurses-6.0-20161119/dist.mk 2016-11-19 18:20:25.000000000 +0000
@@ -25,7 +25,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1132 2016/11/12 15:46:51 tom Exp $
+# $Id: dist.mk,v 1.1133 2016/11/19 18:20:25 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
@@ -37,7 +37,7 @@
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 6
NCURSES_MINOR = 0
-NCURSES_PATCH = 20161112
+NCURSES_PATCH = 20161119
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
Index: doc/html/man/adacurses6-config.1.html
--- ncurses-6.0-20161112+/doc/html/man/adacurses6-config.1.html 2016-10-22 20:13:52.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/adacurses6-config.1.html 2016-11-19 22:08:24.000000000 +0000
@@ -1,6 +1,6 @@
<!--
****************************************************************************
- * Copyright (c) 2010-2011,2014 Free Software Foundation, Inc. *
+ * Copyright (c) 2010-2014,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -26,7 +26,7 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: MKada_config.in,v 1.8 2014/06/07 19:32:52 tom Exp @
+ * @Id: MKada_config.in,v 1.10 2016/11/05 21:08:21 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
@@ -46,11 +46,11 @@
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- adacurses-config - helper script for AdaCurses libraries
+ adacurses6-config - helper script for AdaCurses libraries
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>adacurses-config</STRONG> [<EM>options</EM>]
+ <STRONG>adacurses6-config</STRONG> [<EM>options</EM>]
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
@@ -71,10 +71,10 @@
echos the release+patchdate version of the ncurses
libraries used to configure and build AdaCurses.
- <STRONG>--help</STRONG> prints a list of the <STRONG>adacurses-config</STRONG> script's
+ <STRONG>--help</STRONG> prints a list of the <STRONG>adacurses6-config</STRONG> script's
options.
- If no options are given, <STRONG>adacurses-config</STRONG> prints the com-
+ If no options are given, <STRONG>adacurses6-config</STRONG> prints the com-
bination of <STRONG>--cflags</STRONG> and <STRONG>--libs</STRONG> that <STRONG>gnatmake</STRONG> expects (see
example).
@@ -131,7 +131,7 @@
</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.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
Index: doc/html/man/captoinfo.1m.html
--- ncurses-6.0-20161112+/doc/html/man/captoinfo.1m.html 2016-10-22 20:13:52.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/captoinfo.1m.html 2016-11-19 22:08:24.000000000 +0000
@@ -198,7 +198,7 @@
</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.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
Index: doc/html/man/clear.1.html
--- ncurses-6.0-20161112+/doc/html/man/clear.1.html 2016-10-22 20:13:52.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/clear.1.html 2016-11-19 22:08:24.000000000 +0000
@@ -1,6 +1,6 @@
<!--
****************************************************************************
- * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2013,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -26,7 +26,9 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: clear.1,v 1.10 2013/06/22 22:22:11 tom Exp @
+ * @Id: clear.1,v 1.14 2016/11/19 21:30:46 tom Exp @
+ * these would be fallbacks for DS/DE,
+ * but groff changed the meaning of the macros.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
@@ -64,10 +66,76 @@
present.
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ A <STRONG>clear</STRONG> command appeared in 2.79BSD dated February 24,
+ 1979. Later that was provided in Unix 8th edition (1985).
+
+ AT&amp;T adapted a different BSD program (<STRONG>tset</STRONG>) to make a new
+ command (<STRONG>tput</STRONG>), and used this to replace the <STRONG>clear</STRONG> command
+ with a shell script which calls <STRONG>tput</STRONG> <STRONG>clear</STRONG>, e.g.,
+ /usr/bin/tput ${1:+-T$1} clear 2&gt; /dev/null
+ exit
+
+ In 1989, when Keith Bostic revised the BSD <STRONG>tput</STRONG> command to
+ make it similar to the AT&amp;T <STRONG>tput</STRONG>, he added a shell script
+ for the <STRONG>clear</STRONG> command:
+ exec tput clear
+
+ The remainder of the script in each case is a copyright
+ notice.
+
+ The ncurses <STRONG>clear</STRONG> command began in 1995 by adapting the
+ original BSD <STRONG>clear</STRONG> command (with terminfo, of course).
+
+ The <STRONG>E3</STRONG> extension came later:
+
+ <STRONG>o</STRONG> In June 1999, xterm provided an extension to the stan-
+ dard control sequence for clearing the screen. Rather
+ than clearing just the visible part of the screen
+ using
+ printf '\033[2J'
+
+ one could clear the <EM>scrollback</EM> using
+ printf '\033[<STRONG>3</STRONG>J'
+
+ This is documented in <EM>XTerm</EM> <EM>Control</EM> <EM>Sequences</EM> as a
+ feature originating with xterm.
+
+ <STRONG>o</STRONG> A few other terminal developers adopted the feature,
+ e.g., PuTTY in 2006.
+
+ <STRONG>o</STRONG> In April 2011, a Red Hat developer submitted a patch
+ to the Linux kernel, modifying its console driver to
+ do the same thing. The Linux change, part of the 3.0
+ release, did not mention xterm, although it was cited
+ in the Red Hat bug report (#683733) which led to the
+ change.
+
+ <STRONG>o</STRONG> Again, a few other terminal developers adopted the
+ feature. But the next relevant step was a change to
+ the <STRONG>clear</STRONG> program in 2013 to incorporate this exten-
+ sion.
+
+ <STRONG>o</STRONG> In 2013, the <STRONG>E3</STRONG> extension was overlooked in <STRONG>tput</STRONG> with
+ the "clear" parameter. That was addressed in 2016 by
+ reorganizing <STRONG>tput</STRONG> to share its logic with <STRONG>clear</STRONG> and
+ <STRONG>tset</STRONG>.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ Neither IEEE Std 1003.1/The Open Group Base Specifica-
+ tions Issue 7 (POSIX.1-2008) nor X/Open Curses Issue 7
+ documents tset or reset.
+
+ The latter documents <STRONG>tput</STRONG>, which could be used to replace
+ this utility either via a shell script or by an alias
+ (such as a symbolic link) to run <STRONG>tput</STRONG> as <STRONG>clear</STRONG>.
+
+
</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.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
@@ -78,6 +146,8 @@
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
Index: doc/html/man/form.3x.html
--- ncurses-6.0-20161112+/doc/html/man/form.3x.html 2016-10-22 20:13:54.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/form.3x.html 2016-11-19 22:08:26.000000000 +0000
@@ -1,7 +1,7 @@
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -27,7 +27,7 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form.3x,v 1.26 2015/08/02 18:14:50 tom Exp @
+ * @Id: form.3x,v 1.28 2016/10/29 22:26:35 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
@@ -88,83 +88,84 @@
The following table lists each <STRONG>form</STRONG> routine and the name
of the manual page on which it is described.
- <STRONG>curses</STRONG> Routine Name Manual Page Name
- -------------------------------------------------
- current_field <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
- data_ahead <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
- data_behind <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
- dup_field <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
- dynamic_field_info <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
- field_arg <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
- field_back <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
- field_buffer <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
- field_count <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
- field_fore <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
- field_index <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
- field_info <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
- field_init <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
- field_just <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
- field_opts <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
- field_opts_off <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
- field_opts_on <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
- field_pad <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
- field_status <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
- field_term <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
- field_type <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
-
- field_userptr <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
- form_driver <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
- form_driver_w <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>*
- form_fields <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
- form_init <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
- form_opts <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
- form_opts_off <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
- form_opts_on <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
- form_page <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
- form_request_by_name <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
- form_request_name <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
- form_sub <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
- form_term <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
- form_userptr <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
- form_win <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
- free_field <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
- free_fieldtype <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
- free_form <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
- link_field <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
- link_fieldtype <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
- move_field <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
- new_field <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
- new_fieldtype <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
- new_form <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
- new_page <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
- pos_form_cursor <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
- post_form <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
- scale_form <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
- set_current_field <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
- set_field_back <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
- set_field_buffer <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
- set_field_fore <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
- set_field_init <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
- set_field_just <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
- set_field_opts <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
- set_field_pad <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
- set_field_status <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
- set_field_term <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
- set_field_type <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
- set_field_userptr <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
- set_fieldtype_arg <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
- set_fieldtype_choice <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
- set_form_fields <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
- set_form_init <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
- set_form_opts <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
- set_form_page <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
- set_form_sub <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
- set_form_term <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
- set_form_userptr <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
- set_form_win <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
- set_max_field <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
- set_new_page <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
- unpost_form <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
+ <STRONG>curses</STRONG> Routine Name Manual Page Name
+ --------------------------------------------------
+ current_field <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+ data_ahead <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
+ data_behind <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
+ dup_field <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+ dynamic_field_info <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
+ field_arg <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
+ field_back <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+ field_buffer <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+ field_count <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
+ field_fore <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+ field_index <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+ field_info <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
+ field_init <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+ field_just <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
+ field_opts <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+ field_opts_off <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+ field_opts_on <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+ field_pad <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+ field_status <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+ field_term <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+ field_type <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
+
+ field_userptr <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
+ form_driver <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
+ form_driver_w <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>*
+ form_fields <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
+ form_init <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+ form_opts <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
+ form_opts_off <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
+ form_opts_on <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
+ form_page <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+ form_request_by_name <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
+ form_request_name <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
+ form_sub <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+ form_term <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+ form_userptr <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
+ form_win <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+ free_field <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+ free_fieldtype <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+ free_form <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
+ link_field <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+ link_fieldtype <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+ move_field <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
+ new_field <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+ new_fieldtype <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+ new_form <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
+ new_page <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
+ pos_form_cursor <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
+ post_form <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
+ scale_form <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+ set_current_field <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+ set_field_back <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+ set_field_buffer <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+ set_field_fore <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+ set_field_init <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+ set_field_just <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
+ set_field_opts <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+ set_field_pad <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+ set_field_status <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+ set_field_term <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+ set_field_type <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
+ set_field_userptr <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
+ set_fieldtype_arg <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+ set_fieldtype_choice <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+ set_form_fields <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
+ set_form_init <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+ set_form_opts <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+ set_form_page <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+ set_form_sub <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+ set_form_term <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+ set_form_userptr <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
+ set_form_win <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+ set_max_field <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+ set_new_page <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
+ unfocus_current_field <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+ unpost_form <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
@@ -225,9 +226,12 @@
These routines emulate the System V forms library. They
were not supported on Version 7 or BSD versions.
+ A few functions are extensions added for ncurses, e.g.,
+ <STRONG>form_driver_w</STRONG>, <STRONG>unfocus_current_field</STRONG>.
+
</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for ncurses
+ Juergen Pfeifer. Manual pages and adaptation for ncurses
by Eric S. Raymond.
@@ -235,7 +239,7 @@
<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.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
Index: doc/html/man/form_page.3x.html
--- ncurses-6.0-20161112+/doc/html/man/form_page.3x.html 2016-01-30 19:24:56.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/form_page.3x.html 2016-11-19 22:08:27.000000000 +0000
@@ -1,7 +1,7 @@
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2010,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -27,7 +27,7 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_page.3x,v 1.12 2010/12/04 18:40:45 tom Exp @
+ * @Id: form_page.3x,v 1.14 2016/10/29 22:27:24 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
@@ -54,16 +54,21 @@
<STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
int set_current_field(FORM *form, FIELD *field);
FIELD *current_field(const FORM *);
+ int unfocus_current_field(FORM *form);
int set_form_page(FORM *form, int n);
int form_page(const FORM *form);
int field_index(const FIELD *field);
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The function <STRONG>set_current</STRONG> <STRONG>field</STRONG> sets the current field of
+ The function <STRONG>set_current_field</STRONG> sets the current field of
the given form; <STRONG>current_field</STRONG> returns the current field of
the given form.
+ The function <STRONG>unfocus_current_field</STRONG> removes the focus from
+ the current field of the form. In such state, inquiries
+ via <STRONG>current_field</STRONG> shall return a NULL pointer.
+
The function <STRONG>set_form_page</STRONG> sets the form's page number
(goes to page <EM>n</EM> of the form).
@@ -113,9 +118,12 @@
These routines emulate the System V forms library. They
were not supported on Version 7 or BSD versions.
+ The <STRONG>unfocus_current_field</STRONG> function is an ncurses exten-
+ sion.
+
</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
+ Juergen Pfeifer. Manual pages and adaptation for new
curses by Eric S. Raymond.
Index: doc/html/man/infocmp.1m.html
--- ncurses-6.0-20161112+/doc/html/man/infocmp.1m.html 2016-10-22 20:13:55.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/infocmp.1m.html 2016-11-19 22:08:27.000000000 +0000
@@ -478,7 +478,7 @@
http://invisible-island.net/ncurses/tctest.html
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
Index: doc/html/man/infotocap.1m.html
--- ncurses-6.0-20161112+/doc/html/man/infotocap.1m.html 2016-10-22 20:13:55.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/infotocap.1m.html 2016-11-19 22:08:27.000000000 +0000
@@ -88,7 +88,7 @@
</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.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
Index: doc/html/man/menu.3x.html
--- ncurses-6.0-20161112+/doc/html/man/menu.3x.html 2016-10-22 20:13:55.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/menu.3x.html 2016-11-19 22:08:27.000000000 +0000
@@ -217,7 +217,7 @@
<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.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
Index: doc/html/man/ncurses.3x.html
--- ncurses-6.0-20161112+/doc/html/man/ncurses.3x.html 2016-10-22 20:13:56.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/ncurses.3x.html 2016-11-19 22:08:28.000000000 +0000
@@ -60,7 +60,7 @@
sonable optimization. This implementation is "new curses"
(ncurses) and is the approved replacement for 4.4BSD clas-
sic curses, which has been discontinued. This describes
- <STRONG>ncurses</STRONG> version 6.0 (patch 20161022).
+ <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
The <STRONG>ncurses</STRONG> library emulates the curses library of System
V Release 4 UNIX, and XPG4 (X/Open Portability Guide)
Index: doc/html/man/ncurses6-config.1.html
--- ncurses-6.0-20161112+/doc/html/man/ncurses6-config.1.html 2016-10-22 20:13:56.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/ncurses6-config.1.html 2016-11-19 22:08:28.000000000 +0000
@@ -114,7 +114,7 @@
</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.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
Index: doc/html/man/panel.3x.html
--- ncurses-6.0-20161112+/doc/html/man/panel.3x.html 2016-10-22 20:13:56.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/panel.3x.html 2016-11-19 22:08:28.000000000 +0000
@@ -208,7 +208,7 @@
</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.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
Index: doc/html/man/tabs.1.html
--- ncurses-6.0-20161112+/doc/html/man/tabs.1.html 2016-10-22 20:13:56.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/tabs.1.html 2016-11-19 22:08:28.000000000 +0000
@@ -164,7 +164,7 @@
</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.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
Index: doc/html/man/terminfo.5.html
--- ncurses-6.0-20161112+/doc/html/man/terminfo.5.html 2016-10-22 20:13:57.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/terminfo.5.html 2016-11-19 22:08:29.000000000 +0000
@@ -33,7 +33,7 @@
****************************************************************************
* @Id: terminfo.head,v 1.22 2016/10/15 17:02:31 tom Exp @
* Head of terminfo man page ends here
- * @Id: terminfo.tail,v 1.73 2016/10/22 19:56:17 tom Exp @
+ * @Id: terminfo.tail,v 1.74 2016/11/05 21:15:43 Alain.Williams Exp @
* Beginning of terminfo.tail file
* This file is part of ncurses.
* See "terminfo.head" for copyright.
@@ -75,7 +75,7 @@
nals by giving a set of capabilities which they have, by
specifying how to perform screen operations, and by speci-
fying padding requirements and initialization sequences.
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
Entries in <EM>terminfo</EM> consist of a sequence of `,' separated
fields (embedded commas may be escaped with a backslash or
@@ -1559,7 +1559,7 @@
late destructive scrolling; their documentation cautions
you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
implementation is more liberal and will do explicit erases
- after scrolling if <STRONG>ndstr</STRONG> is defined.
+ after scrolling if <STRONG>ndsrc</STRONG> is defined.
If the terminal has the ability to define a window as part
of memory, which all commands affect, it should be given
Index: doc/html/man/tic.1m.html
--- ncurses-6.0-20161112+/doc/html/man/tic.1m.html 2016-10-22 20:13:57.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/tic.1m.html 2016-11-19 22:08:29.000000000 +0000
@@ -401,7 +401,7 @@
<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>.
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
Index: doc/html/man/toe.1m.html
--- ncurses-6.0-20161112+/doc/html/man/toe.1m.html 2016-10-22 20:13:57.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/toe.1m.html 2016-11-19 22:08:29.000000000 +0000
@@ -117,7 +117,7 @@
<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><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
Index: doc/html/man/tput.1.html
--- ncurses-6.0-20161112+/doc/html/man/tput.1.html 2016-10-22 20:13:57.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/tput.1.html 2016-11-19 22:08:29.000000000 +0000
@@ -441,7 +441,7 @@
<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.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
Index: doc/html/man/tset.1.html
--- ncurses-6.0-20161112+/doc/html/man/tset.1.html 2016-10-22 20:13:57.000000000 +0000
+++ ncurses-6.0-20161119/doc/html/man/tset.1.html 2016-11-19 22:08:29.000000000 +0000
@@ -387,7 +387,7 @@
<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.0 (patch 20161022).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20161119).
Index: man/clear.1
Prereq: 1.10
--- ncurses-6.0-20161112+/man/clear.1 2013-06-22 22:22:11.000000000 +0000
+++ ncurses-6.0-20161119/man/clear.1 2016-11-19 21:30:46.000000000 +0000
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2013,2016 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
@@ -26,8 +26,28 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: clear.1,v 1.10 2013/06/22 22:22:11 tom Exp $
+.\" $Id: clear.1,v 1.14 2016/11/19 21:30:46 tom Exp $
.TH @CLEAR@ 1 ""
+.\" these would be fallbacks for DS/DE,
+.\" but groff changed the meaning of the macros.
+.de NS
+.sp .5
+.in +4
+.nf
+.ft C \" Courier
+..
+.de NE
+.fi
+.ft R
+.in -4
+..
+.ie \n(.g .ds `` \(lq
+.el .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el .ds '' ''
+.de bP
+.IP \(bu 4
+..
.ds n 5
.SH NAME
\fB@CLEAR@\fR \- clear the terminal screen
@@ -36,11 +56,76 @@
.br
.SH DESCRIPTION
\fB@CLEAR@\fR clears your screen if this is possible,
-including its scrollback buffer (if the extended "E3" capability is defined).
+including its scrollback buffer (if the extended \*(``E3\*('' capability is defined).
\fB@CLEAR@\fR looks in the environment for the terminal type and then in the
\fBterminfo\fR database to determine how to clear the screen.
.PP
\fB@CLEAR@\fR ignores any command-line parameters that may be present.
+.SH HISTORY
+A \fBclear\fP command appeared in 2.79BSD dated February 24, 1979.
+Later that was provided in Unix 8th edition (1985).
+.PP
+AT&T adapted a different BSD program (\fBtset\fP) to make
+a new command (\fBtput\fP),
+and used this to replace the \fBclear\fP command with a shell script
+which calls \fBtput clear\fP, e.g.,
+.NS
+/usr/bin/tput ${1:+-T$1} clear 2> /dev/null
+exit
+.NE
+.PP
+In 1989, when Keith Bostic revised the BSD \fBtput\fP command
+to make it similar to the AT&T \fBtput\fP,
+he added a shell script for the \fBclear\fP command:
+.NS
+exec tput clear
+.NE
+.PP
+The remainder of the script in each case is a copyright notice.
+.PP
+The ncurses \fBclear\fP command began in 1995 by adapting the original
+BSD \fBclear\fP command (with terminfo, of course).
+.PP
+The \fBE3\fP extension came later:
+.bP
+In June 1999, xterm provided an extension to the standard control
+sequence for clearing the screen.
+Rather than clearing just the visible part of the screen using
+.NS
+printf '\\033[2J'
+.NE
+.IP
+one could clear the \fIscrollback\fP using
+.NS
+printf '\\033[\fB3\fPJ'
+.NE
+.IP
+This is documented in \fIXTerm Control Sequences\fP as a feature originating
+with xterm.
+.bP
+A few other terminal developers adopted the feature, e.g., PuTTY in 2006.
+.bP
+In April 2011, a Red Hat developer submitted a patch to the Linux
+kernel, modifying its console driver to do the same thing.
+The Linux change, part of the 3.0 release, did not mention xterm,
+although it was cited in the Red Hat bug report (#683733)
+which led to the change.
+.bP
+Again, a few other terminal developers adopted the feature. But the
+next relevant step was a change to the \fBclear\fP program in 2013
+to incorporate this extension.
+.bP
+In 2013, the \fBE3\fP extension was overlooked in \fB@TPUT@\fP with
+the \*(``clear\*('' parameter.
+That was addressed in 2016 by reorganizing \fB@TPUT@\fP to share
+its logic with \fB@CLEAR@\fP and \fB@TSET@\fP.
+.SH PORTABILITY
+Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
+(POSIX.1-2008) nor X/Open Curses Issue 7 documents @TSET@ or @RESET@.
+.PP
+The latter documents \fBtput\fP, which could be used to replace this utility
+either via a shell script or by an alias (such as a symbolic link) to
+run \fB@TPUT@\fP as \fB@CLEAR@\fP.
.SH SEE ALSO
\fB@TPUT@\fR(1), \fBterminfo\fR(\*n)
.PP
Index: package/debian-mingw/changelog
--- ncurses-6.0-20161112+/package/debian-mingw/changelog 2016-11-12 15:46:51.000000000 +0000
+++ ncurses-6.0-20161119/package/debian-mingw/changelog 2016-11-19 18:20:25.000000000 +0000
@@ -1,8 +1,8 @@
-ncurses6 (6.0+20161112) unstable; urgency=low
+ncurses6 (6.0+20161119) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 12 Nov 2016 10:46:51 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 19 Nov 2016 13:20:25 -0500
ncurses6 (5.9-20131005) unstable; urgency=low
Index: package/debian-mingw64/changelog
--- ncurses-6.0-20161112+/package/debian-mingw64/changelog 2016-11-12 15:46:51.000000000 +0000
+++ ncurses-6.0-20161119/package/debian-mingw64/changelog 2016-11-19 18:20:25.000000000 +0000
@@ -1,8 +1,8 @@
-ncurses6 (6.0+20161112) unstable; urgency=low
+ncurses6 (6.0+20161119) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 12 Nov 2016 10:46:51 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 19 Nov 2016 13:20:25 -0500
ncurses6 (5.9-20131005) unstable; urgency=low
Index: package/debian/changelog
--- ncurses-6.0-20161112+/package/debian/changelog 2016-11-12 15:46:51.000000000 +0000
+++ ncurses-6.0-20161119/package/debian/changelog 2016-11-19 18:20:25.000000000 +0000
@@ -1,8 +1,8 @@
-ncurses6 (6.0+20161112) unstable; urgency=low
+ncurses6 (6.0+20161119) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 12 Nov 2016 10:46:51 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 19 Nov 2016 13:20:25 -0500
ncurses6 (5.9-20120608) unstable; urgency=low
Index: package/mingw-ncurses.nsi
Prereq: 1.184
--- ncurses-6.0-20161112+/package/mingw-ncurses.nsi 2016-11-12 15:46:51.000000000 +0000
+++ ncurses-6.0-20161119/package/mingw-ncurses.nsi 2016-11-19 18:20:25.000000000 +0000
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.184 2016/11/12 15:46:51 tom Exp $
+; $Id: mingw-ncurses.nsi,v 1.185 2016/11/19 18:20:25 tom Exp $
; TODO add examples
; TODO bump ABI to 6
@@ -10,7 +10,7 @@
!define VERSION_MAJOR "6"
!define VERSION_MINOR "0"
!define VERSION_YYYY "2016"
-!define VERSION_MMDD "1112"
+!define VERSION_MMDD "1119"
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
!define MY_ABI "5"
Index: package/mingw-ncurses.spec
--- ncurses-6.0-20161112+/package/mingw-ncurses.spec 2016-11-12 15:46:51.000000000 +0000
+++ ncurses-6.0-20161119/package/mingw-ncurses.spec 2016-11-19 18:20:25.000000000 +0000
@@ -3,7 +3,7 @@
Summary: shared libraries for terminal handling
Name: mingw32-ncurses6
Version: 6.0
-Release: 20161112
+Release: 20161119
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Index: package/ncurses.spec
--- ncurses-6.0-20161112+/package/ncurses.spec 2016-11-12 15:46:51.000000000 +0000
+++ ncurses-6.0-20161119/package/ncurses.spec 2016-11-19 18:20:25.000000000 +0000
@@ -1,7 +1,7 @@
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.0
-Release: 20161112
+Release: 20161119
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Index: progs/tic.c
Prereq: 1.224
--- ncurses-6.0-20161112+/progs/tic.c 2016-10-01 12:46:54.000000000 +0000
+++ ncurses-6.0-20161119/progs/tic.c 2016-11-20 00:34:58.000000000 +0000
@@ -48,7 +48,7 @@
#include <parametrized.h>
#include <transform.h>
-MODULE_ID("$Id: tic.c,v 1.224 2016/10/01 12:46:54 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.225 2016/11/20 00:34:58 tom Exp $")
#define STDIN_NAME "<stdin>"
@@ -1769,6 +1769,104 @@
}
}
+static bool
+line_capability(const char *name)
+{
+ bool result = FALSE;
+ static const char *table[] =
+ {
+ "csr", /* change_scroll_region */
+ "clear", /* clear_screen */
+ "ed", /* clr_eos */
+ "cwin", /* create_window */
+ "cup", /* cursor_address */
+ "cud1", /* cursor_down */
+ "home", /* cursor_home */
+ "mrcup", /* cursor_mem_address */
+ "ll", /* cursor_to_ll */
+ "cuu1", /* cursor_up */
+ "dl1", /* delete_line */
+ "hd", /* down_half_line */
+ "flash", /* flash_screen */
+ "ff", /* form_feed */
+ "il1", /* insert_line */
+ "nel", /* newline */
+ "dl", /* parm_delete_line */
+ "cud", /* parm_down_cursor */
+ "indn", /* parm_index */
+ "il", /* parm_insert_line */
+ "rin", /* parm_rindex */
+ "cuu", /* parm_up_cursor */
+ "mc0", /* print_screen */
+ "vpa", /* row_address */
+ "ind", /* scroll_forward */
+ "ri", /* scroll_reverse */
+ "hu", /* up_half_line */
+ };
+ size_t n;
+ for (n = 0; n < SIZEOF(table); ++n) {
+ if (!strcmp(name, table[n])) {
+ result = TRUE;
+ break;
+ }
+ }
+ return result;
+}
+
+static void
+check_delays(const char *name, const char *value)
+{
+ const char *p, *q;
+ const char *mark = 0;
+
+ for (p = value; *p != '\0'; ++p) {
+ if (p[0] == '$' && p[1] == '<') {
+ const char *base = p + 2;
+ bool maybe = TRUE;
+ bool mixed = FALSE;
+ int proportional = 0;
+ int mandatory = 0;
+
+ for (q = base; *q != '\0'; ++q) {
+ if (*q == '>') {
+ if (mark == 0)
+ mark = q;
+ break;
+ } else if (*q == '*' || *q == '/') {
+ if (*q == '*')
+ ++proportional;
+ if (*q == '/')
+ ++mandatory;
+ if (mark == 0)
+ mark = q;
+ } else if (!(isalnum(UChar(*q)) || strchr("+-.", *q) != 0)) {
+ maybe = FALSE;
+ break;
+ } else if (proportional || mandatory) {
+ mixed = TRUE;
+ }
+ }
+ if (*q == '\0') {
+ maybe = FALSE; /* just an isolated "$<" */
+ } else if (maybe) {
+ float check_f;
+ char check_c;
+ int rc = sscanf(base, "%f%c", &check_f, &check_c);
+ if ((rc != 2) || (check_c != *mark) || mixed) {
+ _nc_warning("syntax error in %s delay '%.*s'", name,
+ (int) (q - base), base);
+ } else if (*name == 'k') {
+ _nc_warning("function-key %s has delay", name);
+ } else if (proportional && !line_capability(name)) {
+ _nc_warning("non-line capability using proportional delay: %s", name);
+ }
+ } else {
+ p = q - 1; /* restart scan */
+ }
+ }
+ }
+}
+
static char *
check_1_infotocap(const char *name, NCURSES_CONST char *value, int count)
{
@@ -2388,6 +2486,7 @@
char *a = tp->Strings[j];
if (VALID_STRING(a)) {
check_params(tp, ExtStrname(tp, (int) j, strnames), a);
+ check_delays(ExtStrname(tp, (int) j, strnames), a);
if (capdump) {
check_infotocap(tp, (int) j, a);
}