]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/curs_terminfo.3x
ncurses 6.5 - patch 20240922
[ncurses.git] / man / curs_terminfo.3x
index 4975914d83b95f9408fd2f85a2e3900f5b5a68e7..6dcfc8b8d4fb1e55ff60fb7018769119908b1634 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_terminfo.3x,v 1.129 2024/01/13 22:15:55 tom Exp $
-.TH curs_terminfo 3X 2024-01-13 "ncurses 6.4" "Library calls"
+.\" $Id: curs_terminfo.3x,v 1.144 2024/09/14 20:06:50 tom Exp $
+.TH curs_terminfo 3X 2024-09-14 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -48,7 +48,6 @@
 .
 .SH NAME
 \fB\%del_curterm\fP,
-\fB\%mvcur\fP,
 \fB\%putp\fP,
 \fB\%restartterm\fP,
 \fB\%set_curterm\fP,
 \fBint vid_puts(attr_t \fIattrs\fP, short \fIpair\fP, void *\fIopts\fP, int (*\fIputc\fP)(int));
 \fBint vid_attr(attr_t \fIattrs\fP, short \fIpair\fP, void *\fIopts\fP);
 .PP
-\fBint mvcur(int \fIoldrow\fP, int \fIoldcol\fP, int \fInewrow\fP, int \fInewcol\fP);
-.PP
 \fBint tigetflag(const char *\fIcap-code\fP);
 \fBint tigetnum(const char *\fIcap-code\fP);
 \fBchar *tigetstr(const char *\fIcap-code\fP);
@@ -228,7 +225,7 @@ initializing the
 .I \%term\%info
 structures,
 but does not set up the output virtualization structures used by
-.I curses.
+.IR curses .
 Its parameters follow.
 .RS 3
 .TP 5
@@ -250,9 +247,9 @@ terminal,
 passing an output
 .I stream
 rather than a
-.I descriptor.
+.IR descriptor .
 In
-.I curses,
+.IR curses ,
 the two are the same because \fB\%newterm\fP calls \fB\%setupterm\fP,
 passing the file descriptor derived from its output stream parameter.
 .TP 5
@@ -267,7 +264,7 @@ then \fB\%setupterm\fP returns
 or
 .B ERR
 and stores a status value in the integer pointed to by
-.I errret.
+.IR errret .
 A return value of
 .B OK
 combined with status of
@@ -333,63 +330,82 @@ which uses all the defaults and sends the output to
 .RE
 .\" ********************************************************************
 .SS "The Terminal State"
-\fB\%setupterm\fP stores its information about the terminal in a
+.B \%setupterm
+stores its information about the terminal in a
 .I \%TERMINAL
-structure pointed to by the global variable \fB\%cur_term\fP.
+structure pointed to by the global variable
+.BR \%cur_term "."
 If it detects an error,
 or decides that the terminal is unsuitable
 (hardcopy or generic),
 it discards this information,
-making it not available to applications.
-.PP
-If \fB\%setupterm\fP is called repeatedly for the same terminal type,
-it will reuse the information.
-It maintains only one copy of a given terminal's capabilities in memory.
-If it is called for different terminal types,
-\fB\%setupterm\fP allocates new storage for each set of terminal
-capabilities.
+making it unavailable to applications.
 .PP
-\fB\%set_curterm\fP sets \fB\%cur_term\fP to
-.I \%nterm,
-and makes all of the
+If
+.B \%setupterm
+is called repeatedly for the same terminal type,
+it reuses the information.
+It maintains only one copy of a given type's capabilities in memory.
+If called for different types,
+.B \%setupterm
+allocates new storage for each set of terminal capabilities.
+.PP
+.B \%set_curterm
+sets
+.B \%cur_term
+to
+.IR \%nterm ","
+making all of the
 .I \%term\%info
 Boolean,
 numeric,
-and string variables use the values from
-.I \%nterm.
-It returns the old value of \fB\%cur_term\fP.
-.PP
-\fB\%del_curterm\fP frees the space pointed to by
-.I \%oterm
-and makes it available for further use.
+and string capabilities use the values from
+.IR \%nterm "."
+It returns the old value of
+.BR \%cur_term "."
+.PP
+.B \%del_curterm
+frees the memory pointed to by
+.BR \%oterm ","
+making it available for further use.
 If
-.I \%oterm
+.B \%oterm
 is
-the same as \fB\%cur_term\fP,
+the same as
+.BR \%cur_term ","
 references to any of the
 .I \%term\%info
 Boolean,
 numeric,
-and string variables thereafter may refer to invalid memory locations
-until another \fB\%setupterm\fP has been called.
-.PP
-\fB\%restartterm\fP is similar to \fB\%setupterm\fP and \fB\%initscr\fP,
-except that it is called after restoring memory to a previous state
+and string capabilities thereafter may refer to invalid memory locations
+until
+.B \%setupterm
+is called again.
+.PP
+.B \%restartterm
+is similar to
+.BR \%setupterm ","
+but is intended for use after restoring program memory
+to a previous state
 (for example,
-when reloading a game saved as a core image dump).
-\fB\%restartterm\fP assumes that the windows and the input and output
-options are the same as when memory was saved,
-but the terminal type and baud rate may be different.
+when reloading an application that has been suspended from one terminal
+session and restored in another).
+.B \%restartterm
+assumes that the display dimensions
+and the input and output options are the same as when memory was saved,
+but the terminal type and line speed may differ.
 Accordingly,
