123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- .\"***************************************************************************
- .\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
- .\" "Software"), to deal in the Software without restriction, including *
- .\" without limitation the rights to use, copy, modify, merge, publish, *
- .\" distribute, distribute with modifications, sublicense, and/or sell *
- .\" copies of the Software, and to permit persons to whom the Software is *
- .\" furnished to do so, subject to the following conditions: *
- .\" *
- .\" The above copyright notice and this permission notice shall be included *
- .\" in all copies or substantial portions of the Software. *
- .\" *
- .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- .\" *
- .\" Except as contained in this notice, the name(s) of the above copyright *
- .\" holders shall not be used in advertising or otherwise to promote the *
- .\" sale, use or other dealings in this Software without prior written *
- .\" authorization. *
- .\"***************************************************************************
- .\"
- .\" $Id: curs_termcap.3x,v 1.22 2007/06/02 20:40:07 tom Exp $
- .TH curs_termcap 3X ""
- .ds n 5
- .SH NAME
- \fBtgetent\fR,
- \fBtgetflag\fR,
- \fBtgetnum\fR,
- \fBtgetstr\fR,
- \fBtgoto\fR,
- \fBtputs\fR - direct \fBcurses\fR interface to the terminfo capability database
- .SH SYNOPSIS
- \fB#include <curses.h>\fR
- .br
- \fB#include <term.h>\fR
- .sp
- \fBextern char PC;\fR
- .br
- \fBextern char * UP;\fR
- .br
- \fBextern char * BC;\fR
- .br
- \fBextern @NCURSES_OSPEED@ ospeed;\fR
- .sp
- \fBint tgetent(char *bp, const char *name);\fR
- .br
- \fBint tgetflag(char *id);\fR
- .br
- \fBint tgetnum(char *id);\fR
- .br
- \fBchar *tgetstr(char *id, char **area);\fR
- .br
- \fBchar *tgoto(const char *cap, int col, int row);\fR
- .br
- \fBint tputs(const char *str, int affcnt, int (*putc)(int));\fR
- .br
- .SH DESCRIPTION
- These routines are included as a conversion aid for programs that use
- the \fItermcap\fR library. Their parameters are the same and the
- routines are emulated using the \fIterminfo\fR database. Thus, they
- can only be used to query the capabilities of entries for which a
- terminfo entry has been compiled.
- .PP
- The \fBtgetent\fR routine loads the entry for \fIname\fR.
- It returns 1 on success, 0 if there is no such entry, and -1 if the
- terminfo database could not be found.
- The emulation ignores the buffer pointer \fIbp\fR.
- .PP
- The \fBtgetflag\fR routine gets the boolean entry for \fIid\fR,
- or zero if it is not available.
- .PP
- The \fBtgetnum\fR routine gets the numeric entry for \fIid\fR,
- or -1 if it is not available.
- .PP
- The \fBtgetstr\fR routine returns the string entry for \fIid\fR,
- or zero if it is not available.
- Use \fBtputs\fR to output the returned string.
- The return value will also be copied to the buffer pointed to by \fIarea\fR,
- and the \fIarea\fR value will be updated to point past the null ending
- this value.
- .PP
- Only the first two characters of the \fBid\fR parameter of
- \fBtgetflag\fR,
- \fBtgetnum\fR and
- \fBtgetstr\fR are compared in lookups.
- .PP
- The \fBtgoto\fR routine instantiates the parameters into the given capability.
- The output from this routine is to be passed to \fBtputs\fR.
- .PP
- The \fBtputs\fR routine is described on the \fBcurs_terminfo\fR(3X) manual
- page. It can retrieve capabilities by either termcap or terminfo name.
- .PP
- The variables
- \fBPC\fR,
- \fBUP\fR and
- \fBBC\fR
- are set by \fBtgetent\fR to the terminfo entry's data for
- \fBpad_char\fR,
- \fBcursor_up\fR and
- \fBbackspace_if_not_bs\fR,
- respectively.
- \fBUP\fR is not used by ncurses.
- \fBPC\fR is used in the \fBtdelay_output\fR function.
- \fBBC\fR is used in the \fBtgoto\fR emulation.
- The variable \fBospeed\fR is set by ncurses in a system-specific coding
- to reflect the terminal speed.
- .
- .SH RETURN VALUE
- Except where explicitly noted,
- routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
- (SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
- completion.
- .PP
- Routines that return pointers return \fBNULL\fR on error.
- .SH BUGS
- If you call \fBtgetstr\fR to fetch \fBca\fR or any other parameterized string,
- be aware that it will be returned in terminfo notation, not the older and
- not-quite-compatible termcap notation. This will not cause problems if all
- you do with it is call \fBtgoto\fR or \fBtparm\fR, which both expand
- terminfo-style strings as terminfo.
- (The \fBtgoto\fR function, if configured to support termcap, will check
- if the string is indeed terminfo-style by looking for "%p" parameters or
- "$<..>" delays, and invoke a termcap-style parser if the string does not
- appear to be terminfo).
- .PP
- Because terminfo conventions for representing padding in string capabilities
- differ from termcap's, \fBtputs("50");\fR will put out a literal "50" rather
- than busy-waiting for 50 milliseconds. Cope with it.
- .PP
- Note that termcap has nothing analogous to terminfo's \fBsgr\fR string.
- One consequence of this is that termcap applications assume \fRme\fR
- (terminfo \fBsgr0\fR) does not reset the alternate character set.
- This implementation checks for, and modifies the data shown to the
- termcap interface to accommodate termcap's limitation in this respect.
- .SH PORTABILITY
- The XSI Curses standard, Issue 4 describes these functions. However, they
- are marked TO BE WITHDRAWN and may be removed in future versions.
- .PP
- Neither the XSI Curses standard nor the SVr4 man pages documented the return
- values of \fBtgetent\fR correctly, though all three were in fact returned ever
- since SVr1.
- In particular, an omission in the XSI Curses documentation has been
- misinterpreted to mean that \fBtgetent\fR returns \fBOK\fR or \fBERR\fR.
- Because the purpose of these functions is to provide compatibility with
- the \fItermcap\fR library, that is a defect in XCurses, Issue 4, Version 2
- rather than in ncurses.
- .PP
- External variables are provided for support of certain termcap applications.
- However, termcap applications' use of those variables is poorly documented,
- e.g., not distinguishing between input and output.
- In particular, some applications are reported to declare and/or
- modify \fBospeed\fR.
- .SH SEE ALSO
- \fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBputc\fR(3).
- .\"#
- .\"# The following sets edit modes for GNU EMACS
- .\"# Local Variables:
- .\"# mode:nroff
- .\"# fill-column:79
- .\"# End:
|