-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: TODO,v 1.7 2021/06/17 21:20:30 tom Exp $
+-- $Id: TODO,v 1.8 2021/09/01 23:22:33 tom Exp $
-------------------------------------------------------------------------------
-- Intensive testing
Comfort purpose
-- Sample program
- Under continuous construction (and it's not a WEB page!!!)
+ Under continuous construction (and it is not a WEB page!!!)
-- Make the binding objects a shared library
They are rather large, so it would make sense, otherwise Ada95
dnl
dnl Author: Thomas E. Dickey
dnl
-dnl $Id: aclocal.m4,v 1.179 2021/08/28 20:29:28 tom Exp $
+dnl $Id: aclocal.m4,v 1.181 2021/09/04 10:47:55 tom Exp $
dnl Macros used in NCURSES Ada95 auto-configuration script.
dnl
dnl These macros are maintained separately from NCURSES. The copyright on
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ADD_INCDIR version: 16 updated: 2020/12/31 20:19:42
+dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04
dnl -------------
-dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
+dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it is
dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
dnl but old versions (and some misinstalled ones) need that. To make things
dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
dnl "dirname" is not portable, so we fake it with a shell script.
AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
+dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
dnl ---------------
-dnl You can always use "make -n" to see the actual options, but it's hard to
+dnl You can always use "make -n" to see the actual options, but it is hard to
dnl pick out/analyze warning messages when the compile-line is long.
dnl
dnl Sets:
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MAKEFLAGS version: 20 updated: 2021/01/03 19:29:49
+dnl CF_MAKEFLAGS version: 21 updated: 2021/09/04 06:47:34
dnl ------------
dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
-dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
+dnl options to lower-levels. It is very useful for "make -n" -- if we have it.
dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
AC_DEFUN([CF_MAKEFLAGS],
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_LIBS version: 20 updated: 2021/01/03 08:05:37
+dnl CF_NCURSES_LIBS version: 21 updated: 2021/09/04 06:37:12
dnl ---------------
dnl Look for the ncurses library. This is a little complicated on Linux,
dnl because it may be linked with the gpm (general purpose mouse) library.
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
fi
done
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 106 updated: 2021/08/07 16:59:57
+dnl CF_SHARED_OPTS version: 107 updated: 2021/09/04 06:47:34
dnl --------------
dnl --------------
dnl Attempt to determine the appropriate CC/LD options for creating a shared
dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
dnl (ex: libncurses.so.<ver>).
dnl
-dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
+dnl Some loaders leave 'so_locations' lying around. It is nice to clean up.
AC_DEFUN([CF_SHARED_OPTS],
[
AC_REQUIRE([CF_LD_RPATH_OPT])
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
+dnl CF_WITH_PATH version: 12 updated: 2021/09/04 06:35:04
dnl ------------
dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
dnl defaulting to yes/no.
dnl $2 = help-text
dnl $3 = environment variable to set
dnl $4 = default value, shown in the help-message, must be a constant
-dnl $5 = default value, if it's an expression & cannot be in the help-message
+dnl $5 = default value, if it is an expression & cannot be in the help-message
dnl
AC_DEFUN([CF_WITH_PATH],
[AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
echo "$as_me:6208: checking for tgoto in -lmytinfo" >&5
echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
echo "$as_me:8959: checking for tgoto in -lmytinfo" >&5
echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
echo "$as_me:11081: checking for tgoto in -lmytinfo" >&5
echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
#MAIN
This is the main menu of the sample program for the ncurses Ada95
binding. The main intention of the demo is not to demonstrate or
-test all the features of ncurses and it's subsystems, but to provide
+test all the features of ncurses and its subsystems, but to provide
to you some sample code how to use the binding with Ada95.
You may select this options:
note that this functionality is unique for ncurses and is not found
in the SVr4 menu implementation.
-This is a menu that sometimes does not fit into it's window and
+This is a menu that sometimes does not fit into its window and
therefore it becomes a scroll menu.
You can also see here very nicely the pattern matching functionality
switch on selection) you can change the major order scheme for
the menu. If "O-Col" is visible, the menu is currently major
ordered by rows, you can switch to major column order by pressing
-the key. If "O-Row" is visible, it's just the reverse situation.
+the key. If "O-Row" is visible, it is just the reverse situation.
This Key is not visible in "4x1" layout mode, because in this case
the functionality makes no sense.
You may click the mouse buttons at any location at the screen and look
at the protocol window !
#MOUSE00
-A rather simple use of a mouse as demo. It's there just to test the
+A rather simple use of a mouse as demo. It is there just to test the
code and to provide the sample source.
It might be of interest, that the output into the protocol window is
allows you to print the names of enumeration literals. That's really
nice.
#MOUSE-PAD00
-This is a very simple demo of the mouse features of ncurses. It's there
+This is a very simple demo of the mouse features of ncurses. It is there
just to test whether or not the generated code for the binding really
works on the different architectures (seems so).
#ATTRIBDEMO
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2021 Thomas E. Dickey --
-- Copyright 2000-2011,2014 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.8 $
--- $Date: 2020/02/02 23:34:34 $
+-- $Revision: 1.9 $
+-- $Date: 2021/09/04 10:52:55 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
Set_KeyPad_Mode (w, True);
end if;
- -- TODO if Post(f) /= Form_Ok then it's a procedure
+ -- TODO if Post(f) /= Form_Ok then it is a procedure
declare
begin
Post (f);
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey --
+-- Copyright 2020,2021 Thomas E. Dickey --
-- Copyright 2000-2014,2015 Free Software Foundation, Inc. --
-- --
-- Permission is hereby granted, free of charge, to any person obtaining a --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.8 $
--- $Date: 2020/02/02 23:34:34 $
+-- $Revision: 1.9 $
+-- $Date: 2021/09/04 10:52:55 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
Refresh_Without_Update (win2);
Refresh_Without_Update (win1);
Update_Screen;
- when 'c' => -- fill window A so it's visible
+ when 'c' => -- fill window A so it is visible
fillwin (win1, 'A');
- when 'd' => -- fill window B so it's visible
+ when 'd' => -- fill window B so it is visible
fillwin (win2, 'B');
when 'e' => -- cross test pattern in window A
crosswin (win1, 'A');
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: INSTALL,v 1.232 2021/07/17 16:30:27 tom Exp $
+-- $Id: INSTALL,v 1.233 2021/09/01 23:29:12 tom Exp $
---------------------------------------------------------------------
How to install Ncurses/Terminfo on your system
---------------------------------------------------------------------
Please pick a name unique to your console driver and set that up
in the /etc/inittab table or local equivalent. Send the entry to the
terminfo maintainer (listed in the misc/terminfo file) to be included
- in the terminfo file, if it's not already there. See the
+ in the terminfo file, if it is not already there. See the
term(7) manual page included with this distribution for more on
conventions for choosing type names.
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3700 2021/08/28 22:32:19 tom Exp $
+-- $Id: NEWS,v 1.3704 2021/09/05 00:58:12 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.
+20210904
+ + modify linux3.0 entry to reflect default mapping of shift-tab by
+ kbd 1.14 (report by Jan Engelhardt) -TD
+ + add historical note to tput, curses-terminfo and curses-color
+ manpages based on source-code for SVr2, SVr3 and SVr4.
+ + minor grammatical fixes for "it's" vs "its" (report by Nick Black).
+ + amend fix for --disable-root-environ (report by Arnav Singh).
+ + build-fix for compiling link_test
+ + drop symbols GCC_PRINTF and GCC_SCANF from curses.h.in, to simplify
+ use (Debian #993179).
+
20210828
+ correct reversed check for --disable-root-environ (report/analysis
by Arnav Singh, cf: 20210626).
-5:0:10 6.2 20210828
+5:0:10 6.2 20210904
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: aclocal.m4,v 1.974 2021/08/28 20:24:23 tom Exp $
+dnl $Id: aclocal.m4,v 1.975 2021/09/04 10:36:30 tom Exp $
dnl Macros used in NCURSES auto-configuration script.
dnl
dnl These macros are maintained separately from NCURSES. The copyright on
CFLAGS="$cf_save_CXXFLAGS"
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ADD_INCDIR version: 16 updated: 2020/12/31 20:19:42
+dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04
dnl -------------
-dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
+dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it is
dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
dnl but old versions (and some misinstalled ones) need that. To make things
dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_BOOL_SIZE version: 17 updated: 2020/10/24 19:48:55
+dnl CF_BOOL_SIZE version: 18 updated: 2021/09/04 06:35:04
dnl ------------
dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
-dnl Don't bother looking for bool.h, since it's been deprecated.
+dnl Don't bother looking for bool.h, since it has been deprecated.
dnl
dnl If the current compiler is C rather than C++, we get the bool definition
dnl from <stdbool.h>.
CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_EXTERN_DATA version: 4 updated: 2015/04/18 08:56:57
+dnl CF_CHECK_EXTERN_DATA version: 5 updated: 2021/09/04 06:35:04
dnl --------------------
dnl Check for existence of external data in the current set of libraries. If
-dnl we can modify it, it's real enough.
+dnl we can modify it, it is real enough.
dnl $1 = the name to check
dnl $2 = its type
AC_DEFUN([CF_CHECK_EXTERN_DATA],
AC_SUBST(DIRS_TO_MAKE)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
+dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
dnl ---------------
-dnl You can always use "make -n" to see the actual options, but it's hard to
+dnl You can always use "make -n" to see the actual options, but it is hard to
dnl pick out/analyze warning messages when the compile-line is long.
dnl
dnl Sets:
AC_SUBST(MAKE_LOWER_TAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MANPAGE_FORMAT version: 14 updated: 2021/01/02 17:09:14
+dnl CF_MANPAGE_FORMAT version: 15 updated: 2021/09/04 06:35:04
dnl -----------------
dnl Option to allow user to override automatic configuration of manpage format.
dnl There are several special cases:
MANPATH="/usr/man:/usr/share/man"
fi
- # look for the 'date' man-page (it's most likely to be installed!)
+ # look for the 'date' man-page (it is most likely to be installed!)
MANPAGE_FORMAT=
cf_preform="no"
cf_catonly="yes"
test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SIZECHANGE version: 17 updated: 2021/01/01 13:31:04
+dnl CF_SIZECHANGE version: 18 updated: 2021/09/04 06:35:04
dnl -------------
dnl Check for definitions & structures needed for window size-changing
dnl
#ifdef NEED_PTEM_H
/* This is a workaround for SCO: they neglected to define struct winsize in
- * termios.h -- it's only in termio.h and ptem.h
+ * termios.h -- it is only in termio.h and ptem.h
*/
#include <sys/stream.h>
#include <sys/ptem.h>
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
+dnl CF_WITH_PATH version: 12 updated: 2021/09/04 06:35:04
dnl ------------
dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
dnl defaulting to yes/no.
dnl $2 = help-text
dnl $3 = environment variable to set
dnl $4 = default value, shown in the help-message, must be a constant
-dnl $5 = default value, if it's an expression & cannot be in the help-message
+dnl $5 = default value, if it is an expression & cannot be in the help-message
dnl
AC_DEFUN([CF_WITH_PATH],
[AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
AC_SUBST($3)dnl
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PATHLIST version: 12 updated: 2021/01/01 13:31:04
+dnl CF_WITH_PATHLIST version: 13 updated: 2021/09/04 06:35:04
dnl ----------------
dnl Process an option specifying a list of colon-separated paths.
dnl
dnl $2 = help-text
dnl $3 = environment variable to set
dnl $4 = default value, shown in the help-message, must be a constant
-dnl $5 = default value, if it's an expression & cannot be in the help-message
+dnl $5 = default value, if it is an expression & cannot be in the help-message
dnl $6 = flag to tell if we want to define or substitute
dnl
AC_DEFUN([CF_WITH_PATHLIST],[
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 1998-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* Demo code for NCursesMenu and NCursesForm written by
* Juergen Pfeifer
*
- * $Id: demo.cc,v 1.49 2020/09/13 00:47:00 tom Exp $
+ * $Id: demo.cc,v 1.50 2021/09/04 10:52:55 tom Exp $
*/
#include "internal.h"
}
// A refresh to any valid panel updates all panels and refreshes
- // the screen. Using mystd is just convenient - We know it's always
+ // the screen. Using mystd is just convenient - We know it is always
// valid until the end of the program.
mystd->refresh();
MANPATH="/usr/man:/usr/share/man"
fi
- # look for the 'date' man-page (it's most likely to be installed!)
+ # look for the 'date' man-page (it is most likely to be installed!)
MANPAGE_FORMAT=
cf_preform="no"
cf_catonly="yes"
#ifdef NEED_PTEM_H
/* This is a workaround for SCO: they neglected to define struct winsize in
- * termios.h -- it's only in termio.h and ptem.h
+ * termios.h -- it is only in termio.h and ptem.h
*/
#include <sys/stream.h>
#include <sys/ptem.h>
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1432 2021/08/28 11:20:53 tom Exp $
+# $Id: dist.mk,v 1.1433 2021/09/04 08:31:44 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 = 20210828
+NCURSES_PATCH = 20210904
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
<!--
- $Id: Ada95.html,v 1.16 2020/02/02 23:34:34 tom Exp $
+ $Id: Ada95.html,v 1.17 2021/09/04 10:52:55 tom Exp $
****************************************************************************
- * Copyright 2019,2020 Thomas E. Dickey *
+ * Copyright 2019-2020,2021 Thomas E. Dickey *
* Copyright 2000-2010,2013 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
<li>This is not a typical one-to-one interface mapping. It is
close to one-to-one on the functional level. Each (n)curses
- function has it's counterpart with a more or less similar
+ function has its counterpart with a more or less similar
formal parameter list in the binding. It is not one-to-one with
respect to the datatypes. I tried to make records out of the
flat chtype and similar structures, so you don't have to do bit
operations to mark an attributed character as bold. Just make
the boolean member <strong>bold</strong> of the record true.
The binding also hides the structures like WINDOW, PANEL, MENU,
- FORM etc. ! It's a pure functional API.</li>
+ FORM etc. ! It is a pure functional API.</li>
<li>I try to do as much error checking as possible and feasible
in the binding. I will raise an Ada exception when something
<li>Although Ada95 is an OO Language, this binding doesn't
provide an OO abstraction of the (n)curses functionality. As
- mentioned above it's a thin binding for the (n)curses
+ mentioned above it is a thin binding for the (n)curses
functions. But without any doubt it would be nice to build on
top of this an OO abstraction of (n)curses functionality.<br>
The only exception is the method how fieldtypes are represented
</li>
</ol>
- <p>These functions can be used interchangeably and it's a
+ <p>These functions can be used interchangeably and it is a
matter of style as to which class is used. Let's see each one
in detail.</p>
<tt class="LITERAL">newwin()</tt>. It doesn't create any
thing on the screen actually. It allocates memory for a
structure to manipulate the window and updates the
- structure with data regarding the window like it's size,
- beginy, beginx etc.. Hence in curses, a window is just an
+ structure with data regarding the window such as its size,
+ beginy, beginx etc. Hence in curses, a window is just an
abstraction of an imaginary window, which can be
manipulated independent of other parts of screen. The
function newwin() returns a pointer to structure WINDOW,
void destroy_win(WINDOW *local_win)
{
/* box(local_win, ' ', ' '); : This won't produce the desired
- * result of erasing the window. It will leave it's four corners
+ * result of erasing the window. It will leave its four corners
* and so an ugly remnant of window.
*/
wborder(local_win, ' ', ' ', ' ',' ',' ',' ',' ',' ');
<h3 class="SECT2"><a name="BORDEREXEXPL" id=
"BORDEREXEXPL">9.3. Explanation</a></h3>
- <p>Don't scream. I know it's a big example. But I have to
+ <p>Don't scream. I know it is a big example. But I have to
explain some important things here :-). This program
creates a rectangular window that can be moved with left,
right, up, down arrow keys. It repeatedly creates and
user. Let's deal with the keys first.</p>
<p>As you have seen in almost all of the above examples,
- it's very easy to get key input from the user. A simple way
+ it is very easy to get key input from the user. A simple way
of getting key presses is to use <tt class=
"LITERAL">getch()</tt> function. The cbreak mode should be
enabled to read keys when you are interested in reading
</pre>
<p>getmouse() returns the event into the pointer given to
- it. It's a structure which contains</p>
+ it. It is a structure which contains</p>
<pre class="PROGRAMLISTING">
typedef struct
{
used to copy a window completely onto another window. It
takes the source and destination windows as parameters and
according to the rectangle specified, it copies the
- rectangular region from source to destination window. It's
+ rectangular region from source to destination window. Its
last parameter specifies whether to overwrite or just
overlay the contents on to the destination window. If this
argument is true, then the copying is non-destructive.</p>
can be accessed using the function <tt class=
"LITERAL">panel_userptr()</tt> which will return the user
pointer for the panel given as argument. After finding the
- next panel in the cycle It's brought to the top by the
+ next panel in the cycle It is brought to the top by the
function top_panel(). This function brings the panel given
as argument to the top of the panel stack.</p>
</div>
the user presses <ENTER> present selection ends and
panel is resized by using the concept explained. While in
resizing mode the program doesn't show how the window is
- getting resized. It's left as an exercise to the reader to
+ getting resized. It is left as an exercise to the reader to
print a dotted border while it gets resized to a new
position.</p>
This brings us to the interesting option for an item the
one and only O_SELECTABLE. We can turn it off by the
function item_opts_off() and after that that item is not
- selectable. It's like a grayed item in those fancy windows
+ selectable. It is like a grayed item in those fancy windows
menus. Let's put these concepts in practice with this
example</p>
"MENUUSERPTR">17.9. The useful User Pointer</a></h3>
<p>We can associate a user pointer with each item in the
- menu. It works the same way as user pointer in panels. It's
+ menu. It works the same way as user pointer in panels. It is
not touched by menu system. You can store any thing you
like in that. I usually use it to store the function to be
- executed when the menu option is chosen (It's selected and
+ executed when the menu option is chosen (It is selected and
may be the user pressed <ENTER>);</p>
<div class="EXAMPLE">
<p>Well. If you have seen those forms on web pages which take
input from users and do various kinds of things, you might be
wondering how would any one create such forms in text mode
- display. It's quite difficult to write those nifty forms in
+ display. It is quite difficult to write those nifty forms in
plain ncurses. Forms library tries to provide a basic frame
work to build and maintain forms with ease. It has lot of
features(functions) which manage validation, dynamic
int field_status(FIELD *field); /* fetch status of field */
</pre>
- <p>It's better to check the field's status only after
+ <p>It is better to check the field's status only after
after leaving the field, as data buffer might not have
been updated yet as the validation is still due. To
guarantee that right status is returned, call
field_opts_off(field_pointer, O_STATIC);
</pre>
- <p>But it's usually not advisable to allow a field to
+ <p>But it is usually not advisable to allow a field to
grow infinitely. You can set a maximum limit to the
growth of the field with</p>
<pre class="PROGRAMLISTING">
</ul>
<p>The following are the pre-defined validation types. You
- can also specify custom validation, though it's a bit
+ can also specify custom validation, though it is a bit
tricky and cumbersome.</p>
<h1 class="BRIDGEHEAD"><a name="AEN1069" id=
<p>The width argument sets a minimum width of data. The
user has to enter at-least width number of characters
before he can leave the field. Typically you'll want to set
- this to the field width; if it's greater than the field
+ this to the field width; if it is greater than the field
width, the validation check will always fail. A minimum
width of zero makes field completion optional.</p>
<p>The width argument sets a minimum width of data. As with
TYPE_ALPHA, typically you'll want to set this to the field
- width; if it's greater than the field width, the validation
+ width; if it is greater than the field width, the validation
check will always fail. A minimum width of zero makes field
completion optional.</p>
<p>As you have seen some of the examples above, you have to
be in a loop looking for user input and then decide whether
- it's a field data or a form request. The form requests are
+ it is a field data or a form request. The form requests are
then passed to form_driver() to do the work.</p>
<p>The requests roughly can be divided into following
development of full screen curses programs.</i></span></p>
<p>The kit provides some useful widgets, which can be used
- in your programs directly. It's pretty well written and the
+ in your programs directly. It is pretty well written and the
documentation is very good. The examples in the examples
directory can be a good place to start for beginners. The
CDK can be downloaded from <a href=
<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_90_16" TARGET="main">tgetnum</A>
<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_109_16" TARGET="main">tgetstr - terminal_interface-curses-termcap.adb:109</A>
<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_130_16" TARGET="main">tgetstr - terminal_interface-curses-termcap.adb:130</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_152_16" TARGET="main">tgoto</A>
<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_54_13" TARGET="main">TGoto</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_152_16" TARGET="main">tgoto</A>
<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_70_16" TARGET="main">tigetflag</A>
<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_88_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:88</A>
<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_109_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:109</A>
</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 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
</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 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
</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 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_color.3x,v 1.64 2021/06/17 21:30:22 tom Exp @
+ * @Id: curs_color.3x,v 1.66 2021/09/04 19:42:20 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<STRONG>o</STRONG> Color RGB values are not settable.
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ SVr3.2 introduced color support to curses in 1987.
+
+ SVr4 made internal changes, e.g., moving the storage for the color
+ state from <STRONG>SP</STRONG> (the <STRONG>SCREEN</STRONG> structure) to <STRONG>cur_term</STRONG> (the <STRONG>TERMINAL</STRONG> struc-
+ ture), but provided the same set of library functions.
+
+ SVr4 curses limits the number of color pairs to 64, reserving color
+ pair zero (0) as the terminal's initial uncolored state. This limit
+ arises because the color pair information is a bitfield in the <STRONG>chtype</STRONG>
+ data type (denoted by <STRONG>A_COLOR</STRONG>).
+
+ Other implementations of curses had different limits:
+
+ <STRONG>o</STRONG> PCCurses (1987-1990) provided for only eight (8) colors.
+
+ <STRONG>o</STRONG> PDCurses (1992-present) inherited the 8-color limitation from PC-
+ Curses, but changed this to 256 in version 2.5 (2001), along with
+ changing <STRONG>chtype</STRONG> from 16-bits to 32-bits.
+
+ <STRONG>o</STRONG> X/Open Curses (1992-present) added a new structure <STRONG>cchar_t</STRONG> to store
+ the character, attributes and color-pair values, allowing increased
+ range of color-pairs. Both color-pairs and color-values used a
+ signed <STRONG>short</STRONG>, limiting values to 15 bits.
+
+ <STRONG>o</STRONG> ncurses (1992-present) uses eight bits for <STRONG>A_COLOR</STRONG> in <STRONG>chtype</STRONG> val-
+ ues.
+
+ Version 5.3 provided a wide-character interface (2002), but left
+ color-pairs as part of the attributes-field.
+
+ Since version 6 (2015), ncurses uses a separate <STRONG>int</STRONG> for color-pairs
+ in the <STRONG>cchar_t</STRONG> values. When those color-pair values fit in 8 bits,
+ ncurses allows color-pairs to be manipulated via the functions us-
+ ing <STRONG>chtype</STRONG> values.
+
+ <STRONG>o</STRONG> NetBSD curses used 6 bits from 2000 (when colors were first sup-
+ ported) until 2004. At that point, NetBSD changed to use 10 bits.
+ As of 2021, that size is unchanged. Like ncurses before version 6,
+ the NetBSD color-pair information is stored in the attributes field
+ of <STRONG>cchar_t</STRONG>, limiting the number of color-pairs by the size of the
+ bitfield.
+
+
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
This implementation satisfies XSI Curses's minimum maximums for <STRONG>COLORS</STRONG>
and <STRONG>COLOR_PAIRS</STRONG>.
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</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>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_terminfo.3x,v 1.75 2021/06/17 21:11:08 tom Exp @
+ * @Id: curs_terminfo.3x,v 1.76 2021/09/04 19:58:03 tom Exp @
* ***************************************************************************
* ***************************************************************************
* ***************************************************************************
ters supported by <STRONG>tgoto</STRONG>).
SVr3 introduced the functions for switching between terminal descrip-
- tions, e.g., <STRONG>set_curterm</STRONG>. The various global variables such as <STRONG>bool-</STRONG>
- <STRONG>names</STRONG> were mentioned in the programming manual at this point.
+ tions, e.g., <STRONG>set_curterm</STRONG>. Some of that was incremental improvements to
+ the SVr2 library:
+
+ <STRONG>o</STRONG> The <STRONG>TERMINAL</STRONG> type definition was introduced in SVr3.01, for the
+ <STRONG>term</STRONG> structure provided in SVr2.
+
+ <STRONG>o</STRONG> The various global variables such as <STRONG>boolnames</STRONG> were mentioned in
+ the programming manual at this point, though the variables were
+ provided in SVr2.
SVr4 added the <STRONG>vid_attr</STRONG> and <STRONG>vid_puts</STRONG> functions.
</PRE><H3><a name="h3-Legacy-functions">Legacy functions</a></H3><PRE>
X/Open notes that <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> may be macros.
- The function <STRONG>setterm</STRONG> is not described by X/Open and must be considered
+ The function <STRONG>setterm</STRONG> is not described by X/Open and must be considered
non-portable. All other functions are as described by X/Open.
</PRE><H3><a name="h3-Legacy-data">Legacy data</a></H3><PRE>
- <STRONG>setupterm</STRONG> copies the terminal name to the array <STRONG>ttytype</STRONG>. This is not
+ <STRONG>setupterm</STRONG> copies the terminal name to the array <STRONG>ttytype</STRONG>. This is not
part of X/Open Curses, but is assumed by some applications.
- Other implementions may not declare the capability name arrays. Some
+ Other implementions may not declare the capability name arrays. Some
provide them without declaring them. X/Open does not specify them.
Extended terminal capability names, e.g., as defined by <STRONG>tic</STRONG> <STRONG>-x</STRONG>, are not
</PRE><H3><a name="h3-Output-buffering">Output buffering</a></H3><PRE>
- Older versions of <STRONG>ncurses</STRONG> assumed that the file descriptor passed to
+ Older versions of <STRONG>ncurses</STRONG> assumed that the file descriptor passed to
<STRONG>setupterm</STRONG> from <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> uses buffered I/O, and would write to
- the corresponding stream. In addition to the limitation that the ter-
- minal was left in block-buffered mode on exit (like System V curses),
- it was problematic because <STRONG>ncurses</STRONG> did not allow a reliable way to
+ the corresponding stream. In addition to the limitation that the ter-
+ minal was left in block-buffered mode on exit (like System V curses),
+ it was problematic because <STRONG>ncurses</STRONG> did not allow a reliable way to
cleanup on receiving SIGTSTP.
- The current version (ncurses6) uses output buffers managed directly by
+ The current version (ncurses6) uses output buffers managed directly by
<STRONG>ncurses</STRONG>. Some of the low-level functions described in this manual page
write to the standard output. They are not signal-safe. The high-lev-
el functions in <STRONG>ncurses</STRONG> use alternate versions of these functions using
</PRE><H3><a name="h3-Function-prototypes">Function prototypes</a></H3><PRE>
The X/Open Curses prototypes are based on the SVr4 curses header decla-
- rations, which were defined at the same time the C language was first
+ rations, which were defined at the same time the C language was first
standardized in the late 1980s.
- <STRONG>o</STRONG> X/Open Curses uses <STRONG>const</STRONG> less effectively than a later design
- might, in some cases applying it needlessly to values are already
- constant, and in most cases overlooking parameters which normally
- would use <STRONG>const</STRONG>. Using constant parameters for functions which do
+ <STRONG>o</STRONG> X/Open Curses uses <STRONG>const</STRONG> less effectively than a later design
+ might, in some cases applying it needlessly to values are already
+ constant, and in most cases overlooking parameters which normally
+ would use <STRONG>const</STRONG>. Using constant parameters for functions which do
not use <STRONG>const</STRONG> may prevent the program from compiling. On the other
hand, <EM>writable</EM> <EM>strings</EM> are an obsolescent feature.
- As an extension, this implementation can be configured to change
- the function prototypes to use the <STRONG>const</STRONG> keyword. The ncurses ABI
+ As an extension, this implementation can be configured to change
+ the function prototypes to use the <STRONG>const</STRONG> keyword. The ncurses ABI
6 enables this feature by default.
- <STRONG>o</STRONG> X/Open Curses prototypes <STRONG>tparm</STRONG> with a fixed number of parameters,
+ <STRONG>o</STRONG> X/Open Curses prototypes <STRONG>tparm</STRONG> with a fixed number of parameters,
rather than a variable argument list.
- This implementation uses a variable argument list, but can be con-
- figured to use the fixed-parameter list. Portable applications
- should provide 9 parameters after the format; zeroes are fine for
+ This implementation uses a variable argument list, but can be con-
+ figured to use the fixed-parameter list. Portable applications
+ should provide 9 parameters after the format; zeroes are fine for
this purpose.
- In response to review comments by Thomas E. Dickey, X/Open Curses
+ In response to review comments by Thomas E. Dickey, X/Open Curses
Issue 7 proposed the <STRONG>tiparm</STRONG> function in mid-2009.
</PRE><H3><a name="h3-Special-TERM-treatment">Special TERM treatment</a></H3><PRE>
If configured to use the terminal-driver, e.g., for the MinGW port,
- <STRONG>o</STRONG> <STRONG>setupterm</STRONG> interprets a missing/empty TERM variable as the special
+ <STRONG>o</STRONG> <STRONG>setupterm</STRONG> interprets a missing/empty TERM variable as the special
value "unknown".
- <STRONG>o</STRONG> <STRONG>setupterm</STRONG> allows explicit use of the the windows console driver by
- checking if $TERM is set to "#win32con" or an abbreviation of that
+ <STRONG>o</STRONG> <STRONG>setupterm</STRONG> allows explicit use of the the windows console driver by
+ checking if $TERM is set to "#win32con" or an abbreviation of that
string.
</PRE><H3><a name="h3-Other-portability-issues">Other portability issues</a></H3><PRE>
- In System V Release 4, <STRONG>set_curterm</STRONG> has an <STRONG>int</STRONG> return type and returns
+ In System V Release 4, <STRONG>set_curterm</STRONG> has an <STRONG>int</STRONG> return type and returns
<STRONG>OK</STRONG> or <STRONG>ERR</STRONG>. We have chosen to implement the X/Open Curses semantics.
- In System V Release 4, the third argument of <STRONG>tputs</STRONG> has the type <STRONG>int</STRONG>
+ In System V Release 4, the third argument of <STRONG>tputs</STRONG> has the type <STRONG>int</STRONG>
<STRONG>(*putc)(char)</STRONG>.
- At least one implementation of X/Open Curses (Solaris) returns a value
- other than <STRONG>OK</STRONG>/<STRONG>ERR</STRONG> from <STRONG>tputs</STRONG>. That returns the length of the string,
+ At least one implementation of X/Open Curses (Solaris) returns a value
+ other than <STRONG>OK</STRONG>/<STRONG>ERR</STRONG> from <STRONG>tputs</STRONG>. That returns the length of the string,
and does no error-checking.
- X/Open notes that after calling <STRONG>mvcur</STRONG>, the curses state may not match
+ X/Open notes that after calling <STRONG>mvcur</STRONG>, the curses state may not match
the actual terminal state, and that an application should touch and re-
fresh the window before resuming normal curses calls. Both <STRONG>ncurses</STRONG> and
- System V Release 4 curses implement <STRONG>mvcur</STRONG> using the SCREEN data allo-
- cated in either <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>. So though it is documented as a
- terminfo function, <STRONG>mvcur</STRONG> is really a curses function which is not well
+ System V Release 4 curses implement <STRONG>mvcur</STRONG> using the SCREEN data allo-
+ cated in either <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>. So though it is documented as a
+ terminfo function, <STRONG>mvcur</STRONG> is really a curses function which is not well
specified.
- X/Open states that the old location must be given for <STRONG>mvcur</STRONG>. This im-
- plementation allows the caller to use -1's for the old ordinates. In
+ X/Open states that the old location must be given for <STRONG>mvcur</STRONG>. This im-
+ plementation allows the caller to use -1's for the old ordinates. In
that case, the old location is unknown.
</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_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>,
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>,
<STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
<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 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
https://invisible-island.net/ncurses/tctest.html
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
</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="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(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 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
</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 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
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 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
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
</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 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
</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 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
</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="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</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 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
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 20210828).
+ This manual describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
</PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
<STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(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 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
<STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(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 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tput.1,v 1.67 2021/06/17 21:11:08 tom Exp @
+ * @Id: tput.1,v 1.70 2021/09/04 19:02:50 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
The <STRONG>tput</STRONG> command was begun by Bill Joy in 1980. The initial version
only cleared the screen.
- AT&T System V provided a different <STRONG>tput</STRONG> command, whose <STRONG>init</STRONG> and <STRONG>reset</STRONG>
- subcommands (more than half the program) were incorporated from the
- <STRONG>reset</STRONG> feature of BSD <STRONG>tset</STRONG> written by Eric Allman.
+ AT&T System V provided a different <STRONG>tput</STRONG> command:
- Keith Bostic replaced the BSD <STRONG>tput</STRONG> command in 1989 with a new
- implementation based on the AT&T System V program <STRONG>tput</STRONG>. Like the AT&T
- program, Bostic's version accepted some parameters named for <EM>terminfo</EM>
- <EM>capabilities</EM> (<STRONG>clear</STRONG>, <STRONG>init</STRONG>, <STRONG>longname</STRONG> and <STRONG>reset</STRONG>). However (because he
- had only termcap available), it accepted <EM>termcap</EM> <EM>names</EM> for other
- capabilities. Also, Bostic's BSD <STRONG>tput</STRONG> did not modify the terminal I/O
+ <STRONG>o</STRONG> SVr2 provided a rudimentary <STRONG>tput</STRONG> which checked the parameter
+ against each predefined capability and returned the corresponding
+ value. This version of <STRONG>tput</STRONG> did not use <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> for the
+ capabilities which are parameterized.
+
+ <STRONG>o</STRONG> SVr3 replaced that, a year later, by a more extensive program whose
+ <STRONG>init</STRONG> and <STRONG>reset</STRONG> subcommands (more than half the program) were
+ incorporated from the <STRONG>reset</STRONG> feature of BSD <STRONG>tset</STRONG> written by Eric
+ Allman.
+
+ <STRONG>o</STRONG> SVr4 added color initialization using the <EM>orig</EM><STRONG>_</STRONG><EM>colors</EM> and
+ <EM>orig</EM><STRONG>_</STRONG><EM>pairs</EM> capabilities in the <STRONG>init</STRONG> subcommand.
+
+ Keith Bostic replaced the BSD <STRONG>tput</STRONG> command in 1989 with a new
+ implementation based on the AT&T System V program <STRONG>tput</STRONG>. Like the AT&T
+ program, Bostic's version accepted some parameters named for <EM>terminfo</EM>
+ <EM>capabilities</EM> (<STRONG>clear</STRONG>, <STRONG>init</STRONG>, <STRONG>longname</STRONG> and <STRONG>reset</STRONG>). However (because he
+ had only termcap available), it accepted <EM>termcap</EM> <EM>names</EM> for other
+ capabilities. Also, Bostic's BSD <STRONG>tput</STRONG> did not modify the terminal I/O
modes as the earlier BSD <STRONG>tset</STRONG> had done.
At the same time, Bostic added a shell script named "clear", which used
<STRONG>tput</STRONG> to clear the screen.
- Both of these appeared in 4.4BSD, becoming the "modern" BSD
+ Both of these appeared in 4.4BSD, becoming the "modern" BSD
implementation of <STRONG>tput</STRONG>.
- This implementation of <STRONG>tput</STRONG> began from a different source than AT&T or
- BSD: Ross Ridge's <EM>mytinfo</EM> package, published on <EM>comp.sources.unix</EM> in
- December 1992. Ridge's program made more sophisticated use of the
- terminal capabilities than the BSD program. Eric Raymond used that
- <STRONG>tput</STRONG> program (and other parts of <EM>mytinfo</EM>) in ncurses in June 1995.
- Using the portions dealing with terminal capabilities almost without
- change, Raymond made improvements to the way the command-line
+ This implementation of <STRONG>tput</STRONG> began from a different source than AT&T or
+ BSD: Ross Ridge's <EM>mytinfo</EM> package, published on <EM>comp.sources.unix</EM> in
+ December 1992. Ridge's program made more sophisticated use of the
+ terminal capabilities than the BSD program. Eric Raymond used that
+ <STRONG>tput</STRONG> program (and other parts of <EM>mytinfo</EM>) in ncurses in June 1995.
+ Using the portions dealing with terminal capabilities almost without
+ change, Raymond made improvements to the way the command-line
parameters were handled.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- This implementation of <STRONG>tput</STRONG> differs from AT&T <STRONG>tput</STRONG> in two important
+ This implementation of <STRONG>tput</STRONG> differs from AT&T <STRONG>tput</STRONG> in two important
areas:
- <STRONG>o</STRONG> <STRONG>tput</STRONG> <EM>capname</EM> writes to the standard output. That need not be a
- regular terminal. However, the subcommands which manipulate
+ <STRONG>o</STRONG> <STRONG>tput</STRONG> <EM>capname</EM> writes to the standard output. That need not be a
+ regular terminal. However, the subcommands which manipulate
terminal modes may not use the standard output.
- The AT&T implementation's <STRONG>init</STRONG> and <STRONG>reset</STRONG> commands use the BSD
- (4.1c) <STRONG>tset</STRONG> source, which manipulates terminal modes. It
- successively tries standard output, standard error, standard input
+ The AT&T implementation's <STRONG>init</STRONG> and <STRONG>reset</STRONG> commands use the BSD
+ (4.1c) <STRONG>tset</STRONG> source, which manipulates terminal modes. It
+ successively tries standard output, standard error, standard input
before falling back to "/dev/tty" and finally just assumes a 1200Bd
terminal. When updating terminal modes, it ignores errors.
- Until changes made after ncurses 6.0, <STRONG>tput</STRONG> did not modify terminal
+ Until changes made after ncurses 6.0, <STRONG>tput</STRONG> did not modify terminal
modes. <STRONG>tput</STRONG> now uses a similar scheme, using functions shared with
- <STRONG>tset</STRONG> (and ultimately based on the 4.4BSD <STRONG>tset</STRONG>). If it is not able
+ <STRONG>tset</STRONG> (and ultimately based on the 4.4BSD <STRONG>tset</STRONG>). If it is not able
to open a terminal, e.g., when running in <STRONG>cron</STRONG>, <STRONG>tput</STRONG> will return an
error.
of the characters are numeric, or not.
Most implementations which provide support for <EM>capname</EM> operands use
- the <EM>tparm</EM> function to expand parameters in it. That function
- expects a mixture of numeric and string parameters, requiring <STRONG>tput</STRONG>
+ the <EM>tparm</EM> function to expand parameters in it. That function
+ expects a mixture of numeric and string parameters, requiring <STRONG>tput</STRONG>
to know which type to use.
- This implementation uses a table to determine the parameter types
+ This implementation uses a table to determine the parameter types
for the standard <EM>capname</EM> operands, and an internal library function
to analyze nonstandard <EM>capname</EM> operands.
This implementation (unlike others) can accept both <EM>termcap</EM> and
- <EM>terminfo</EM> names for the <EM>capname</EM> feature, if <EM>termcap</EM> support is compiled
- in. However, the predefined <EM>termcap</EM> and <EM>terminfo</EM> names have two
+ <EM>terminfo</EM> names for the <EM>capname</EM> feature, if <EM>termcap</EM> support is compiled
+ in. However, the predefined <EM>termcap</EM> and <EM>terminfo</EM> names have two
ambiguities in this case (and the <EM>terminfo</EM> name is assumed):
- <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>dl</STRONG> corresponds to the <EM>terminfo</EM> name <STRONG>dl1</STRONG> (delete
+ <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>dl</STRONG> corresponds to the <EM>terminfo</EM> name <STRONG>dl1</STRONG> (delete
one line).
- The <EM>terminfo</EM> name <STRONG>dl</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>DL</STRONG> (delete a
+ The <EM>terminfo</EM> name <STRONG>dl</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>DL</STRONG> (delete a
given number of lines).
- <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>ed</STRONG> corresponds to the <EM>terminfo</EM> name <STRONG>rmdc</STRONG> (end
+ <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>ed</STRONG> corresponds to the <EM>terminfo</EM> name <STRONG>rmdc</STRONG> (end
delete mode).
- The <EM>terminfo</EM> name <STRONG>ed</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>cd</STRONG> (clear to
+ The <EM>terminfo</EM> name <STRONG>ed</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>cd</STRONG> (clear to
end of screen).
- The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitution features
- used in the <STRONG>cup</STRONG> example, were not supported in BSD curses before
+ The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitution features
+ used in the <STRONG>cup</STRONG> example, were not supported in BSD curses before
4.3reno (1989) or in AT&T/USL curses before SVr4 (1988).
- IEEE Std 1003.1/The Open Group Base Specifications Issue 7
- (POSIX.1-2008) documents only the operands for <STRONG>clear</STRONG>, <STRONG>init</STRONG> and <STRONG>reset</STRONG>.
+ IEEE Std 1003.1/The Open Group Base Specifications Issue 7
+ (POSIX.1-2008) documents only the operands for <STRONG>clear</STRONG>, <STRONG>init</STRONG> and <STRONG>reset</STRONG>.
There are a few interesting observations to make regarding that:
- <STRONG>o</STRONG> In this implementation, <STRONG>clear</STRONG> is part of the <EM>capname</EM> support. The
- others (<STRONG>init</STRONG> and <STRONG>longname</STRONG>) do not correspond to terminal
+ <STRONG>o</STRONG> In this implementation, <STRONG>clear</STRONG> is part of the <EM>capname</EM> support. The
+ others (<STRONG>init</STRONG> and <STRONG>longname</STRONG>) do not correspond to terminal
capabilities.
<STRONG>o</STRONG> Other implementations of <STRONG>tput</STRONG> on SVr4-based systems such as
- Solaris, IRIX64 and HPUX as well as others such as AIX and Tru64
+ Solaris, IRIX64 and HPUX as well as others such as AIX and Tru64
provide support for <EM>capname</EM> operands.
<STRONG>o</STRONG> A few platforms such as FreeBSD recognize termcap names rather than
terminfo capability names in their respective <STRONG>tput</STRONG> commands. Since
- 2010, NetBSD's <STRONG>tput</STRONG> uses terminfo names. Before that, it (like
+ 2010, NetBSD's <STRONG>tput</STRONG> uses terminfo names. Before that, it (like
FreeBSD) recognized termcap names.
- Beginning in 2021, FreeBSD uses the ncurses <STRONG>tput</STRONG>, configured for
+ Beginning in 2021, FreeBSD uses the ncurses <STRONG>tput</STRONG>, configured for
both terminfo (tested first) and termcap (as a fallback).
Because (apparently) <EM>all</EM> of the certified Unix systems support the full
- set of capability names, the reasoning for documenting only a few may
+ set of capability names, the reasoning for documenting only a few may
not be apparent.
- <STRONG>o</STRONG> X/Open Curses Issue 7 documents <STRONG>tput</STRONG> differently, with <EM>capname</EM> and
+ <STRONG>o</STRONG> X/Open Curses Issue 7 documents <STRONG>tput</STRONG> differently, with <EM>capname</EM> and
the other features used in this implementation.
- <STRONG>o</STRONG> That is, there are two standards for <STRONG>tput</STRONG>: POSIX (a subset) and
- X/Open Curses (the full implementation). POSIX documents a subset
- to avoid the complication of including X/Open Curses and the
+ <STRONG>o</STRONG> That is, there are two standards for <STRONG>tput</STRONG>: POSIX (a subset) and
+ X/Open Curses (the full implementation). POSIX documents a subset
+ to avoid the complication of including X/Open Curses and the
terminal capabilities database.
- <STRONG>o</STRONG> While it is certainly possible to write a <STRONG>tput</STRONG> program without
- using curses, none of the systems which have a curses
- implementation provide a <STRONG>tput</STRONG> utility which does not provide the
+ <STRONG>o</STRONG> While it is certainly possible to write a <STRONG>tput</STRONG> program without
+ using curses, none of the systems which have a curses
+ implementation provide a <STRONG>tput</STRONG> utility which does not provide the
<EM>capname</EM> feature.
X/Open Curses Issue 7 (2009) is the first version to document
utilities. However that part of X/Open Curses does not follow existing
practice (i.e., Unix features documented in SVID 3):
- <STRONG>o</STRONG> It assigns exit code 4 to "invalid operand", which may be the same
- as <EM>unknown</EM> <EM>capability</EM>. For instance, the source code for Solaris'
+ <STRONG>o</STRONG> It assigns exit code 4 to "invalid operand", which may be the same
+ as <EM>unknown</EM> <EM>capability</EM>. For instance, the source code for Solaris'
xcurses uses the term "invalid" in this case.
- <STRONG>o</STRONG> It assigns exit code 255 to a numeric variable that is not
+ <STRONG>o</STRONG> It assigns exit code 255 to a numeric variable that is not
specified in the terminfo database. That likely is a documentation
- error, confusing the <STRONG>-1</STRONG> written to the standard output for an
+ error, confusing the <STRONG>-1</STRONG> written to the standard output for an
absent or cancelled numeric value versus an (unsigned) exit code.
- The various Unix systems (AIX, HPUX, Solaris) use the same exit-codes
+ The various Unix systems (AIX, HPUX, Solaris) use the same exit-codes
as ncurses.
NetBSD curses documents different exit codes which do not correspond to
</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="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
<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 20210828).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
#include "form.priv.h"
-MODULE_ID("$Id: frm_driver.c,v 1.134 2021/03/27 23:49:58 tom Exp $")
+MODULE_ID("$Id: frm_driver.c,v 1.135 2021/09/01 23:34:01 tom Exp $")
/*----------------------------------------------------------------------------
This is the core module of the form library. It contains the majority
| Function : static FIELD *Down_Neighbor_Field(FIELD * field)
|
| Description : Because of the row-major nature of sorting the fields,
-| it's more difficult to define what the down neighbor
+| it is more difficult to define what the down neighbor
| field really means. We define that it must be on a
| 'next' line (cyclic order!) and is the leftmost
| field laying on the right side of the given field. If
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2020,2021 Thomas E. Dickey #
# Copyright 1998-2015,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
# Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995
# and: Eric S. Raymond <esr@snark.thyrsus.com>
#
-# $Id: Caps,v 1.46 2020/10/17 21:30:19 tom Exp $
+# $Id: Caps,v 1.47 2021/09/04 10:52:55 tom Exp $
#
# This is the master termcap/terminfo capability table.
#
#
# The codes following [Y-] in column 7 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# proper; rather, it is there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
# lot of old termcap-using programs). The codes read as follows:
# B = mentioned in the BSD man page for 4.4BSD curses
# 3. List it in the standard table. You almost certainly do *not* want
# to do this -- the capabilities in that one, and their order, have been
# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up to the ncurses
-# library what to do with the terminfo data after it's read in.
+# as a terminfo object, and breaking this would be bad. It is up to the ncurses
+# library what to do with the terminfo data after it is read in.
#
# 4. List it in the aliases table with an IGNORE target field. If you
# do this, the capability will be ignored on input (though the user will
# 5. List it in the extensions table. If you do this, the compiler will
# silently accept the capability, but the curses library proper will never
# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
+# format). It is up to you what you have the compiler do with it.
#
# There are two opposite reasons to choose option 5. One is when you want
# to eat the capability silently and discard it when doing translations
return_does_clr_eol OTxr bool xr - - YB--- return clears the line
# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
#
-# mytinfo described this as a termcap capability, but it's not listed in the
+# mytinfo described this as a termcap capability, but it is not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2020,2021 Thomas E. Dickey #
# Copyright 2001-2015,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
#
# Author: Thomas Dickey
#
-# $Id: Caps.aix4,v 1.18 2020/10/17 21:30:19 tom Exp $
+# $Id: Caps.aix4,v 1.19 2021/09/04 10:52:55 tom Exp $
#
# This is an adaptation of ncurses' termcap/terminfo capability table, which
# is designed to align with AIX 4.x's terminfo.
#
# The codes following [Y-] in column 7 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# proper; rather, it is there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
# lot of old termcap-using programs). The codes read as follows:
# B = mentioned in the BSD man page for 4.4BSD curses
# 3. List it in the standard table. You almost certainly do *not* want
# to do this -- the capabilities in that one, and their order, have been
# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up to the ncurses
-# library what to do with the terminfo data after it's read in.
+# as a terminfo object, and breaking this would be bad. It is up to the ncurses
+# library what to do with the terminfo data after it is read in.
#
# 4. List it in the aliases table with an IGNORE target field. If you
# do this, the capability will be ignored on input (though the user will
# 5. List it in the extensions table. If you do this, the compiler will
# silently accept the capability, but the curses library proper will never
# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
+# format). It is up to you what you have the compiler do with it.
#
# There are two opposite reasons to choose option 5. One is when you want
# to eat the capability silently and discard it when doing translations
return_does_clr_eol OTxr bool xr - - YB--- return clears the line
# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
#
-# mytinfo described this as a termcap capability, but it's not listed in the
+# mytinfo described this as a termcap capability, but it is not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2020,2021 Thomas E. Dickey #
# Copyright 2002-2015,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
#
# Author: Thomas Dickey
#
-# $Id: Caps.hpux11,v 1.16 2020/10/17 21:30:19 tom Exp $
+# $Id: Caps.hpux11,v 1.17 2021/09/04 10:52:55 tom Exp $
#
# This is an adaptation of ncurses' termcap/terminfo capability table, which
# is designed to align with HPUX 11.x's terminfo.
#
# The codes following [Y-] in column 7 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# proper; rather, it is there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
# lot of old termcap-using programs). The codes read as follows:
# B = mentioned in the BSD man page for 4.4BSD curses
# 3. List it in the standard table. You almost certainly do *not* want
# to do this -- the capabilities in that one, and their order, have been
# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up to the ncurses
-# library what to do with the terminfo data after it's read in.
+# as a terminfo object, and breaking this would be bad. It is up to the ncurses
+# library what to do with the terminfo data after it is read in.
#
# 4. List it in the aliases table with an IGNORE target field. If you
# do this, the capability will be ignored on input (though the user will
# 5. List it in the extensions table. If you do this, the compiler will
# silently accept the capability, but the curses library proper will never
# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
+# format). It is up to you what you have the compiler do with it.
#
# There are two opposite reasons to choose option 5. One is when you want
# to eat the capability silently and discard it when doing translations
return_does_clr_eol OTxr bool xr - - YB--- return clears the line
# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
#
-# mytinfo described this as a termcap capability, but it's not listed in the
+# mytinfo described this as a termcap capability, but it is not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2020,2021 Thomas E. Dickey #
# Copyright 2001-2015,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
# Author: Thomas Dickey
# and: Ilya Zakharevich
#
-# $Id: Caps.keys,v 1.15 2020/10/17 21:30:19 tom Exp $
+# $Id: Caps.keys,v 1.16 2021/09/04 10:52:55 tom Exp $
#
# This is an adaptation of ncurses' termcap/terminfo capability table, which
# is illustrates an experimental extension to describe alt-, shift- and
#
# The codes following [Y-] in column 7 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# proper; rather, it is there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
# lot of old termcap-using programs). The codes read as follows:
# B = mentioned in the BSD man page for 4.4BSD curses
# 3. List it in the standard table. You almost certainly do *not* want
# to do this -- the capabilities in that one, and their order, have been
# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up to the ncurses
-# library what to do with the terminfo data after it's read in.
+# as a terminfo object, and breaking this would be bad. It is up to the ncurses
+# library what to do with the terminfo data after it is read in.
#
# 4. List it in the aliases table with an IGNORE target field. If you
# do this, the capability will be ignored on input (though the user will
# 5. List it in the extensions table. If you do this, the compiler will
# silently accept the capability, but the curses library proper will never
# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
+# format). It is up to you what you have the compiler do with it.
#
# There are two opposite reasons to choose option 5. One is when you want
# to eat the capability silently and discard it when doing translations
return_does_clr_eol OTxr bool xr - - YB--- return clears the line
# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
#
-# mytinfo described this as a termcap capability, but it's not listed in the
+# mytinfo described this as a termcap capability, but it is not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2020,2021 Thomas E. Dickey #
# Copyright 2002-2015,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
#
# Author: Thomas Dickey
#
-# $Id: Caps.osf1r5,v 1.14 2020/10/17 21:30:19 tom Exp $
+# $Id: Caps.osf1r5,v 1.15 2021/09/04 10:52:55 tom Exp $
#
# This is an adaptation of ncurses' termcap/terminfo capability table, which
# is designed to align with OSF/1 version 5 (Tru64) terminfo.
#
# The codes following [Y-] in column 7 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# proper; rather, it is there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
# lot of old termcap-using programs). The codes read as follows:
# B = mentioned in the BSD man page for 4.4BSD curses
# 3. List it in the standard table. You almost certainly do *not* want
# to do this -- the capabilities in that one, and their order, have been
# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up to the ncurses
-# library what to do with the terminfo data after it's read in.
+# as a terminfo object, and breaking this would be bad. It is up to the ncurses
+# library what to do with the terminfo data after it is read in.
#
# 4. List it in the aliases table with an IGNORE target field. If you
# do this, the capability will be ignored on input (though the user will
# 5. List it in the extensions table. If you do this, the compiler will
# silently accept the capability, but the curses library proper will never
# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
+# format). It is up to you what you have the compiler do with it.
#
# There are two opposite reasons to choose option 5. One is when you want
# to eat the capability silently and discard it when doing translations
return_does_clr_eol OTxr bool xr - - YB--- return clears the line
# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
#
-# mytinfo described this as a termcap capability, but it's not listed in the
+# mytinfo described this as a termcap capability, but it is not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2020,2021 Thomas E. Dickey #
# Copyright 2001-2015,2016 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
#
# Author: Thomas Dickey
#
-# $Id: Caps.uwin,v 1.13 2020/10/17 21:30:19 tom Exp $
+# $Id: Caps.uwin,v 1.14 2021/09/04 10:52:55 tom Exp $
#
# This is an adaptation of ncurses' termcap/terminfo capability table, which
# is designed to align with U/Win's terminfo.
#
# The codes following [Y-] in column 7 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# proper; rather, it is there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
# lot of old termcap-using programs). The codes read as follows:
# B = mentioned in the BSD man page for 4.4BSD curses
# 3. List it in the standard table. You almost certainly do *not* want
# to do this -- the capabilities in that one, and their order, have been
# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up to the ncurses
-# library what to do with the terminfo data after it's read in.
+# as a terminfo object, and breaking this would be bad. It is up to the ncurses
+# library what to do with the terminfo data after it is read in.
#
# 4. List it in the aliases table with an IGNORE target field. If you
# do this, the capability will be ignored on input (though the user will
# 5. List it in the extensions table. If you do this, the compiler will
# silently accept the capability, but the curses library proper will never
# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
+# format). It is up to you what you have the compiler do with it.
#
# There are two opposite reasons to choose option 5. One is when you want
# to eat the capability silently and discard it when doing translations
return_does_clr_eol OTxr bool xr - - YB--- return clears the line
# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
#
-# mytinfo described this as a termcap capability, but it's not listed in the
+# mytinfo described this as a termcap capability, but it is not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2000,2008 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* and: Thomas E. Dickey 1996-on *
****************************************************************************/
-/* $Id: capdefaults.c,v 1.15 2020/02/02 23:34:34 tom Exp $ */
+/* $Id: capdefaults.c,v 1.16 2021/09/04 10:52:55 tom Exp $ */
/*
* Compute obsolete capabilities. The reason this is an include file is
- * that the two places where it's needed want the macros to generate
+ * that the two places where it is needed require the macros to generate
* offsets to different structures. See the file Caps for explanations of
* these conversions.
*
* and: Thomas E. Dickey 1996-on *
****************************************************************************/
-/* $Id: curses.h.in,v 1.274 2021/08/28 21:52:12 tom Exp $ */
+/* $Id: curses.h.in,v 1.276 2021/08/29 09:30:34 tom Exp $ */
#ifndef __NCURSES_H
#define __NCURSES_H
/*
* We cannot define these in ncurses_cfg.h, since they require parameters to be
- * passed (that is non-portable). If you happen to be using gcc with warnings
- * enabled, define
- * GCC_PRINTF
- * GCC_SCANF
- * to improve checking of calls to printw(), etc.
+ * passed (that is non-portable).
*/
#ifndef GCC_PRINTFLIKE
-#if defined(GCC_PRINTF) && !defined(printf)
+#ifndef printf
#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
#else
#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
#endif
#ifndef GCC_SCANFLIKE
-#if defined(GCC_SCANF) && !defined(scanf)
+#ifndef scanf
#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
#else
#define GCC_SCANFLIKE(fmt,var) /*nothing*/
extern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */
extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC); /* implemented */
extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */
-extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_PRINTFLIKE(2,0) GCC_DEPRECATED(use vw_printw); /* implemented */
-extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list) GCC_PRINTFLIKE(2,0); /* implemented */
-extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_SCANFLIKE(2,0) GCC_DEPRECATED(use vw_scanw); /* implemented */
-extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list) GCC_SCANFLIKE(2,0); /* implemented */
+extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw) /* implemented */
+ GCC_PRINTFLIKE(2,0);
+extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list) /* implemented */
+ GCC_PRINTFLIKE(2,0);
+extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_scanw) /* implemented */
+ GCC_SCANFLIKE(2,0);
+extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list) /* implemented */
+ GCC_SCANFLIKE(2,0);
extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype); /* implemented */
extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int); /* implemented */
extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *); /* generated */
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* and: Thomas E. Dickey 1998-on *
****************************************************************************/
-/* $Id: term_entry.h,v 1.60 2020/02/29 15:46:00 anonymous.maarten Exp $ */
+/* $Id: term_entry.h,v 1.61 2021/09/04 10:52:55 tom Exp $ */
/*
* term_entry.h -- interface to entry-manipulation code
/*
* Note that WANTED and PRESENT are not simple inverses! If a capability
- * has been explicitly cancelled, it's not considered WANTED.
+ * has been explicitly cancelled, it is not considered WANTED.
*/
#define WANTED(s) ((s) == ABSENT_STRING)
#define PRESENT(s) (((s) != ABSENT_STRING) && ((s) != CANCELLED_STRING))
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_color.3x,v 1.64 2021/06/17 21:30:22 tom Exp $
+.\" $Id: curs_color.3x,v 1.66 2021/09/04 19:42:20 tom Exp $
.TH curs_color 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
\*(``yellow\*('' background (you get a blinking yellow foreground instead).
.bP
Color RGB values are not settable.
+.SH HISTORY
+.PP
+SVr3.2 introduced color support to curses in 1987.
+.PP
+SVr4 made internal changes,
+e.g., moving the storage for the color state
+from \fBSP\fP (the \fBSCREEN\fP structure)
+to \fBcur_term\fP (the \fBTERMINAL\fP structure),
+but provided the same set of library functions.
+.PP
+SVr4 curses limits the number of color pairs to 64,
+reserving color pair zero (0) as the terminal's initial uncolored state.
+This limit arises because the color pair information is a bitfield
+in the \fBchtype\fP data type (denoted by \fBA_COLOR\fP).
+.PP
+Other implementations of curses had different limits:
+.bP
+PCCurses (1987-1990) provided for only eight (8) colors.
+.bP
+PDCurses (1992-present) inherited the 8-color limitation from PCCurses,
+but changed this to 256 in version 2.5 (2001),
+along with changing \fBchtype\fP from 16-bits to 32-bits.
+.bP
+X/Open Curses (1992-present)
+added a new structure \fBcchar_t\fP to store the character,
+attributes and color-pair values, allowing increased range of color-pairs.
+Both color-pairs and color-values used a signed \fBshort\fP,
+limiting values to 15 bits.
+.bP
+ncurses (1992-present) uses eight bits for \fBA_COLOR\fP in \fBchtype\fP values.
+.IP
+Version 5.3 provided a wide-character interface (2002),
+but left color-pairs as part of the attributes-field.
+.IP
+Since version 6 (2015),
+ncurses uses a separate \fBint\fP for color-pairs in the \fBcchar_t\fP values.
+When those color-pair values fit in 8 bits,
+ncurses allows color-pairs to be manipulated
+via the functions using \fBchtype\fP values.
+.bP
+NetBSD curses used 6 bits from
+2000 (when colors were first supported) until 2004.
+At that point, NetBSD changed to use 10 bits.
+As of 2021, that size is unchanged.
+Like ncurses before version 6,
+the NetBSD color-pair information is stored in
+the attributes field of \fBcchar_t\fP, limiting the number of color-pairs
+by the size of the bitfield.
.SH PORTABILITY
This implementation satisfies XSI Curses's minimum maximums
for \fBCOLORS\fR and \fBCOLOR_PAIRS\fR.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_terminfo.3x,v 1.75 2021/06/17 21:11:08 tom Exp $
+.\" $Id: curs_terminfo.3x,v 1.76 2021/09/04 19:58:03 tom Exp $
.TH curs_terminfo 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.PP
SVr3 introduced the functions for switching between terminal
descriptions, e.g., \fBset_curterm\fP.
+Some of that was incremental improvements to the SVr2 library:
+.bP
+The \fBTERMINAL\fP type definition was introduced in SVr3.01,
+for the \fBterm\fP structure provided in SVr2.
+.bP
The various global variables such as \fBboolnames\fP were mentioned
-in the programming manual at this point.
+in the programming manual at this point,
+though the variables were provided in SVr2.
.PP
SVr4 added the \fBvid_attr\fP and \fBvid_puts\fP functions.
.PP
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tput.1,v 1.67 2021/06/17 21:11:08 tom Exp $
+.\" $Id: tput.1,v 1.70 2021/09/04 19:02:50 tom Exp $
.TH @TPUT@ 1 ""
.ds d @TERMINFO@
.ds n 1
The \fBtput\fP command was begun by Bill Joy in 1980.
The initial version only cleared the screen.
.PP
-AT&T System V provided a different \fBtput\fP command,
-whose \fBinit\fP and \fBreset\fP subcommands
+AT&T System V provided a different \fBtput\fP command:
+.bP
+SVr2 provided a rudimentary \fBtput\fP
+which checked the parameter against each
+predefined capability and returned the corresponding value.
+This version of \fBtput\fP did not use \fBtparm\fP(3X) for
+the capabilities which are parameterized.
+.bP
+SVr3 replaced that, a year later, by a more extensive program
+whose \fBinit\fP and \fBreset\fP subcommands
(more than half the program) were incorporated from
the \fBreset\fP feature of BSD \fBtset\fP written by Eric Allman.
+.bP
+SVr4 added color initialization using the \fIorig_colors\fP and
+\fIorig_pairs\fP capabilities in the \fBinit\fP subcommand.
.PP
Keith Bostic replaced the BSD \fBtput\fP command in 1989
with a new implementation
#!/bin/sh
-# $Id: csort,v 1.3 2020/02/02 23:34:34 tom Exp $
+# $Id: csort,v 1.4 2021/09/04 15:55:29 tom Exp $
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 2002 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
LANGUAGE=C; export LANGUAGE
LC_ALL=C; export LC_ALL
LC_CTYPE=C; export LC_CTYPE
-sort $*
+sort "$@"
#!/bin/sh
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 2004-2011,2012 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
#
# Author: Thomas E. Dickey
#
-# $Id: gen_edit.sh,v 1.6 2020/02/02 23:34:34 tom Exp $
+# $Id: gen_edit.sh,v 1.7 2021/09/04 15:55:29 tom Exp $
# Generate a sed-script for converting the terminfo.src to the form which will
# be installed.
#
linux_dft=linux2.2
-: ${datadir=/usr/share}
-: ${WHICH_LINUX=$linux_dft}
-: ${WHICH_XTERM=xterm-new}
-: ${XTERM_KBS=BS}
+: "${datadir=/usr/share}"
+: "${WHICH_LINUX=$linux_dft}"
+: "${WHICH_XTERM=xterm-new}"
+: "${XTERM_KBS=BS}"
# If we're not installing into /usr/share/, we'll have to adjust the location
# of the tabset files in terminfo.src (which are in a parallel directory).
/****************************************************************************\r
- * Copyright 2020 Thomas E. Dickey *\r
+ * Copyright 2020,2021 Thomas E. Dickey *\r
* Copyright 1998,2006 Free Software Foundation, Inc. *\r
* *\r
* Permission is hereby granted, free of charge, to any person obtaining a *\r
****************************************************************************/\r
\r
/*\r
- * $Id: makedef.cmd,v 1.6 2020/02/02 23:34:34 tom Exp $\r
+ * $Id: makedef.cmd,v 1.7 2021/09/04 10:52:55 tom Exp $\r
*\r
* Author: Juan Jose Garcia Ripoll <worm@arrakis.es>.\r
* Webpage: http://www.arrakis.es/~worm/\r
* it has a valid code that we store\r
* we mark that code as used\r
* ELIF (it has no number) THEN\r
- * (it's a new symbol)\r
+ * (it is a new symbol)\r
* we increase the counter of defined symbols\r
* we assign it the special number 0\r
* (later on it'll be assigned an unused export code)\r
* ELSE\r
- * this symbol was in the old DLL and it's no longer\r
+ * this symbol was in the old DLL and it is no longer\r
* here, so we skip it.\r
*/\r
select\r
#!/bin/sh
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998,2000 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
#
# Author: Thomas E. Dickey 1996,1997,2000
#
-# $Id: makellib,v 1.9 2020/02/02 23:34:34 tom Exp $
+# $Id: makellib,v 1.11 2021/09/04 15:49:38 tom Exp $
# System-dependent wrapper for 'lint' that creates a lint-library via the
# following method (XXX is the name of the library):
# a. If the file llib-lXXX doesn't exist, create it using the make-rule
# a. On a few systems, you'll have to manually-edit the llib-lXXX file
# to get a usable lint-library (not all C-preprocessors work well).
# b. The system's lint utility won't recognize -lXXX as a lint-library
-# (Use tdlint as a wrapper; it's designed for this).
+# (Use tdlint as a wrapper; it is designed for this).
#
# Parameters:
# $1 = library name
do
case $1 in
-L*)
- DST="$DST `echo $1|sed -e 's/^-L//'`"
+ DST="$DST `echo "$1"|sed -e 's/^-L//'`"
;;
-*)
OPT="$OPT $1"
llib="llib-l$LLIB"
fi
-if test ! -f $llib ; then
- if ( make $llib )
+if test ! -f "$llib" ; then
+ if ( make "$llib" )
then
:
else
fi
fi
-rm -f $llib.ln $llib.c
+rm -f "$llib.ln" "$llib.c"
TARGET=$LLIB
case "$ARCH" in
AIX)
CREATE="-uvxo$LLIB -Nn4000"
TARGET=$llib.c
- ln $llib $TARGET
+ ln "$llib" "$TARGET"
;;
Solaris)
CREATE="-C$llib"
TARGET=$llib.c
- ln $llib $TARGET
+ ln "$llib" "$TARGET"
;;
FreeBSD)
CREATE="-g -z -C$LLIB"
TARGET=$llib.c
- ln $llib $TARGET
+ ln "$llib" "$TARGET"
;;
CLIX)
CREATE="-DLINTLIBRARY -vxo$LLIB"
TARGET=$llib.c
- ln $llib $TARGET
+ ln "$llib" "$TARGET"
;;
IRIX*)
CREATE="-DLINTLIBRARY -vxyo$LLIB"
TARGET=$llib.c
- ln $llib $TARGET
+ ln "$llib" "$TARGET"
;;
UNIX_SV)
CREATE="-DLINTLIBRARY -vxyo$LLIB"
TARGET=$llib.c
- ln $llib $TARGET
+ ln "$llib" "$TARGET"
;;
*)
echo "Sorry. I do not know how to build a lint-library for $ARCH"
echo OPT "$OPT"
echo TARGET "$TARGET"
echo LIBNAME "$llib"
-if ( lint $CREATE $OPT $TARGET )
+if ( lint "$CREATE" "$OPT" "$TARGET" )
then
- if test -f $llib.ln
+ if test -f "$llib.ln"
then
for p in $HOME/lib $HOME/lib/$ARCH $HOME/lib/$ARCH/lint
do
- if test ! -d $p
+ if test ! -d "$p"
then
- mkdir $p
+ mkdir "$p"
fi
done
for p in $DST
do
- cp $llib.ln $p/
+ cp "$llib.ln" "$p/"
done
- rm -f $llib.ln
+ rm -f "$llib.ln"
fi
fi
if test "x$TARGET" = "x$llib.c" ; then
- rm -f $TARGET
+ rm -f "$TARGET"
fi
#!/bin/sh
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998-2005,2007 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
#
# Author: Thomas E. Dickey <dickey@clark.net> 1996
#
-# $Id: shlib,v 1.13 2020/02/02 23:34:34 tom Exp $
+# $Id: shlib,v 1.14 2021/09/04 15:55:29 tom Exp $
# Use this script as a wrapper when running executables linked to shared
# libraries on systems that use the $LD_LIBRARY_PATH variable and don't embed
# the soname's path within the linked executable (such as IRIX), e.g,
for p in lib ../lib ../../lib ../../../lib
do
if test -d $p; then
- q=`cd $p; pwd`
+ q=`cd $p || exit; pwd`
break
elif test -f configure && test ! -d ../$p ; then
break
elif test -n "$LD_LIBRARY_PATH"; then
system=unix
else
- for r in $q/*.*
+ for r in "$q"/*.*
do
if test -f "$r"
then
#!/bin/sh
##############################################################################
-# Copyright 2020 Thomas E. Dickey #
+# Copyright 2020,2021 Thomas E. Dickey #
# Copyright 1998,2000 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
#
# Author: Thomas E. Dickey <dickey@clark.net> 1996
#
-# $Id: tdlint,v 1.7 2020/02/02 23:34:34 tom Exp $
+# $Id: tdlint,v 1.8 2021/09/04 15:55:29 tom Exp $
#
# Lint-script that allows user's own lint libraries, in addition to the ones
# installed in the system.
exit 1
else
case $ARCH in
- AIX) set - $* -Nn4000
+ AIX) set - "$@" -Nn4000
;;
- IRIX) set - $* -n -lc
+ IRIX) set - "$@" -n -lc
;;
- FreeBSD) set - $* -g -p -u -v -z
+ FreeBSD) set - "$@" -g -p -u -v -z
;;
SunOS)
case `uname -r` in
5.*) ARCH=Solaris
- set - $* -n -lc
+ set - "$@" -n -lc
;;
esac
;;
# LIBDIR=$HOME/lib/$ARCH/lint ;export LIBDIR
for p in $HOME/lib/$ARCH/lint /usr/lib/lint /usr/lib
do
- if [ -d $p ]
+ if [ -d "$p" ]
then
DIRS="$DIRS $p"
fi
case $1 in
-D*\"*) ;;
-L*)
- DIRS="`echo $1|sed -e 's/^-L//'` $DIRS"
+ DIRS="`echo "$1"|sed -e 's/^-L//'` $DIRS"
;;
-l*)
- lib="llib-l`echo $1 | sed -e 's/^-l//'`.ln"
+ lib="llib-l`echo "$1" | sed -e 's/^-l//'`.ln"
found=no
for p in $DIRS
do
- echo -n testing $p/$lib
- if [ -f $p/$lib ]
+ printf "testing %s" "$p/$lib"
+ if [ -f "$p/$lib" ]
then
LIBS="$LIBS $p/$lib"
echo " (ok)"
shift
done
#
-eval lint $OPT $FILES $LIBS
+exec lint $OPT $FILES $LIBS
# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
-# $Revision: 1.909 $
-# $Date: 2021/08/17 00:26:19 $
+# $Revision: 1.911 $
+# $Date: 2021/09/04 15:32:00 $
#
# 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
# The 3.0 kernel adds support for clearing scrollback buffer (capability E3).
# It is the same as xterm's erase-saved-lines feature.
+#
+# Linux 3.0 was released in July 2011. The keyboard utilities (kbd) are
+# used for configuring its keyboard mappings.
+#
+# kbd 1.14 was released before that (January 2008), but due to its placement
+# late in the Linux 2.6.x series had no immediate effect for most users. That
+# provided a default mapping for shift-tab to the (misnamed) Meta_Tab, i.e.,
+# the same as Alt-Tab.
+#
+# The suggested mapping for the conventional \E[Z is provided in this entry as
+# an extended key to lessen user surprise -TD
linux3.0|linux 3.0 kernels,
- E3=\E[3J, use=linux2.6,
+ kcbt=\E^I, E3=\E[3J, kcbt2=\E[Z, use=linux2.6,
# This is Linux console for ncurses.
linux|linux console,
# 2021-08-16
# + corrected tsl capability for terminator -TD
#
+# 2021-09-04
+# + modify linux3.0 entry to reflect default mapping of shift-tab by
+# kbd 1.14 (report by Jan Engelhardt) -TD
+#
######## SHANTIH! SHANTIH! SHANTIH!
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#define NEED_KEY_EVENT
#include <curses.priv.h>
-MODULE_ID("$Id: lib_getch.c,v 1.141 2020/09/05 22:50:47 tom Exp $")
+MODULE_ID("$Id: lib_getch.c,v 1.142 2021/09/04 10:52:55 tom Exp $")
#include <fifo_defs.h>
* This is tricky. We only want to get special-key
* events one at a time. But we want to accumulate
* mouse events until either (a) the mouse logic tells
- * us it's picked up a complete gesture, or (b)
+ * us it has picked up a complete gesture, or (b)
* there's a detectable time lapse after one.
*
* Note: if the mouse code starts failing to compose
#define NEED_KEY_EVENT
#include <curses.priv.h>
-MODULE_ID("$Id: lib_getstr.c,v 1.36 2021/05/22 19:57:21 tom Exp $")
+MODULE_ID("$Id: lib_getstr.c,v 1.37 2021/09/04 10:29:15 tom Exp $")
/*
* This wipes out the last character, no matter whether it was a tab, control
while ((ch = wgetch_events(win, evl)) != ERR) {
/*
* Some terminals (the Wyse-50 is the most common) generate
- * a \n from the down-arrow key. With this logic, it's the
+ * a \n from the down-arrow key. With this logic, it is the
* user's choice whether to set kcud=\n for wgetch();
* terminating *getstr() with \n should work either way.
*/
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_pad.c,v 1.48 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_pad.c,v 1.49 2021/09/04 10:52:55 tom Exp $")
NCURSES_EXPORT(WINDOW *)
NCURSES_SP_NAME(newpad) (NCURSES_SP_DCLx int l, int c)
/*
* Use the pad's current position, if it will be visible.
- * If not, don't do anything; it's not an error.
+ * If not, don't do anything; it is not an error.
*/
if (win->_leaveok == FALSE
&& win->_cury >= pminrow
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2013,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_slkrefr.c,v 1.31 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_slkrefr.c,v 1.32 2021/09/04 10:54:35 tom Exp $")
#ifdef USE_TERM_DRIVER
#define NumLabels InfoOf(SP_PARM).numlabels
wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x);
(void) wattrset(slk->win, (int) AttrOf(slk->attr));
waddstr(slk->win, slk->ent[i].form_text);
- /* if we simulate SLK's, it's looking much more
+ /* if we simulate SLK's, it is looking much more
natural to use the current ATTRIBUTE also
for the label window */
(void) wattrset(slk->win, (int) WINDOW_ATTRS(StdScreen(sp)));
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: resizeterm.c,v 1.50 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: resizeterm.c,v 1.51 2021/09/04 10:54:35 tom Exp $")
/*
* If we're trying to be reentrant, do not want any local statics.
}
/*
- * FIXME: must adjust position so it's within the parent!
+ * FIXME: must adjust position so it is within the parent!
*/
static int
adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen EXTRA_DCLS)
****************************************************************************/
/*
- * $Id: curses.priv.h,v 1.644 2021/08/18 21:55:42 tom Exp $
+ * $Id: curses.priv.h,v 1.645 2021/09/04 10:29:15 tom Exp $
*
* curses.priv.h
*
/*
* We don't want to use the lines or columns capabilities internally, because
- * if the application is running multiple screens under X, it's quite possible
+ * if the application is running multiple screens under X, it is quite possible
* they could all have type xterm but have different sizes! So...
*/
#define screen_lines(sp) (sp)->_lines
#include <tic.h>
-MODULE_ID("$Id: access.c,v 1.30 2021/08/28 22:07:31 tom Exp $")
+MODULE_ID("$Id: access.c,v 1.31 2021/08/29 10:35:17 tom Exp $")
#define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
if (is_elevated()) {
result = FALSE;
- } else if ((getuid() == ROOT_UID) && (geteuid() == ROOT_UID)) {
+ } else if ((getuid() == ROOT_UID) || (geteuid() == ROOT_UID)) {
result = FALSE;
}
return result;
#include <ctype.h>
#include <tic.h>
-MODULE_ID("$Id: captoinfo.c,v 1.101 2021/02/28 01:05:07 tom Exp $")
+MODULE_ID("$Id: captoinfo.c,v 1.102 2021/09/04 10:29:15 tom Exp $")
#if 0
#define DEBUG_THIS(p) DEBUG(9, p)
break;
/*
- * %s isn't in termcap, but it's convenient to pass it through
+ * %s isn't in termcap, but it is convenient to pass it through
* so we can represent things like terminfo pfkey strings in
* termcap notation.
*/
#include <ctype.h>
#include <tic.h>
-MODULE_ID("$Id: comp_expand.c,v 1.33 2021/02/28 00:58:19 tom Exp $")
+MODULE_ID("$Id: comp_expand.c,v 1.34 2021/09/04 10:29:15 tom Exp $")
#if 0
#define DEBUG_THIS(p) DEBUG(9, p)
/*
* If most of a short string is ASCII control characters, reformat the
- * string to show those in up-arrow format. For longer strings, it's
+ * string to show those in up-arrow format. For longer strings, it is
* more likely that the characters are just binary coding.
*
* If we're formatting termcap, just use the shorter format (up-arrows).
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#include <ctype.h>
#include <tic.h>
-MODULE_ID("$Id: comp_scan.c,v 1.109 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: comp_scan.c,v 1.110 2021/09/04 10:54:35 tom Exp $")
/*
* Maximum length of string capability we'll accept before raising an error.
* Grrr...what we ought to do here is barf, complaining that
* the entry is malformed. But because a couple of name fields
* in the 8.2 termcap file end with |\, we just have to assume
- * it's termcap syntax.
+ * it is termcap syntax.
*/
_nc_syntax = SYN_TERMCAP;
separator = ':';
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_data.c,v 1.84 2021/08/19 08:01:33 tom Exp $")
+MODULE_ID("$Id: lib_data.c,v 1.85 2021/09/04 10:54:35 tom Exp $")
/*
* OS/2's native linker complains if we don't initialize public data when
#include <locale.h>
#endif
-MODULE_ID("$Id: lib_setup.c,v 1.213 2021/03/20 14:43:35 tom Exp $")
+MODULE_ID("$Id: lib_setup.c,v 1.214 2021/09/01 23:38:12 tom Exp $")
/****************************************************************************
*
#endif
#if NEED_PTEM_H
- /* On SCO, they neglected to define struct winsize in termios.h -- it's only
+ /* On SCO, they neglected to define struct winsize in termios.h -- it is only
* in termio.h and ptem.h (the former conflicts with other definitions).
*/
# include <sys/stream.h>
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_win32con.c,v 1.6 2020/11/21 23:44:58 tom Exp $")
+MODULE_ID("$Id: lib_win32con.c,v 1.7 2021/09/04 10:54:35 tom Exp $")
#ifdef _NC_WINDOWS
#define FKEYS 24
#define MAPSIZE (FKEYS + N_INI)
-/* A process can only have a single console, so it's safe
+/* A process can only have a single console, so it is safe
to maintain all the information about it in a single
static structure.
*/
/* This is used when running in terminfo mode to discover,
whether or not the "terminal" is actually a Windows
- Console. It's the responsibility of the console to deal
+ Console. It is the responsibility of the console to deal
with the terminal escape sequences that are sent by
terminfo.
*/
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2009,2010 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_win32util.c,v 1.1 2020/08/14 21:57:01 juergen Exp $")
+MODULE_ID("$Id: lib_win32util.c,v 1.2 2021/09/04 10:54:35 tom Exp $")
#ifdef _NC_WINDOWS
#include <io.h>
/* This function tests, whether or not the ncurses application
is running as a descendant of MSYS2/cygwin mintty terminal
- application. mintty doesn't use Windows Console for it's screen
+ application. mintty doesn't use Windows Console for its screen
I/O, so the native Windows _isatty doesn't recognize it as
character device. But we can discover we are at the end of an
Pipe and can query the server side of the pipe, looking whether
/****************************************************************************
- * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#include <ctype.h>
#include <tic.h>
-MODULE_ID("$Id: parse_entry.c,v 1.101 2020/10/24 21:37:13 tom Exp $")
+MODULE_ID("$Id: parse_entry.c,v 1.102 2021/09/04 10:54:35 tom Exp $")
#ifdef LINT
static short const parametrized[] =
_nc_get_hash_table(_nc_syntax));
/*
- * Our kluge to handle aliasing. The reason it's done
+ * Our kluge to handle aliasing. The reason it is done
* this ugly way, with a linear search, is so the hashing
* machinery doesn't have to be made really complicated
* (also we get better warnings this way). No point in
if (tp->Strings[to_ptr->nte_index]) {
const char *s = tp->Strings[from_ptr->nte_index];
const char *t = tp->Strings[to_ptr->nte_index];
- /* There's no point in warning about it if it's the same
+ /* There's no point in warning about it if it is the same
* string; that's just an inefficiency.
*/
if (VALID_STRING(s) && VALID_STRING(t) && strcmp(s, t) != 0)
#include <sys/types.h>
#include <tic.h>
-MODULE_ID("$Id: read_termcap.c,v 1.101 2021/06/26 19:43:17 tom Exp $")
+MODULE_ID("$Id: read_termcap.c,v 1.102 2021/09/04 10:29:15 tom Exp $")
#if !PURE_TERMINFO
bp = buf;
for (;;) {
/*
- * Skip past the current capability field - it's either the
+ * Skip past the current capability field - it is either the
* name field if this is the first time through the loop, or
* the remainder of a field whose name failed to match cap.
*/
/*
* We don't suppress warning messages here. The presumption is
- * that since it's just a single entry, they won't be a pain.
+ * that since it is just a single entry, they won't be a pain.
*/
_nc_read_entry_source((FILE *) 0, tc_buf, FALSE, FALSE, NULLHOOK);
free(tc_buf);
/*
* The average overhead of a full optimization computation in character
- * transmission times. If it's too high, the algorithm will be a bit
- * over-biased toward using cup rather than local motions; if it's too
+ * transmission times. If it is too high, the algorithm will be a bit
+ * over-biased toward using cup rather than local motions; if it is too
* low, the algorithm may spend more time than is strictly optimal
* looking for non-cup motions. Profile the optimizer using the `t'
* command of the exerciser (see below), and round to the nearest integer.
/*
* LONG_DIST is the distance we consider to be just as costly to move over as a
- * cup sequence is to emit. In other words, it's the length of a cup sequence
+ * cup sequence is to emit. In other words, it is the length of a cup sequence
* adjusted for average computation overhead. The magic number is the length
* of "\033[yy;xxH", the typical cup sequence these days.
*/
* int _rep_cost; // cost of (repeat_char)
*
* The USE_HARD_TABS switch controls whether it is reliable to use tab/backtabs
- * for local motions. On many systems, it's not, due to uncertainties about
+ * for local motions. On many systems, it is not, due to uncertainties about
* tab delays and whether or not tabs will be expanded in raw mode. If you
* have parm_right_cursor, tab motions don't win you a lot anyhow.
*/
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_mvcur.c,v 1.155 2021/02/06 13:53:41 tom Exp $")
+MODULE_ID("$Id: lib_mvcur.c,v 1.156 2021/09/04 10:29:15 tom Exp $")
#define WANT_CHAR(sp, y, x) NewScreen(sp)->_line[y].text[x] /* desired state */
#endif /* !NO_OPTIMIZE */
/*
- * With the machinery set up above, it's conceivable that
+ * With the machinery set up above, it is conceivable that
* onscreen_mvcur could be modified into a recursive function that does
* an alpha-beta search of motion space, as though it were a chess
* move tree, with the weight function being boolean and the search
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2021 Thomas E. Dickey *
* Copyright 1998-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#include <SigAction.h>
-MODULE_ID("$Id: lib_tstp.c,v 1.50 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_tstp.c,v 1.51 2021/09/04 10:54:35 tom Exp $")
#if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
#define USE_SIGTSTP 1
* (this may include XENIX).
*
* This implementation will probably be changed to use signal(3) in
- * the future. If nothing else, it's simpler...
+ * the future. If nothing else, it is simpler...
*/
#if USE_SIGTSTP
#include <ctype.h>
-MODULE_ID("$Id: tty_update.c,v 1.311 2021/08/16 21:51:11 tom Exp $")
+MODULE_ID("$Id: tty_update.c,v 1.312 2021/09/04 10:29:59 tom Exp $")
/*
* This define controls the line-breakout optimization. Every once in a
* An aggressive way to handle this would be to emit CR/LF after the
* char and then assume the wrap is done, you're on the first position
* of the next line, and the terminal out of its weird state. Here
- * it's safe to just tell the code that the cursor is in hyperspace and
+ * it is safe to just tell the code that the cursor is in hyperspace and
* let the next mvcur() call straighten things out.
*/
SP_PARM->_curscol = -1;
/*
* This is the support for magic-cookie terminals. The theory: we scan
* the virtual screen looking for attribute turnons. Where we find one,
- * check to make sure it's realizable by seeing if the required number of
+ * check to make sure it is realizable by seeing if the required number of
* un-attributed blanks are present before and after the attributed range;
* try to shift the range boundaries over blanks (not changing the screen
* display) so this becomes true. If it is, shift the beginning attribute
bool end_onscreen = FALSE;
int m, n = j;
- /* find end of span, if it's onscreen */
+ /* find end of span, if it is onscreen */
for (m = i; m < screen_lines(SP_PARM); m++) {
for (; n < screen_columns(SP_PARM); n++) {
attr_t testattr =
#include <curses.priv.h>
-MODULE_ID("$Id: lib_get_wstr.c,v 1.18 2021/05/22 23:49:33 tom Exp $")
+MODULE_ID("$Id: lib_get_wstr.c,v 1.19 2021/09/04 10:29:59 tom Exp $")
static int
wadd_wint(WINDOW *win, wint_t *src)
if (code == KEY_CODE_YES) {
/*
* Some terminals (the Wyse-50 is the most common) generate a \n
- * from the down-arrow key. With this logic, it's the user's
+ * from the down-arrow key. With this logic, it is the user's
* choice whether to set kcud=\n for wget_wch(); terminating
* *getn_wstr() with \n should work either way.
*/
/****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 2008-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#define CUR TerminalType(my_term).
-MODULE_ID("$Id: win_driver.c,v 1.66 2020/03/01 00:18:49 tom Exp $")
+MODULE_ID("$Id: win_driver.c,v 1.67 2021/09/04 10:54:35 tom Exp $")
#define TypeAlloca(type,count) (type*) _alloca(sizeof(type) * (size_t) (count))
#define MAPSIZE (FKEYS + N_INI)
#define NUMPAIRS 64
-/* A process can only have a single console, so it's safe
+/* A process can only have a single console, so it is safe
to maintain all the information about it in a single
static structure.
*/
#if WINVER >= 0x0600
/* This function tests, whether or not the ncurses application
is running as a descendant of MSYS2/cygwin mintty terminal
- application. mintty doesn't use Windows Console for it's screen
+ application. mintty doesn't use Windows Console for its screen
I/O, so the native Windows _isatty doesn't recognize it as
character device. But we can discover we are at the end of an
Pipe and can query to server side of the pipe, looking whether
/* This is used when running in terminfo mode to discover,
whether or not the "terminal" is actually a Windows
- Console. It's the responsibility of the console to deal
+ Console. It is the responsibility of the console to deal
with the terminal escape sequences that are sent by
terminfo.
*/
-ncurses6 (6.2+20210828) unstable; urgency=low
+ncurses6 (6.2+20210904) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 28 Aug 2021 07:20:53 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 29 Aug 2021 04:38:31 -0400
ncurses6 (5.9-20131005) unstable; urgency=low
-ncurses6 (6.2+20210828) unstable; urgency=low
+ncurses6 (6.2+20210904) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 28 Aug 2021 07:20:53 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 29 Aug 2021 04:38:31 -0400
ncurses6 (5.9-20131005) unstable; urgency=low
-ncurses6 (6.2+20210828) unstable; urgency=low
+ncurses6 (6.2+20210904) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 28 Aug 2021 07:20:53 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 29 Aug 2021 04:38:31 -0400
ncurses6 (5.9-20120608) unstable; urgency=low
-; $Id: mingw-ncurses.nsi,v 1.474 2021/08/28 11:20:53 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.475 2021/09/04 08:31:44 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 "2021"\r
-!define VERSION_MMDD "0828"\r
+!define VERSION_MMDD "0904"\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: 20210828
+Release: 20210904
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.2
-Release: 20210828
+Release: 20210904
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.2
-Release: 20210828
+Release: 20210904
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
#!/bin/sh
##############################################################################
-# Copyright 2019,2020 Thomas E. Dickey #
+# Copyright 2019-2020,2021 Thomas E. Dickey #
# Copyright 1998-2011,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: capconvert,v 1.9 2020/02/02 23:34:34 tom Exp $
+# $Id: capconvert,v 1.10 2021/09/04 10:55:04 tom Exp $
#
# capconvert -- automated conversion from termcap to terminfo
#
fi
echo "";
-# Check if test -x works (it's not portable, but useful)
+# Check if test -x works (it is not portable, but useful)
OPT="-x"
TMP=test$$; touch $TMP && chmod 755 $TMP
if test $OPT $TMP ; then
# OK, here comes the nasty case...user has a TERMCAP. Instead of
# trying to follow all the convolutions of the relationship between
-# TERM and TERMCAP (partly because it's too painful, and partly because
+# TERM and TERMCAP (partly because it is too painful, and partly because
# we don't actually know what TERM will be nor even if it always has
# the same value for this user) we do the following three steps...
#include <termsort.h> /* this C file is generated */
#include <parametrized.h> /* so is this */
-MODULE_ID("$Id: dump_entry.c,v 1.188 2021/08/15 20:00:48 tom Exp $")
+MODULE_ID("$Id: dump_entry.c,v 1.189 2021/09/04 10:29:59 tom Exp $")
#define DISCARD(string) string = ABSENT_STRING
#define PRINTF (void) printf
}
if (FMT_ENTRY() > critlen) {
/*
- * We pick on sgr because it's a nice long string capability that
+ * We pick on sgr because it is a nice long string capability that
* is really just an optimization hack. Another good candidate is
* acsc since it is both long and unused by BSD termcap.
*/
#endif
#if NEED_PTEM_H
-/* they neglected to define struct winsize in termios.h -- it's only
+/* they neglected to define struct winsize in termios.h -- it is only
in termio.h */
#include <sys/stream.h>
#include <sys/ptem.h>
#endif
-MODULE_ID("$Id: reset_cmd.c,v 1.26 2021/06/26 19:44:08 tom Exp $")
+MODULE_ID("$Id: reset_cmd.c,v 1.27 2021/09/04 10:29:59 tom Exp $")
/*
* SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS,
#include <parametrized.h>
#include <transform.h>
-MODULE_ID("$Id: tic.c,v 1.301 2021/08/21 00:24:45 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.302 2021/09/04 10:29:59 tom Exp $")
#define STDIN_NAME "<stdin>"
* One problem with immedhook is it means we can't do -e. Problem
* is that we can't guarantee that for each terminal listed, all the
* terminals it depends on will have been kept in core for reference
- * resolution -- in fact it's certain the primitive types at the end
+ * resolution -- in fact it is certain the primitive types at the end
* of reference chains *won't* be in core unless they were explicitly
* in the select list themselves.
*/
dnl authorization. *
dnl***************************************************************************
dnl
-dnl $Id: aclocal.m4,v 1.198 2021/08/28 20:30:56 tom Exp $
+dnl $Id: aclocal.m4,v 1.199 2021/09/04 10:39:46 tom Exp $
dnl
dnl Author: Thomas E. Dickey
dnl
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ADD_INCDIR version: 16 updated: 2020/12/31 20:19:42
+dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04
dnl -------------
-dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
+dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it is
dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
dnl but old versions (and some misinstalled ones) need that. To make things
dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
dnl "dirname" is not portable, so we fake it with a shell script.
AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
+dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
dnl ---------------
-dnl You can always use "make -n" to see the actual options, but it's hard to
+dnl You can always use "make -n" to see the actual options, but it is hard to
dnl pick out/analyze warning messages when the compile-line is long.
dnl
dnl Sets:
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_LIBS version: 20 updated: 2021/01/03 08:05:37
+dnl CF_NCURSES_LIBS version: 21 updated: 2021/09/04 06:37:12
dnl ---------------
dnl Look for the ncurses library. This is a little complicated on Linux,
dnl because it may be linked with the gpm (general purpose mouse) library.
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
fi
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
echo "$as_me:9886: checking for tgoto in -lmytinfo" >&5
echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
case "$host_os" in
(freebsd*)
# This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
+ # version of ncurses (but it should do no harm, since it is static).
if test "$cf_nculib_root" = ncurses ; then
echo "$as_me:12009: checking for tgoto in -lmytinfo" >&5
echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
Thomas E. Dickey (beginning revision 1.27 in 1996).
-$Id: ncurses.c,v 1.526 2021/05/22 19:45:57 tom Exp $
+$Id: ncurses.c,v 1.527 2021/09/04 10:31:03 tom Exp $
***************************************************************************/
overlap_test_0(win2, win1);
break;
- case 'c': /* fill window A so it's visible */
+ case 'c': /* fill window A so it is visible */
overlap_test_1(flavor[otBASE_fill], 0, win1, 'A');
break;
- case 'd': /* fill window B so it's visible */
+ case 'd': /* fill window B so it is visible */
overlap_test_1(flavor[otBASE_fill], 1, win2, 'B');
break;
overlap_test_0(win2, win1);
break;
- case 'c': /* fill window A so it's visible */
+ case 'c': /* fill window A so it is visible */
x_overlap_test_1(flavor[otBASE_fill], 0, win1, WIDE_A);
break;
- case 'd': /* fill window B so it's visible */
+ case 'd': /* fill window B so it is visible */
x_overlap_test_1(flavor[otBASE_fill], 1, win2, WIDE_B);
break;
if (doit != NULL && doit(FALSE) == OK) {
/*
- * This may be overkill; it's intended to reset everything back
+ * This may be overkill; it is intended to reset everything back
* to the initial terminal modes so that tests don't get in
* each other's way.
*/
#!/usr/bin/env perl
-# $Id: tracemunch,v 1.40 2021/02/13 19:29:12 tom Exp $
+# $Id: tracemunch,v 1.41 2021/09/04 10:31:03 tom Exp $
##############################################################################
# Copyright 2018-2020,2021 Thomas E. Dickey #
# Copyright 1998-2005,2017 Free Software Foundation, Inc. #
$_ =~ s/^[^:]*://;
}
- # Transform window pointer addresses so it's easier to compare logs
+ # Transform window pointer addresses to make it easier to compare logs
$awaiting = "curscr" if ( $_ =~ /creating curscr/ );
$awaiting = "newscr" if ( $_ =~ /creating newscr/ );
$awaiting = "stdscr" if ( $_ =~ /creating stdscr/ );