-\fB\%restartterm\fP saves various terminal state bits,
-calls \fB\%setupterm\fP,
-and then restores the bits.
+.B \%restartterm
+saves relevant terminal state,
+calls
+.BR \%setupterm ","
+then restores that state.
 .\" ********************************************************************
 .SS "Formatting Output"
 \fB\%tparm\fP instantiates the string
 .I str
 with parameters
-.I pi.
+.IR pi .
 A pointer is returned to the result of
 .I str
 with the parameters applied.
@@ -419,7 +435,7 @@ rather than a fixed-parameter list.
 Its numeric parameters are
 .IR int s
 rather than
-.IR long s.
+.IR long "s."
 .PP
 Both \fB\%tparm\fP and \fB\%tiparm\fP assume that the application passes
 parameters consistent with the terminal description.
@@ -463,17 +479,9 @@ The
 parameter must be a
 .I \%term\%info
 string variable or the return value of
-\fB\%tparm\fP,
-\fB\%tiparm\fP,
-\fB\%tgetstr\fP,
-or \fB\%tgoto\fP.
-.IP
-The \fB\%tgetstr\fP and \fB\%tgoto\fP functions are part of the
-.I termcap
-interface,
-which happens to share these function names with the
-.I \%term\%info
-API.
+.B \%tparm
+or
+.BR \%tiparm "."
 .bP
 .I affcnt
 is the number of lines affected,
@@ -503,12 +511,12 @@ specified in \fB\%setupterm\fP.
 .PP
 \fB\%vidputs\fP displays the string on the terminal in the video
 attribute mode
-.I attrs,
+.IR attrs ,
 which is any combination of the attributes listed in \fB\%curses\fP(3X).
 The characters are passed to the
 .IR \%putchar -like
 function
-.I putc.
+.IR putc .
 .PP
 \fB\%vidattr\fP is like \fB\%vidputs\fP,
 except that it outputs through \fI\%putchar\fP(3).
@@ -525,14 +533,14 @@ They use multiple parameters to represent the character attributes and
 color;
 namely,
 .bP
-.I \%attrs,
+.IR \%attrs ,
 of type
-.I \%attr_t,
+.IR \%attr_t ,
 for the attributes and
 .bP
-.I pair,
+.IR pair ,
 of type
-.I short,
+.IR short ,
 for the color pair number.
 .PP
 Use the attribute constants prefixed with
