aboutsummaryrefslogtreecommitdiff
path: root/man/term_variables.3x
diff options
context:
space:
mode:
Diffstat (limited to 'man/term_variables.3x')
-rw-r--r--man/term_variables.3x228
1 files changed, 161 insertions, 67 deletions
diff --git a/man/term_variables.3x b/man/term_variables.3x
index 6aee63f487ed..eb244f7a4887 100644
--- a/man/term_variables.3x
+++ b/man/term_variables.3x
@@ -1,5 +1,5 @@
.\"***************************************************************************
-.\" Copyright 2019-2023,2024 Thomas E. Dickey *
+.\" Copyright 2019-2024,2025 Thomas E. Dickey *
.\" Copyright 2010-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@@ -27,8 +27,8 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: term_variables.3x,v 1.36 2024/03/16 15:35:01 tom Exp $
-.TH term_variables 3X 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: term_variables.3x,v 1.44 2025/11/12 01:27:41 tom Exp $
+.TH term_variables 3X 2025-11-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
@@ -81,99 +81,193 @@
\fBNCURSES_CONST char * const strnames[];
.fi
.SH DESCRIPTION
-This page summarizes variables provided by the \fBcurses\fP library's
-low-level terminfo interface.
-A more complete description is given in the \fBcurs_terminfo\fP(3X) manual page.
-.PP
-Depending on the configuration, these may be actual variables,
-or macros (see \fBcurs_threads\fP(3X))
-which provide read-only access to \fIcurses\fP's state.
-In either case, applications should treat them as read-only to avoid
-confusing the library.
+This page summarizes variables provided by the
+.I curses
+library's lower-level
+.I \%term\%info
+interface.
+Locate a more complete description in the \fBcurs_terminfo\fP(3X) manual
+page.
+.PP
+Depending on
+.IR \%ncurses 's
+build-time configuration,
+these may be actual variables,
+or macros
+(see \fBcurs_threads\fP(3X))
+that provide read-only access to
+.IR curses 's
+state.
+In either case,
+applications should treat them as read-only to avoid confusing the
+library.
.SS "Alternate Character Set Mapping"
-After initializing the curses or terminfo interfaces,
-the \fBacs_map\fP array holds information used to translate cells
-with the \fBA_ALTCHARSET\fP video attribute into line-drawing characters.
+After initializing the
+.I curses
+or
+.I \%term\%info
+interfaces,
+the
+.B acs_map
+array holds information used to translate cells with the
+.B \%A_ALTCHARSET
+video attribute into line-drawing characters.
.PP
The encoding of the information in this array has changed periodically.
-Application developers need only know that it is used for the \*(``ACS_\*(''
-constants in <curses.h>.
+Application developers need only know that it is used for the
+\*(``ACS_\*('' constants in
+.IR \%curses.h "."
.PP
-The comparable data for the wide-character library is a private variable.
+The comparable data for the wide-character library are not exposed as
+symbols in the API.
.SS "Current Terminal Data"
-After initializing the curses or terminfo interfaces,
-the \fBcur_term\fP contains data describing the current terminal.
-This variable is also set as a side-effect of \fBset_term\fP(3X)
-and \fBdelscreen\fP(3X).
-.PP
-It is possible to save a value of \fBcur_term\fP for subsequent
-use as a parameter to \fBset_term\fP, for switching between screens.
-Alternatively, one can save the return value from \fBnewterm\fP
-or \fBsetupterm\fP(3X) to reuse in \fBset_term\fP.
+After initializing the
+.I curses
+or
+.I \%term\%info
+interfaces,
+.B cur_term
+contains data describing the current terminal.
+It is also updated as a side effect of \fBset_term\fP(3X) and
+\fBdelscreen\fP(3X).
+.PP
+It is possible to save a value of
+.B cur_term
+for subsequent use as a parameter to \fBset_term\fP(3X)
+for switching between screens.
+Alternatively,
+one can save the return value from \fBnewterm\fP(3X) or
+\fBsetupterm\fP(3X) to reuse in \fBset_term\fP(3X).
.SS "\fIterminfo\fP Lookup Tables"
The \fB@TIC@\fP(1) and \fB@INFOCMP@\fP(1) programs use lookup tables for
-the long and short names of terminfo capabilities,
-as well as the corresponding names for termcap capabilities.
+the long and short names of
+.I \%term\%info
+capabilities,
+as well as the corresponding names for
+.I termcap
+capabilities.
These are available to other applications,
-although the hash-tables used by
-the terminfo and termcap functions are not available.
-.PP
-The long terminfo capability names use a \*(``f\*('' (eff) in their names:
-\fBboolfnames\fP,
-\fBnumfnames\fP, and
-\fBstrfnames\fP.
-.PP
-These are the short names for terminfo capabilities:
-\fBboolnames\fP,
-\fBnumnames\fP, and
-\fBstrnames\fP.
-.PP
-These are the corresponding names used for termcap descriptions:
-\fBboolcodes\fP,
-\fBnumcodes\fP, and
-\fBstrcodes\fP.
+though the hash tables used by the
+.I \%term\%info
+and
+.I termcap
+functions are not.
+.PP
+.I \%term\%info
+stores capability names in arrays with an \*(``f\*('' (eff) in their
+names:
+.BR \%boolfnames ","
+.BR \%numfnames ","
+and
+.BR \%strfnames "."
+It stores the briefer capability codes in arrays without the
+\*(``f\*('':
+.BR \%boolnames ","
+.BR \%numnames ","
+and
+.BR \%strnames "."
+The corresponding
+.I termcap
+capability codes are stored in
+.BR \%boolcodes ","
+.BR \%numcodes ","
+and
+.BR \%strcodes "."
+\fB\%terminfo\fP(5) catalogs these.
.\"
.SS "Terminal Type"
A terminal description begins with one or more terminal names
separated by \*(``|\*('' (vertical bars).
-On initialization of the curses or terminfo interfaces,
-\fBsetupterm\fP(3X) copies the terminal names to the array \fBttytype\fP.
+On initialization of the
+.I curses
+or
+.I \%term\%info
+interfaces,
+\fBsetupterm\fP(3X) copies the terminal name to the array
+.BR ttytype "."
.\"
.SS "\fIterminfo\fP Names"
-In addition to the variables, \fB<term.h>\fP also defines a symbol for each
-terminfo capability \fIlong name\fP.
-These are in terms of the symbol \fBCUR\fP,
+In addition to the variables,
+.I term.h
+also defines a symbol for each
+.I \%term\%info
+capability name.
+These are in terms of the symbol
+.BR CUR ","
which is defined
.PP
+.RS
.EX
#define CUR ((TERMTYPE *)(cur_term))\->
.EE
+.RE
.PP
-These symbols provide a faster method of accessing terminfo capabilities
-than using \fBtigetstr\fP(3X), etc.
+These symbols provide a faster method of accessing
+.I \%term\%info
+capabilities than using,
+for example,
+\fBtigetstr\fP(3X).
.PP
-The actual definition of \fBCUR\fP depends upon the implementation,
-but each terminfo library provides these long names defined to point
-into the current terminal description loaded into memory.
+The definition of
+.B CUR
+is implementation-dependent,
+but each
+.I \%term\%info
+library defines these names to point
+into the in-memory description of the current terminal.
+For example,
+in
+.IR \%ncurses ","
+the expressions
+.B tigetstr("key_dc")
+and
+\*(``\c\" `` string not reliable in a macro call on DWB/Heirloom nroffs
+.B "CUR Strings[59]\c"
+\*('' \" '' string not reliable in a macro call on DWB/Heirloom nroffs
+are equivalent.
.\"
-.SH NOTES
-The low-level terminfo interface is initialized using
-\fB\%setupterm\fP(3X).
-The upper-level curses interface uses the low-level terminfo interface,
-internally.
+.SS "\fIterminfo\fP and \fIcurses"
+\fB\%setupterm\fP(3X) initializes the lower-level
+.I \%term\%info
+interface.
+The higher-level
+.I curses
+interface uses the
+.I \%term\%info
+interface internally;
+the symbol
+.B SP
+bridges the
+.I curses
+.I SCREEN
+type with the
+.I \%term\%info
+.I TERMINAL
+type.
.\"
.SH PORTABILITY
-X/Open Curses does not describe any of these except for \fBcur_term\fP.
-(The inclusion of \fBcur_term\fP appears to be an oversight,
-since other comparable low-level information is omitted by X/Open).
+X/Open Curses does not describe any of these symbols except for
+.IR \%cur_term "."
+(The inclusion of
+.I \%cur_term
+appears to be an oversight,
+since other comparable low-level information is omitted by X/Open.)
.PP
Other implementations may have comparable variables.
Some implementations provide the variables in their libraries,
but omit them from the header files.
.PP
-All implementations which provide terminfo interfaces add definitions
-as described in the \fBTerminfo Names\fP section.
-Most, but not all, base the definition upon the \fBcur_term\fP variable.
+All implementations that provide
+.I \%term\%info
+interfaces add definitions
+as described in the
+.RI \*(`` terminfo
+Names\*('' section above.
+Most,
+but not all,
+base the definition upon the
+.I \%cur_term
+variable.
.SH SEE ALSO
\fB\%curses\fP(3X),
\fB\%curs_terminfo\fP(3X),