ncurses 6.0 - patch 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
This commit is contained in:
Thomas E. Dickey 2016-11-20 02:06:40 +00:00
parent 16fea43a50
commit 5606eb4861
28 changed files with 400 additions and 127 deletions

9
NEWS
View File

@ -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 @@ See the AUTHORS file for the corresponding full names.
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

View File

@ -1 +1 @@
5:0:9 6.0 20161112
5:0:9 6.0 20161119

View File

@ -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 @@ SHELL = /bin/sh
# 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)

View File

@ -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).

View File

@ -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>

View File

@ -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>

View File

@ -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>
<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>
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).

View File

@ -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.

View File

@ -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>

View File

@ -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>

View File

@ -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).

View File

@ -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)

View File

@ -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).

View File

@ -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>

View File

@ -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).

View File

@ -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

View File

@ -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>

View File

@ -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).

View File

@ -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).

View File

@ -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).

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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 @@ check_params(TERMTYPE *tp, const char *name, char *value)
}
}
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 @@ check_termtype(TERMTYPE *tp, bool literal)
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);
}