ncurses 5.7 - patch 20100918
[ncurses.git] / doc / html / man / curs_termcap.3x.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
2 <!-- 
3   ****************************************************************************
4   * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc.              *
5   *                                                                          *
6   * Permission is hereby granted, free of charge, to any person obtaining a  *
7   * copy of this software and associated documentation files (the            *
8   * "Software"), to deal in the Software without restriction, including      *
9   * without limitation the rights to use, copy, modify, merge, publish,      *
10   * distribute, distribute with modifications, sublicense, and/or sell       *
11   * copies of the Software, and to permit persons to whom the Software is    *
12   * furnished to do so, subject to the following conditions:                 *
13   *                                                                          *
14   * The above copyright notice and this permission notice shall be included  *
15   * in all copies or substantial portions of the Software.                   *
16   *                                                                          *
17   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
18   * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
19   * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
20   * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
21   * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
22   * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
23   * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
24   *                                                                          *
25   * Except as contained in this notice, the name(s) of the above copyright   *
26   * holders shall not be used in advertising or otherwise to promote the     *
27   * sale, use or other dealings in this Software without prior written       *
28   * authorization.                                                           *
29   ****************************************************************************
30   * @Id: curs_termcap.3x,v 1.24 2010/09/11 19:59:32 tom Exp @
31 -->
32 <HTML>
33 <HEAD>
34 <TITLE>curs_termcap 3x</TITLE>
35 <link rev=made href="mailto:bug-ncurses@gnu.org">
36 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
37 </HEAD>
38 <BODY>
39 <H1>curs_termcap 3x</H1>
40 <HR>
41 <PRE>
42 <!-- Manpage converted by man2html 3.0.1 -->
43 <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>                                       <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
44
45
46
47
48 </PRE>
49 <H2>NAME</H2><PRE>
50        <STRONG>PC</STRONG>, <STRONG>UP</STRONG>, <STRONG>BC</STRONG>, <STRONG>ospeed</STRONG>, <STRONG>tgetent</STRONG>, <STRONG>tgetflag</STRONG>, <STRONG>tgetnum</STRONG>, <STRONG>tgetstr</STRONG>,
51        <STRONG>tgoto</STRONG>, <STRONG>tputs</STRONG> - direct <STRONG>curses</STRONG> interface to the terminfo
52        capability database
53
54
55 </PRE>
56 <H2>SYNOPSIS</H2><PRE>
57        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
58        <STRONG>#include</STRONG> <STRONG>&lt;term.h&gt;</STRONG>
59
60        <STRONG>extern</STRONG> <STRONG>char</STRONG> <STRONG>PC;</STRONG>
61        <STRONG>extern</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>UP;</STRONG>
62        <STRONG>extern</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>BC;</STRONG>
63        <STRONG>extern</STRONG> <STRONG>short</STRONG> <STRONG>ospeed;</STRONG>
64
65        <STRONG>int</STRONG> <STRONG>tgetent(char</STRONG> <STRONG>*bp,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*name);</STRONG>
66        <STRONG>int</STRONG> <STRONG>tgetflag(char</STRONG> <STRONG>*id);</STRONG>
67        <STRONG>int</STRONG> <STRONG>tgetnum(char</STRONG> <STRONG>*id);</STRONG>
68        <STRONG>char</STRONG> <STRONG>*tgetstr(char</STRONG> <STRONG>*id,</STRONG> <STRONG>char</STRONG> <STRONG>**area);</STRONG>
69        <STRONG>char</STRONG> <STRONG>*tgoto(const</STRONG> <STRONG>char</STRONG> <STRONG>*cap,</STRONG> <STRONG>int</STRONG> <STRONG>col,</STRONG> <STRONG>int</STRONG> <STRONG>row);</STRONG>
70        <STRONG>int</STRONG> <STRONG>tputs(const</STRONG> <STRONG>char</STRONG> <STRONG>*str,</STRONG> <STRONG>int</STRONG> <STRONG>affcnt,</STRONG> <STRONG>int</STRONG> <STRONG>(*putc)(int));</STRONG>
71
72
73 </PRE>
74 <H2>DESCRIPTION</H2><PRE>
75        These  routines  are included as a conversion aid for pro-
76        grams that use the <EM>termcap</EM> library.  Their parameters  are
77        the  same and the routines are emulated using the <EM>terminfo</EM>
78        database.  Thus, they can only be used to query the  capa-
79        bilities  of  entries  for which a terminfo entry has been
80        compiled.
81
82        The <STRONG>tgetent</STRONG> routine loads the entry for <EM>name</EM>.  It  returns
83        1  on  success, 0 if there is no such entry, and -1 if the
84        terminfo database could not be found.  The  emulation  ig-
85        nores the buffer pointer <EM>bp</EM>.
86
87        The <STRONG>tgetflag</STRONG> routine gets the boolean entry for <EM>id</EM>, or ze-
88        ro if it is not available.
89
90        The <STRONG>tgetnum</STRONG> routine gets the numeric entry for <EM>id</EM>,  or  -1
91        if it is not available.
92
93        The  <STRONG>tgetstr</STRONG>  routine  returns the string entry for <EM>id</EM>, or
94        zero if it is not available.  Use <STRONG>tputs</STRONG> to output the  re-
95        turned  string.   The  return value will also be copied to
96        the buffer pointed to by <EM>area</EM>, and the <EM>area</EM> value will  be
97        updated to point past the null ending this value.
98
99        Only the first two characters of the <STRONG>id</STRONG> parameter of <STRONG>tget-</STRONG>
100        <STRONG>flag</STRONG>, <STRONG>tgetnum</STRONG> and <STRONG>tgetstr</STRONG> are compared in lookups.
101
102        The <STRONG>tgoto</STRONG> routine instantiates  the  parameters  into  the
103        given  capability.   The output from this routine is to be
104        passed to <STRONG>tputs</STRONG>.
105
106        The <STRONG>tputs</STRONG> routine is described  on  the  <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
107        manual page.  It can retrieve capabilities by either term-
108        cap or terminfo name.
109
110        The variables <STRONG>PC</STRONG>, <STRONG>UP</STRONG> and <STRONG>BC</STRONG> are set by <STRONG>tgetent</STRONG> to the ter-
111        minfo   entry's   data   for   <STRONG>pad_char</STRONG>,   <STRONG>cursor_up</STRONG>   and
112        <STRONG>backspace_if_not_bs</STRONG>, respectively.   <STRONG>UP</STRONG>  is  not  used  by
113        ncurses.  <STRONG>PC</STRONG> is used in the <STRONG>tdelay_output</STRONG> function.  <STRONG>BC</STRONG> is
114        used in the <STRONG>tgoto</STRONG> emulation.  The variable <STRONG>ospeed</STRONG>  is  set
115        by ncurses in a system-specific coding to reflect the ter-
116        minal speed.
117
118
119 </PRE>
120 <H2>RETURN VALUE</H2><PRE>
121        Except where explicitly noted, routines that return an in-
122        teger  return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 only specifies
123        "an integer value other than <STRONG>ERR</STRONG>") upon successful comple-
124        tion.
125
126        Routines that return pointers return <STRONG>NULL</STRONG> on error.
127
128
129 </PRE>
130 <H2>BUGS</H2><PRE>
131        If you call <STRONG>tgetstr</STRONG> to fetch <STRONG>ca</STRONG> or any other parameterized
132        string, be aware that it will be returned in terminfo  no-
133        tation, not the older and not-quite-compatible termcap no-
134        tation.  This will not cause problems if all you  do  with
135        it  is  call  <STRONG>tgoto</STRONG>  or <STRONG>tparm</STRONG>, which both expand terminfo-
136        style strings as terminfo.  (The <STRONG>tgoto</STRONG> function,  if  con-
137        figured  to  support  termcap, will check if the string is
138        indeed terminfo-style by looking for  "%p"  parameters  or
139        "$&lt;..&gt;"  delays,  and invoke a termcap-style parser if the
140        string does not appear to be terminfo).
141
142        Because terminfo conventions for representing  padding  in
143        string  capabilities  differ  from termcap's, <STRONG>tputs("50");</STRONG>
144        will put out a literal "50" rather than  busy-waiting  for
145        50 milliseconds.  Cope with it.
146
147        Note  that termcap has nothing analogous to terminfo's <STRONG>sgr</STRONG>
148        string.  One consequence of this is that termcap  applica-
149        tions  assume me (terminfo <STRONG>sgr0</STRONG>) does not reset the alter-
150        nate character set.  This implementation checks  for,  and
151        modifies the data shown to the termcap interface to accom-
152        modate termcap's limitation in this respect.
153
154
155 </PRE>
156 <H2>PORTABILITY</H2><PRE>
157        The XSI Curses standard, Issue  4  describes  these  func-
158        tions.   However,  they are marked TO BE WITHDRAWN and may
159        be removed in future versions.
160
161        Neither the XSI Curses standard nor  the  SVr4  man  pages
162        documented  the return values of <STRONG>tgetent</STRONG> correctly, though
163        all three were in fact returned ever since SVr1.  In  par-
164        ticular,  an  omission in the XSI Curses documentation has
165        been misinterpreted to mean that  <STRONG>tgetent</STRONG>  returns  <STRONG>OK</STRONG>  or
166        <STRONG>ERR</STRONG>.  Because the purpose of these functions is to provide
167        compatibility with the <EM>termcap</EM> library, that is  a  defect
168        in XCurses, Issue 4, Version 2 rather than in ncurses.
169
170        External  variables  are  provided  for support of certain
171        termcap applications.  However, termcap applications'  use
172        of those variables is poorly documented, e.g., not distin-
173        guishing between input and output.   In  particular,  some
174        applications are reported to declare and/or modify <STRONG>ospeed</STRONG>.
175
176
177 </PRE>
178 <H2>SEE ALSO</H2><PRE>
179        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>.
180
181
182
183                                                        <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
184 </PRE>
185 <HR>
186 <ADDRESS>
187 Man(1) output converted with
188 <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
189 </ADDRESS>
190 </BODY>
191 </HTML>