@@ -548,21 +556,11 @@ argument for future use,
 saying that applications must provide a null pointer for that argument;
 but see section \*(``EXTENSIONS\*('' below.
 .PP
-\fB\%mvcur\fP provides low-level cursor motion.
-It takes effect immediately
-(rather than at the next refresh).
-Unlike the other low-level output functions,
-which either write to the standard output or pass an output function
-parameter,
-\fB\%mvcur\fP uses an output file descriptor derived from
-the output stream parameter of \fB\%newterm\fP(3X).
-.PP
-While \fB\%putp\fP and \fB\%mvcur\fP are low-level functions that do not
-use high-level
+While \fB\%putp\fP is a low-level function that does not use high-level
 .I curses
 state,
 .I \%ncurses
-declares them in
+declares it in
 .I \%curses.h
 because System\ V did this
 (see section \*(``HISTORY\*('' below).
@@ -573,7 +571,7 @@ because System\ V did this
 and \fB\%tigetstr\fP return the value of the capability corresponding to
 the
 .I \%term\%info
-.I cap-code,
+.IR cap-code ,
 such as
 .BR xenl ,
 passed to them.
@@ -686,7 +684,7 @@ but it is possible to do that using the \fB\%delscreen\fP(3X) function.
 .SH RETURN VALUE
 X/Open Curses defines no failure conditions.
 In
-.I \%ncurses,
+.IR \%ncurses ,
 .TP 5
 .B del_curtem
 fails if its terminal parameter is null.
@@ -696,12 +694,13 @@ calls \fB\%tputs\fP,
 returning the same error codes.
 .TP 5
 .B restartterm
-fails if the associated call to \fB\%setupterm\fP returns an error.
+fails if the associated call to \fB\%setupterm\fP returns
+.BR ERR "."
 .TP 5
 .B setupterm
 fails if it cannot allocate enough memory,
 or create the initial windows
-.RB ( \%stdscr ,
+.RB \%( stdscr ,
 .BR \%curscr ,
 and
 .BR \%newscr )
@@ -739,7 +738,7 @@ is also provided in the non-wide-character configuration.
 .\" ********************************************************************
 .SH EXTENSIONS
 The functions marked as extensions were designed for
-.I \%ncurses,
+.IR \%ncurses ,
 and are not found in SVr4
 .IR curses ,
 4.4BSD
@@ -752,7 +751,7 @@ implementation.
 allows
 .I opts
 to be a pointer to
-.I int,
+.IR int ,
 which overrides the
 .I pair
 .RI ( short )
@@ -804,7 +803,7 @@ but is assumed by some applications.
 .PP
 Other implementions may not declare the capability name arrays.
 Some provide them without declaring them.
-X/Open does not specify them.
+X/Open Curses does not specify them.
 .PP
 Extended terminal capability names,
 as defined by
@@ -821,12 +820,12 @@ block-buffered mode on exit
 .IR curses ),
 it was problematic because
 .I \%ncurses
-did not allow a reliable way to cleanup on receiving
+did not allow a reliable way to clean up on receiving
 .BR SIGTSTP .
 .PP
 The current version (ncurses6)
 uses output buffers managed directly by
-.I \%ncurses.
+.IR \%ncurses .
 Some of the low-level functions described in this manual page write
 to the standard output.
 They are not signal-safe.
@@ -844,10 +843,12 @@ standardized in the late 1980s.
 X/Open Curses uses
 .I \%const
 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
-.I \%const.
-Using constant parameters for functions which do not use
+sometimes applying it needlessly to values that are already constant,
+and in most cases overlooking parameters that normally would use
+.IR \%const .
+Passing
+.IR \%const -qualified
+parameters to functions that do not declare them
 .I \%const
 may prevent the program from compiling.
 On the other hand,
@@ -906,7 +907,9 @@ capabilities use string parameters
 the ones used for programmable function keys).
 .IP
 The \fI\%ncurses\fP library checks usage of these capabilities,
-and returns an error if the capability mishandles string parameters.
+and returns
+.B ERR
+if the capability mishandles string parameters.
 But it cannot check if a calling program provides strings in the right
 places for the \fB\%tparm\fP calls.
 .IP
@@ -938,15 +941,18 @@ the windows console driver by checking if \fB$TERM\fP is set to
 \*(``#win32con\*('' or an abbreviation of that string.
 .SS "Other Portability Issues"
 In SVr4,
-\fB\%set_curterm\fP returns an
-.I int,
+.I \%set_curterm
+returns an
+.IR int ","
 .B OK
 or
-.BR ERR .
+.BR ERR "."
 We have chosen to implement the X/Open Curses semantics.
 .PP
 In SVr4,
-the third argument of \fB\%tputs\fP has the type
+the third argument of
+.I \%tputs
+has the type
 .RB \*(`` "int (*putc)(char)" \*(''.
 .PP
 At least one implementation of X/Open Curses (Solaris) returns a value
@@ -954,70 +960,10 @@ other than
 .B OK
 or
 .B ERR
-from \fB\%tputs\fP.
+from
+.IR \%tputs "."
 It instead returns the length of the string,
 and does no error checking.
-.PP
-X/Open Curses notes that after calling \fB\%mvcur\fP,
-the
-.I curses
-state may not match the actual terminal state,
-and that an application should touch and refresh the window before
-resuming normal
-.I curses
-calls.
-Both
-.I \%ncurses
-and SVr4
-.I curses
-implement \fB\%mvcur\fP using the
-.I SCREEN
-data allocated in either \fB\%initscr\fP or \fB\%newterm\fP.
-So though it is documented as a
-.I \%term\%info
-function,
-\fB\%mvcur\fP is really a
-.I curses
-function that is not well specified.
-.PP
-X/Open notes that after calling \fB\%mvcur\fP,
-the
-.I curses
-state may not match the actual terminal state,
-and that an application should touch and refresh the window before
-resuming normal
-.I curses
-calls.
-Both
-.I \%ncurses
-and SVr4
-.I curses
-implement \fB\%mvcur\fP using the
-.I SCREEN
-data allocated in either \fB\%initscr\fP or \fB\%newterm\fP.
-So though it is documented as a
-.I \%term\%info
-function,
-\fB\%mvcur\fP is really a
-.I curses
-function that is not well specified.
-.PP
-X/Open Curses states that the old location must be given for
-\fB\%mvcur\fP to accommodate terminals that lack absolute cursor
-positioning.
-.\" X/Open Curses Issue 7, p. 161
-.I \%ncurses
-allows the caller to use \-1 for either or both old coordinates.
-The \-1 tells
-.I \%ncurses
-that the old location is unknown,
-and that it must use only absolute motion,
-as with the
-.B \%cursor_address
-.RB ( cup )
-capability,
-rather than the least costly combination of absolute and relative
-motion.
 .\" ********************************************************************
 .SH HISTORY
 SVr2 (1984) introduced the
@@ -1084,6 +1030,7 @@ by adding functions to retrieve capability values
 interface),
 and reusing \fB\%tgoto\fP and \fB\%tputs\fP.
 .PP
+.ne 4v
 .TS
 lB lB
 lB lx.