mirror of
https://github.com/ThomasDickey/ncurses-snapshots.git
synced 2026-01-26 19:09:16 +00:00
snapshot of project "ncurses", label v6_2_20210925
This commit is contained in:
parent
925bae1f45
commit
92daf2e732
11
NEWS
11
NEWS
@ -26,7 +26,7 @@
|
||||
-- sale, use or other dealings in this Software without prior written --
|
||||
-- authorization. --
|
||||
-------------------------------------------------------------------------------
|
||||
-- $Id: NEWS,v 1.3708 2021/09/11 23:45:11 tom Exp $
|
||||
-- $Id: NEWS,v 1.3712 2021/09/24 19:45:04 tom Exp $
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
This is a log of changes that ncurses has gone through since Zeyd started
|
||||
@ -46,6 +46,15 @@ See the AUTHORS file for the corresponding full names.
|
||||
Changes through 1.9.9e did not credit all contributions;
|
||||
it is not possible to add this information.
|
||||
|
||||
20210925
|
||||
+ add kbeg to xterm+keypad to accommodate termcap applications -TD
|
||||
+ add smglp and smgrp to vt420+lrmm, to provide useful data for the
|
||||
"tabs" +m option -TD
|
||||
+ build-fix for gcc 3.4.3 with Solaris10, which does not allow forward
|
||||
reference of anonymous struct typedef.
|
||||
+ modify tput to allow multiple commands per line.
|
||||
+ minor fixes for tset manpage.
|
||||
|
||||
20210911
|
||||
+ adjust ifdef in test_opaque.c to fix build with ncurses 5.7
|
||||
+ add testing note for xterm-{hp|sco|sun} -TD
|
||||
|
||||
4
dist.mk
4
dist.mk
@ -26,7 +26,7 @@
|
||||
# use or other dealings in this Software without prior written #
|
||||
# authorization. #
|
||||
##############################################################################
|
||||
# $Id: dist.mk,v 1.1435 2021/09/11 10:58:38 tom Exp $
|
||||
# $Id: dist.mk,v 1.1437 2021/09/25 10:32:30 tom Exp $
|
||||
# Makefile for creating ncurses distributions.
|
||||
#
|
||||
# This only needs to be used directly as a makefile by developers, but
|
||||
@ -38,7 +38,7 @@ SHELL = /bin/sh
|
||||
# These define the major/minor/patch versions of ncurses.
|
||||
NCURSES_MAJOR = 6
|
||||
NCURSES_MINOR = 2
|
||||
NCURSES_PATCH = 20210911
|
||||
NCURSES_PATCH = 20210925
|
||||
|
||||
# We don't append the patch to the version, since this only applies to releases
|
||||
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
|
||||
|
||||
@ -126,7 +126,7 @@
|
||||
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
|
||||
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
|
||||
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -199,7 +199,7 @@
|
||||
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
|
||||
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
|
||||
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
|
||||
|
||||
@ -150,7 +150,7 @@
|
||||
</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 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -248,7 +248,7 @@
|
||||
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
|
||||
descriptions of the entry points.
|
||||
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -514,7 +514,7 @@
|
||||
|
||||
https://invisible-island.net/ncurses/tctest.html
|
||||
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
|
||||
|
||||
@ -91,7 +91,7 @@
|
||||
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
|
||||
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="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 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
|
||||
|
||||
@ -223,7 +223,7 @@
|
||||
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for detailed
|
||||
descriptions of the entry points.
|
||||
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -60,7 +60,7 @@
|
||||
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 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
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
|
||||
|
||||
@ -113,7 +113,7 @@
|
||||
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
|
||||
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
|
||||
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -281,7 +281,7 @@
|
||||
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
|
||||
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
|
||||
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
|
||||
|
||||
@ -207,7 +207,7 @@
|
||||
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
|
||||
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="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 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -106,7 +106,7 @@
|
||||
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 20210904).
|
||||
This manual describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
</PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
|
||||
|
||||
@ -461,7 +461,7 @@
|
||||
<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 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
|
||||
|
||||
@ -171,7 +171,7 @@
|
||||
<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 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
* sale, use or other dealings in this Software without prior written *
|
||||
* authorization. *
|
||||
****************************************************************************
|
||||
* @Id: tput.1,v 1.70 2021/09/04 19:02:50 tom Exp @
|
||||
* @Id: tput.1,v 1.71 2021/09/19 00:34:23 tom Exp @
|
||||
-->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||||
<HTML>
|
||||
@ -374,7 +374,7 @@
|
||||
---------------------------------------------------------------------
|
||||
<STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in
|
||||
the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g.
|
||||
<STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-T2621</STRONG> <STRONG>xmc</STRONG>)
|
||||
<STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-Thp2621</STRONG> <STRONG>xmc</STRONG>)
|
||||
<STRONG>1</STRONG> no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> section.
|
||||
<STRONG>2</STRONG> usage error
|
||||
<STRONG>3</STRONG> unknown terminal <EM>type</EM> or no <STRONG>terminfo</STRONG> database
|
||||
@ -458,76 +458,83 @@
|
||||
for the standard <EM>capname</EM> operands, and an internal library function
|
||||
to analyze nonstandard <EM>capname</EM> operands.
|
||||
|
||||
Besides providing more reliable operation than AT&T's utility, a
|
||||
portability problem is introduced by this analysis. An OpenBSD
|
||||
developer adapted the internal library function from ncurses to
|
||||
allow <STRONG>tput</STRONG> to interpret multiple commands on a line. Portable
|
||||
applications should not rely upon this feature; ncurses provides it
|
||||
to support applications written specifically for OpenBSD.
|
||||
|
||||
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
|
||||
@ -537,7 +544,7 @@
|
||||
</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 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
* sale, use or other dealings in this Software without prior written *
|
||||
* authorization. *
|
||||
****************************************************************************
|
||||
* @Id: tset.1,v 1.57 2021/07/10 22:50:45 tom Exp @
|
||||
* @Id: tset.1,v 1.58 2021/09/18 21:21:55 tom Exp @
|
||||
-->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||||
<HTML>
|
||||
@ -154,16 +154,20 @@
|
||||
|
||||
<STRONG>-c</STRONG> Set control characters and modes.
|
||||
|
||||
<STRONG>-e</STRONG> Set the erase character to <EM>ch</EM>.
|
||||
<STRONG>-e</STRONG> <EM>ch</EM>
|
||||
Set the erase character to <EM>ch</EM>.
|
||||
|
||||
<STRONG>-I</STRONG> Do not send the terminal or tab initialization strings to the
|
||||
terminal.
|
||||
|
||||
<STRONG>-i</STRONG> Set the interrupt character to <EM>ch</EM>.
|
||||
<STRONG>-i</STRONG> <EM>ch</EM>
|
||||
Set the interrupt character to <EM>ch</EM>.
|
||||
|
||||
<STRONG>-k</STRONG> Set the line kill character to <EM>ch</EM>.
|
||||
<STRONG>-k</STRONG> <EM>ch</EM>
|
||||
Set the line kill character to <EM>ch</EM>.
|
||||
|
||||
<STRONG>-m</STRONG> Specify a mapping from a port type to a terminal. See the section
|
||||
<STRONG>-m</STRONG> <EM>mapping</EM>
|
||||
Specify a mapping from a port type to a terminal. See the section
|
||||
<STRONG>TERMINAL</STRONG> <STRONG>TYPE</STRONG> <STRONG>MAPPING</STRONG> for more information.
|
||||
|
||||
<STRONG>-Q</STRONG> Do not display any values for the erase, interrupt and line kill
|
||||
@ -385,7 +389,7 @@
|
||||
<STRONG>csh(1)</STRONG>, <STRONG>sh(1)</STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG>tty(4)</STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>,
|
||||
<STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG>
|
||||
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -60,7 +60,7 @@ BEGIN {
|
||||
print "/* and: Thomas E. Dickey 1995-on */"
|
||||
print "/****************************************************************************/"
|
||||
print ""
|
||||
print "/* $Id: MKterm.h.awk.in,v 1.81 2021/08/18 20:52:42 tom Exp $ */"
|
||||
print "/* $Id: MKterm.h.awk.in,v 1.82 2021/09/24 17:02:46 tom Exp $ */"
|
||||
print ""
|
||||
print "/*"
|
||||
print "** term.h -- Definition of struct term"
|
||||
@ -250,13 +250,16 @@ END {
|
||||
print " */"
|
||||
print "#ifdef NCURSES_INTERNALS"
|
||||
print ""
|
||||
print "#undef TERMINAL"
|
||||
print "#define TERMINAL struct term"
|
||||
print "TERMINAL;"
|
||||
print ""
|
||||
if (@NCURSES_EXT_COLORS@) {
|
||||
declare_termtype("int","2");
|
||||
} else {
|
||||
print "typedef TERMTYPE TERMTYPE2;"
|
||||
print "#undef TERMTYPE2"
|
||||
print "#define TERMTYPE2 TERMTYPE"
|
||||
}
|
||||
print ""
|
||||
print "typedef struct term TERMINAL;"
|
||||
print "#else"
|
||||
print ""
|
||||
print "typedef struct term { /* describe an actual terminal */"
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
* and: Thomas E. Dickey 1996-on *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: curses.h.in,v 1.276 2021/08/29 09:30:34 tom Exp $ */
|
||||
/* $Id: curses.h.in,v 1.277 2021/09/24 16:07:37 tom Exp $ */
|
||||
|
||||
#ifndef __NCURSES_H
|
||||
#define __NCURSES_H
|
||||
@ -431,7 +431,14 @@ extern NCURSES_EXPORT_VAR(chtype) acs_map[];
|
||||
*/
|
||||
#define _NEWINDEX -1
|
||||
|
||||
#ifdef NCURSES_INTERNALS
|
||||
#undef SCREEN
|
||||
#define SCREEN struct screen
|
||||
SCREEN;
|
||||
#else
|
||||
typedef struct screen SCREEN;
|
||||
#endif
|
||||
|
||||
typedef struct _win_st WINDOW;
|
||||
|
||||
typedef chtype attr_t; /* ...must be at least as wide as chtype */
|
||||
|
||||
12
man/tput.1
12
man/tput.1
@ -28,7 +28,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: tput.1,v 1.70 2021/09/04 19:02:50 tom Exp $
|
||||
.\" $Id: tput.1,v 1.71 2021/09/19 00:34:23 tom Exp $
|
||||
.TH @TPUT@ 1 ""
|
||||
.ds d @TERMINFO@
|
||||
.ds n 1
|
||||
@ -423,7 +423,7 @@ exit code error message
|
||||
\fB0\fR T{
|
||||
(\fIcapname\fR is a numeric variable that is not specified in the
|
||||
\fBterminfo\fR(5) database for this terminal type, e.g.
|
||||
\fB@TPUT@ \-T450 lines\fR and \fB@TPUT@ \-T2621 xmc\fR)
|
||||
\fB@TPUT@ \-T450 lines\fR and \fB@TPUT@ \-Thp2621 xmc\fR)
|
||||
T}
|
||||
\fB1\fR no error message is printed, see the \fBEXIT CODES\fR section.
|
||||
\fB2\fR usage error
|
||||
@ -516,6 +516,14 @@ requiring \fB@TPUT@\fP to know which type to use.
|
||||
This implementation uses a table to determine the parameter types for
|
||||
the standard \fIcapname\fR operands, and an internal library
|
||||
function to analyze nonstandard \fIcapname\fR operands.
|
||||
.IP
|
||||
Besides providing more reliable operation than AT&T's utility,
|
||||
a portability problem is introduced by this analysis.
|
||||
An OpenBSD developer adapted the internal library function from ncurses
|
||||
to allow \fBtput\fP to interpret multiple commands on a line.
|
||||
Portable applications should not rely upon this feature;
|
||||
ncurses provides it to support applications written
|
||||
specifically for OpenBSD.
|
||||
.PP
|
||||
This implementation (unlike others) can accept both \fItermcap\fP
|
||||
and \fIterminfo\fP names for the \fIcapname\fP feature,
|
||||
|
||||
10
man/tset.1
10
man/tset.1
@ -27,7 +27,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: tset.1,v 1.57 2021/07/10 22:50:45 tom Exp $
|
||||
.\" $Id: tset.1,v 1.58 2021/09/18 21:21:55 tom Exp $
|
||||
.TH @TSET@ 1 ""
|
||||
.ie \n(.g .ds `` \(lq
|
||||
.el .ds `` ``
|
||||
@ -150,19 +150,19 @@ The options are as follows:
|
||||
.B \-c
|
||||
Set control characters and modes.
|
||||
.TP 5
|
||||
.B \-e
|
||||
.BI \-e\ ch
|
||||
Set the erase character to \fIch\fR.
|
||||
.TP
|
||||
.B \-I
|
||||
Do not send the terminal or tab initialization strings to the terminal.
|
||||
.TP
|
||||
.B \-i
|
||||
.BI \-i\ ch
|
||||
Set the interrupt character to \fIch\fR.
|
||||
.TP
|
||||
.B \-k
|
||||
.BI \-k\ ch
|
||||
Set the line kill character to \fIch\fR.
|
||||
.TP
|
||||
.B \-m
|
||||
.BI \-m\ mapping
|
||||
Specify a mapping from a port type to a terminal.
|
||||
See the section
|
||||
.B TERMINAL TYPE MAPPING
|
||||
|
||||
@ -6,8 +6,8 @@
|
||||
# Report bugs and new terminal descriptions to
|
||||
# bug-ncurses@gnu.org
|
||||
#
|
||||
# $Revision: 1.916 $
|
||||
# $Date: 2021/09/11 23:22:59 $
|
||||
# $Revision: 1.918 $
|
||||
# $Date: 2021/09/21 08:18:36 $
|
||||
#
|
||||
# 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
|
||||
@ -2837,7 +2837,9 @@ vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page,
|
||||
|
||||
# Left/right margins are supported in xterm since patch #279 (2012/05/10)
|
||||
vt420+lrmm|VT420 left/right margins,
|
||||
mgc=\E[?69l, smglr=\E[?69h\E[%i%p1%d;%p2%ds,
|
||||
mgc=\E[?69l, smglp=\E[?69h\E[%i%p1%ds,
|
||||
smglr=\E[?69h\E[%i%p1%d;%p2%ds,
|
||||
smgrp=\E[?69h\E[%i;%p1%ds,
|
||||
|
||||
# DEC doesn't supply a vt400 description, so we add Daniel Glasser's
|
||||
# (originally written with vt420 as its primary name, and usable for it).
|
||||
@ -5033,22 +5035,34 @@ xterm+alt+title|xterm 90 and 251 features combined,
|
||||
# | NumLock | / | * | - |
|
||||
# | | $Oo | $Oj | $OS |
|
||||
# |_________|__kpDIV__|__kpMUL__|__kpSUB__|
|
||||
# | 7 8 9 | |
|
||||
# | $Ow | $Ox | $Oy | + |
|
||||
# |_ka1__K1_|_________|_ka3__K3_| $Ok |
|
||||
# | 4 | 5 | 6 | kpADD |
|
||||
# | 7 8 9 | + |
|
||||
# | $Ow | $Ox | $Oy | $Ok |
|
||||
# |_ka1__K1_|_________|_ka3__K3_| kpADD |
|
||||
# | 4 | 5 | 6 | |
|
||||
# | $Ot | $Ou | $Ov | |
|
||||
# |_________|_kb2__K2_|_________|_________|
|
||||
# | 1 | 2 | 3 | |
|
||||
# | $Oq | $Or | $Os | |
|
||||
# |_kc1__K4_|_________|_kc3__K5_| enter |
|
||||
# | 0 | . | $OM |
|
||||
# | $Op | $On | |
|
||||
# |___________________|_________|_kent_@8_|
|
||||
# | 0 | . | $OM |
|
||||
# | $Op | $On | |
|
||||
# |_______kpZRO_______|__kpDOT__|_kent_@8_|
|
||||
#
|
||||
# ka2, kb1, kb3 and kc2 are extensions, as are the mixed-case names.
|
||||
# There are no termcap equivalents for these extensions.
|
||||
#
|
||||
# kpCMA (comma) is used here for the VT100 keypad, which xterm emulates with
|
||||
# shifted-keypad-plus, though normally that invokes a font-size change.
|
||||
#
|
||||
# Old versions of xterm, e.g., xterm-xfree86, documented \EOE as kb2, which
|
||||
# does not fit into this layout. The extension kp5 fits, but is not visible
|
||||
# to termcap applications. As an alternative, kbeg (which does have a termcap
|
||||
# equivalent) is provided.
|
||||
#
|
||||
xterm+keypad|xterm emulating VT100/VT220 numeric keypad,
|
||||
kp5=\EOE, kpADD=\EOk, kpCMA=\EOl, kpDIV=\EOo, kpDOT=\EOn,
|
||||
kpMUL=\EOj, kpSUB=\EOm, kpZRO=\EOp, use=vt220+keypad,
|
||||
kbeg=\EOE, kp5=\EOE, kpADD=\EOk, kpCMA=\EOl, kpDIV=\EOo,
|
||||
kpDOT=\EOn, kpMUL=\EOj, kpSUB=\EOm, kpZRO=\EOp,
|
||||
use=vt220+keypad,
|
||||
#
|
||||
# Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
|
||||
# Alternatively, the same scheme with old-style function keys as in xterm-r6
|
||||
@ -27232,4 +27246,9 @@ v3220|LANPAR Vision II model 3220/3221/3222,
|
||||
# + use hp+arrows in a few places -TD
|
||||
# + use hp+pfk-cr in a few places -TD
|
||||
#
|
||||
# 2021-09-21
|
||||
# + add kbeg to xterm+keypad to accommodate termcap applications -TD
|
||||
# + add smglp and smgrp to vt420+lrmm, to provide useful data for the
|
||||
# "tabs" +m option -TD
|
||||
#
|
||||
######## SHANTIH! SHANTIH! SHANTIH!
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
#
|
||||
# MKlib_gen.sh -- generate sources from curses.h macro definitions
|
||||
#
|
||||
# ($Id: MKlib_gen.sh,v 1.69 2021/08/07 21:17:46 tom Exp $)
|
||||
# ($Id: MKlib_gen.sh,v 1.70 2021/09/24 19:23:20 tom Exp $)
|
||||
#
|
||||
##############################################################################
|
||||
# Copyright 2018-2020,2021 Thomas E. Dickey #
|
||||
@ -471,6 +471,7 @@ END {
|
||||
gsub(/[ \t]+/," ",value);
|
||||
sub(/^[0-9a-zA-Z_]+ /,"",value);
|
||||
sub(/^\* /,"",value);
|
||||
gsub("struct [0-9a-zA-Z_]+ \*","",value);
|
||||
gsub(/[0-9a-zA-Z_]+ \* /,"",value);
|
||||
gsub(/ (const) /," ",value);
|
||||
gsub(/ (int|short|attr_t|chtype|wchar_t|NCURSES_BOOL|NCURSES_OUTC|NCURSES_OUTC_sp|va_list) /," ",value);
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*
|
||||
* $Id: curses.priv.h,v 1.645 2021/09/04 10:29:15 tom Exp $
|
||||
* $Id: curses.priv.h,v 1.646 2021/09/24 16:09:35 tom Exp $
|
||||
*
|
||||
* curses.priv.h
|
||||
*
|
||||
@ -899,8 +899,7 @@ typedef enum {
|
||||
/*
|
||||
* The SCREEN structure.
|
||||
*/
|
||||
|
||||
struct screen {
|
||||
typedef struct screen {
|
||||
int _ifd; /* input file descriptor for screen */
|
||||
int _ofd; /* output file descriptor for screen */
|
||||
FILE *_ofp; /* output file ptr for screen */
|
||||
@ -1184,7 +1183,8 @@ struct screen {
|
||||
const char *_tputs_trace;
|
||||
#endif
|
||||
#endif
|
||||
};
|
||||
#undef SCREEN
|
||||
} SCREEN;
|
||||
|
||||
extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
|
||||
extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
/*
|
||||
* Common type definitions and macros for new_pair.c, lib_color.c
|
||||
*
|
||||
* $Id: new_pair.h,v 1.12 2021/08/18 19:18:12 tom Exp $
|
||||
* $Id: new_pair.h,v 1.13 2021/09/24 17:52:01 tom Exp $
|
||||
*/
|
||||
|
||||
#ifndef NEW_PAIR_H
|
||||
@ -46,7 +46,9 @@
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
typedef struct screen SCREEN;
|
||||
#undef SCREEN
|
||||
#define SCREEN struct screen
|
||||
SCREEN;
|
||||
|
||||
#define LIMIT_TYPED(n,t) \
|
||||
(t)(((n) > MAX_OF_TYPE(t)) \
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*
|
||||
* $Id: term.priv.h,v 1.4 2021/08/19 20:02:09 tom Exp $
|
||||
* $Id: term.priv.h,v 1.5 2021/09/24 16:42:04 tom Exp $
|
||||
*
|
||||
* term.priv.h
|
||||
*
|
||||
@ -102,11 +102,6 @@ typedef struct {
|
||||
/*
|
||||
* Internals for term.h
|
||||
*/
|
||||
|
||||
#if NCURSES_EXT_COLORS
|
||||
typedef struct termtype2 TERMTYPE2;
|
||||
#endif
|
||||
|
||||
typedef struct term { /* describe an actual terminal */
|
||||
TERMTYPE type; /* terminal type description */
|
||||
short Filedes; /* file description being written to */
|
||||
@ -118,6 +113,7 @@ typedef struct term { /* describe an actual terminal */
|
||||
#if NCURSES_EXT_COLORS
|
||||
TERMTYPE2 type2; /* extended terminal type description */
|
||||
#endif
|
||||
#undef TERMINAL
|
||||
} TERMINAL;
|
||||
|
||||
/*
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
ncurses6 (6.2+20210911) unstable; urgency=low
|
||||
ncurses6 (6.2+20210925) unstable; urgency=low
|
||||
|
||||
* latest weekly patch
|
||||
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Fri, 10 Sep 2021 20:03:50 -0400
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Fri, 24 Sep 2021 15:17:49 -0400
|
||||
|
||||
ncurses6 (5.9-20131005) unstable; urgency=low
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
ncurses6 (6.2+20210911) unstable; urgency=low
|
||||
ncurses6 (6.2+20210925) unstable; urgency=low
|
||||
|
||||
* latest weekly patch
|
||||
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Fri, 10 Sep 2021 20:03:50 -0400
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Fri, 24 Sep 2021 15:17:49 -0400
|
||||
|
||||
ncurses6 (5.9-20131005) unstable; urgency=low
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
ncurses6 (6.2+20210911) unstable; urgency=low
|
||||
ncurses6 (6.2+20210925) unstable; urgency=low
|
||||
|
||||
* latest weekly patch
|
||||
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Fri, 10 Sep 2021 20:03:50 -0400
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Fri, 24 Sep 2021 15:17:49 -0400
|
||||
|
||||
ncurses6 (5.9-20120608) unstable; urgency=low
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; $Id: mingw-ncurses.nsi,v 1.477 2021/09/11 10:58:38 tom Exp $
|
||||
; $Id: mingw-ncurses.nsi,v 1.479 2021/09/25 10:32:30 tom Exp $
|
||||
|
||||
; TODO add examples
|
||||
; TODO bump ABI to 6
|
||||
@ -10,7 +10,7 @@
|
||||
!define VERSION_MAJOR "6"
|
||||
!define VERSION_MINOR "2"
|
||||
!define VERSION_YYYY "2021"
|
||||
!define VERSION_MMDD "0911"
|
||||
!define VERSION_MMDD "0925"
|
||||
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
|
||||
|
||||
!define MY_ABI "5"
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
Summary: shared libraries for terminal handling
|
||||
Name: mingw32-ncurses6
|
||||
Version: 6.2
|
||||
Release: 20210911
|
||||
Release: 20210925
|
||||
License: X11
|
||||
Group: Development/Libraries
|
||||
Source: ncurses-%{version}-%{release}.tgz
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
Summary: shared libraries for terminal handling
|
||||
Name: ncurses6
|
||||
Version: 6.2
|
||||
Release: 20210911
|
||||
Release: 20210925
|
||||
License: X11
|
||||
Group: Development/Libraries
|
||||
Source: ncurses-%{version}-%{release}.tgz
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
Summary: Curses library with POSIX thread support.
|
||||
Name: ncursest6
|
||||
Version: 6.2
|
||||
Release: 20210911
|
||||
Release: 20210925
|
||||
License: X11
|
||||
Group: Development/Libraries
|
||||
Source: ncurses-%{version}-%{release}.tgz
|
||||
|
||||
@ -45,7 +45,7 @@
|
||||
#include <hashed_db.h>
|
||||
#endif
|
||||
|
||||
MODULE_ID("$Id: toe.c,v 1.82 2021/06/26 19:44:08 tom Exp $")
|
||||
MODULE_ID("$Id: toe.c,v 1.83 2021/09/21 20:07:51 tom Exp $")
|
||||
|
||||
#define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
|
||||
|
||||
@ -245,7 +245,9 @@ make_db_name(char *dst, const char *src, unsigned limit)
|
||||
&& !strcmp(src + size - lens, suffix)) {
|
||||
_nc_STRCPY(dst, src, PATH_MAX);
|
||||
} else {
|
||||
_nc_SPRINTF(dst, _nc_SLIMIT(PATH_MAX) "%s%s", src, suffix);
|
||||
_nc_SPRINTF(dst, _nc_SLIMIT(PATH_MAX) "%.*s%s",
|
||||
(int) (PATH_MAX - sizeof(suffix)),
|
||||
src, suffix);
|
||||
}
|
||||
result = TRUE;
|
||||
}
|
||||
|
||||
69
progs/tput.c
69
progs/tput.c
@ -47,7 +47,7 @@
|
||||
#include <transform.h>
|
||||
#include <tty_settings.h>
|
||||
|
||||
MODULE_ID("$Id: tput.c,v 1.91 2021/08/21 00:24:45 tom Exp $")
|
||||
MODULE_ID("$Id: tput.c,v 1.94 2021/09/19 00:06:44 tom Exp $")
|
||||
|
||||
#define PUTS(s) fputs(s, stdout)
|
||||
|
||||
@ -136,7 +136,7 @@ exit_code(int token, int value)
|
||||
* Returns nonzero on error.
|
||||
*/
|
||||
static int
|
||||
tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
|
||||
tput_cmd(int fd, TTY * settings, bool opt_x, int argc, char **argv, int *used)
|
||||
{
|
||||
NCURSES_CONST char *name;
|
||||
char *s;
|
||||
@ -146,6 +146,7 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
|
||||
#endif
|
||||
|
||||
name = check_aliases(argv[0], FALSE);
|
||||
*used = 1;
|
||||
if (is_reset || is_init) {
|
||||
TTY oldmode;
|
||||
|
||||
@ -155,7 +156,7 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
|
||||
|
||||
if (is_reset) {
|
||||
reset_start(stdout, TRUE, FALSE);
|
||||
reset_tty_settings(fd, saved_settings);
|
||||
reset_tty_settings(fd, settings);
|
||||
} else {
|
||||
reset_start(stdout, FALSE, TRUE);
|
||||
}
|
||||
@ -165,13 +166,13 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
|
||||
#else
|
||||
(void) fd;
|
||||
#endif
|
||||
set_control_chars(saved_settings, terasechar, intrchar, tkillchar);
|
||||
set_conversions(saved_settings);
|
||||
set_control_chars(settings, terasechar, intrchar, tkillchar);
|
||||
set_conversions(settings);
|
||||
if (send_init_strings(fd, &oldmode)) {
|
||||
reset_flush();
|
||||
}
|
||||
|
||||
update_tty_settings(&oldmode, saved_settings);
|
||||
update_tty_settings(&oldmode, settings);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -217,7 +218,8 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
|
||||
} else if (VALID_STRING(s)) {
|
||||
if (argc > 1) {
|
||||
int k;
|
||||
int ignored;
|
||||
int analyzed;
|
||||
int popcount;
|
||||
long numbers[1 + NUM_PARM];
|
||||
char *strings[1 + NUM_PARM];
|
||||
char *p_is_s[NUM_PARM];
|
||||
@ -254,14 +256,19 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
|
||||
}
|
||||
#endif
|
||||
|
||||
popcount = 0;
|
||||
_nc_reset_tparm(NULL);
|
||||
switch (paramType) {
|
||||
case Num_Str:
|
||||
s = TPARM_2(s, numbers[1], strings[2]);
|
||||
analyzed = 2;
|
||||
break;
|
||||
case Num_Str_Str:
|
||||
s = TPARM_3(s, numbers[1], strings[2], strings[3]);
|
||||
analyzed = 3;
|
||||
break;
|
||||
case Numbers:
|
||||
analyzed = _nc_tparm_analyze(NULL, s, p_is_s, &popcount);
|
||||
#define myParam(n) numbers[n]
|
||||
s = TIPARM_9(s,
|
||||
myParam(1),
|
||||
@ -278,7 +285,7 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
|
||||
case Other:
|
||||
/* FALLTHRU */
|
||||
default:
|
||||
(void) _nc_tparm_analyze(NULL, s, p_is_s, &ignored);
|
||||
analyzed = _nc_tparm_analyze(NULL, s, p_is_s, &popcount);
|
||||
#define myParam(n) (p_is_s[n - 1] != 0 ? ((TPARM_ARG) strings[n]) : numbers[n])
|
||||
s = TPARM_9(s,
|
||||
myParam(1),
|
||||
@ -293,6 +300,10 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
|
||||
#undef myParam
|
||||
break;
|
||||
}
|
||||
if (analyzed < popcount) {
|
||||
analyzed = popcount;
|
||||
}
|
||||
*used += analyzed;
|
||||
}
|
||||
|
||||
/* use putp() in order to perform padding */
|
||||
@ -312,6 +323,7 @@ main(int argc, char **argv)
|
||||
char buf[BUFSIZ];
|
||||
int result = 0;
|
||||
int fd;
|
||||
int used;
|
||||
TTY tty_settings;
|
||||
bool opt_x = FALSE; /* clear scrollback if possible */
|
||||
bool is_alias;
|
||||
@ -372,34 +384,53 @@ main(int argc, char **argv)
|
||||
quit(ErrTermType, "unknown terminal \"%s\"", term);
|
||||
|
||||
if (cmdline) {
|
||||
int code = 0;
|
||||
if ((argc <= 0) && !is_alias)
|
||||
usage();
|
||||
ExitProgram(tput_cmd(fd, &tty_settings, opt_x, argc, argv));
|
||||
while (argc > 0) {
|
||||
code = tput_cmd(fd, &tty_settings, opt_x, argc, argv, &used);
|
||||
if (code != 0)
|
||||
break;
|
||||
argc -= used;
|
||||
argv += used;
|
||||
}
|
||||
ExitProgram(code);
|
||||
}
|
||||
|
||||
while (fgets(buf, sizeof(buf), stdin) != 0) {
|
||||
char *argvec[16]; /* command, 9 parms, null, & slop */
|
||||
size_t need = strlen(buf);
|
||||
char **argvec = typeCalloc(char *, need + 1);
|
||||
char **argnow;
|
||||
int argnum = 0;
|
||||
char *cp;
|
||||
|
||||
/* crack the argument list into a dope vector */
|
||||
if (argvec == NULL) {
|
||||
quit(ErrSystem(1), strerror(errno));
|
||||
}
|
||||
|
||||
/* split the buffer into tokens */
|
||||
for (cp = buf; *cp; cp++) {
|
||||
if (isspace(UChar(*cp))) {
|
||||
*cp = '\0';
|
||||
} else if (cp == buf || cp[-1] == 0) {
|
||||
} else if (cp == buf || cp[-1] == '\0') {
|
||||
argvec[argnum++] = cp;
|
||||
if (argnum >= (int) SIZEOF(argvec) - 1)
|
||||
if (argnum >= (int) need)
|
||||
break;
|
||||
}
|
||||
}
|
||||
argvec[argnum] = 0;
|
||||
|
||||
if (argnum != 0
|
||||
&& tput_cmd(fd, &tty_settings, opt_x, argnum, argvec) != 0) {
|
||||
if (result == 0)
|
||||
result = ErrSystem(0); /* will return value >4 */
|
||||
++result;
|
||||
argnow = argvec;
|
||||
while (argnum > 0) {
|
||||
int code = tput_cmd(fd, &tty_settings, opt_x, argnum, argnow, &used);
|
||||
if (code != 0) {
|
||||
if (result == 0)
|
||||
result = ErrSystem(0); /* will return value >4 */
|
||||
++result;
|
||||
}
|
||||
argnum -= used;
|
||||
argnow += used;
|
||||
}
|
||||
free(argvec);
|
||||
}
|
||||
|
||||
ExitProgram(result);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user