[ncurses.git] / man / tput.1
1 '\" t
2 .\"***************************************************************************
3 .\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
4 .\"                                                                          *
5 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
6 .\" copy of this software and associated documentation files (the            *
7 .\" "Software"), to deal in the Software without restriction, including      *
8 .\" without limitation the rights to use, copy, modify, merge, publish,      *
9 .\" distribute, distribute with modifications, sublicense, and/or sell       *
10 .\" copies of the Software, and to permit persons to whom the Software is    *
11 .\" furnished to do so, subject to the following conditions:                 *
12 .\"                                                                          *
13 .\" The above copyright notice and this permission notice shall be included  *
14 .\" in all copies or substantial portions of the Software.                   *
15 .\"                                                                          *
22 .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
23 .\"                                                                          *
24 .\" Except as contained in this notice, the name(s) of the above copyright   *
25 .\" holders shall not be used in advertising or otherwise to promote the     *
26 .\" sale, use or other dealings in this Software without prior written       *
27 .\" authorization.                                                           *
28 .\"***************************************************************************
29 .\"
30 .\" $Id: tput.1,v 1.31 2011/12/25 01:37:53 tom Exp $
31 .TH @TPUT@ 1 ""
32 .ds d @TERMINFO@
33 .ds n 1
35 \fB@TPUT@\fR, \fBreset\fR \- initialize a terminal or query terminfo database
37 \fB@TPUT@\fR [\fB\-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
38 .br
39 \fB@TPUT@\fR [\fB\-T\fR\fItype\fR] \fBinit\fR
40 .br
41 \fB@TPUT@\fR [\fB\-T\fR\fItype\fR] \fBreset\fR
42 .br
43 \fB@TPUT@\fR [\fB\-T\fR\fItype\fR] \fBlongname\fR
44 .br
45 \fB@TPUT@ \-S\fR  \fB<<\fR
46 .br
47 \fB@TPUT@ \-V\fR
48 .br
50 The \fB@TPUT@\fR utility uses the \fBterminfo\fR database to make the
51 values of terminal-dependent capabilities and information available to
52 the shell (see \fBsh\fR(1)), to initialize or reset the terminal, or
53 return the long name of the requested terminal type.
54 The result depends upon the capability's type:
55 .RS
56 .TP 5
57 string
58 \fB@TPUT@\fR writes the string to the standard output.
59 No trailing newline is supplied.
60 .TP
61 integer
62 \fB@TPUT@\fR writes the decimal value to the standard output,
63 with a trailing newline.
64 .TP
65 boolean
66 \fB@TPUT@\fR simply sets the exit code
67 (\fB0\fR for TRUE if the terminal has the capability,
68 \fB1\fR for FALSE if it does not),
69 and writes nothing to the standard output.
70 .RE
71 .PP
72 Before using a value returned on the standard output,
73 the application should test the exit code
74 (e.g., \fB$?\fR, see \fBsh\fR(1)) to be sure it is \fB0\fR.
75 (See the \fBEXIT CODES\fR and \fBDIAGNOSTICS\fR sections.)
76 For a complete list of capabilities
77 and the \fIcapname\fR associated with each, see \fBterminfo\fR(5).
78 .TP
79 \fB\-T\fR\fItype\fR
80 indicates the \fItype\fR of terminal.  Normally this option is
81 unnecessary, because the default is taken from the environment
82 variable \fBTERM\fR.  If \fB\-T\fR is specified, then the shell
83 variables \fBLINES\fR and \fBCOLUMNS\fR will be ignored,and the
84 operating system will not be queried for the actual screen size.
85 .TP
86 \fIcapname\fR
87 indicates the capability from the \fBterminfo\fR database.  When
88 \fBtermcap\fR support is compiled in, the \fBtermcap\fR name for
89 the capability is also accepted.
90 .TP
91 \fIparms\fR
92 If the capability is a string that takes parameters, the arguments
93 \fIparms\fR will be instantiated into the string.
94 .IP
95 Most parameters are numbers.
96 Only a few terminfo capabilities require string parameters;
97 \fB@TPUT@\fR uses a table to decide which to pass as strings.
98 Normally \fB@TPUT@\fR uses \fBtparm\fR (3X) to perform the substitution.
99 If no parameters are given for the capability,
100 \fB@TPUT@\fR writes the string without performing the substitution.
101 .TP
102 \fB\-S\fR
103 allows more than one capability per invocation of \fB@TPUT@\fR.  The
104 capabilities must be passed to \fB@TPUT@\fR from the standard input
105 instead of from the command line (see example).
106 Only one \fIcapname\fR is allowed per line.
107 The \fB\-S\fR option changes the
108 meaning of the \fB0\fR and \fB1\fR boolean and string exit codes (see the
109 EXIT CODES section).
110 .IP
111 Again, \fB@TPUT@\fR uses a table and the presence of parameters in its input
112 to decide whether to use \fBtparm\fR (3X),
113 and how to interpret the parameters.
114 .TP
115 \fB\-V\fR
116 reports the version of ncurses which was used in this program, and exits.
117 .TP
118 \fBinit\fR
119 If the \fBterminfo\fR database is present and an entry for the user's
120 terminal exists (see \fB\-T\fR\fItype\fR, above), the following will
121 occur:
122 .RS
123 .TP
124 (1)
125 if present, the terminal's initialization strings will be
126 output as detailed in the \fBterminfo\fR(5) section on
127 .IR "Tabs and Initialization" ,
128 .TP
129 (2)
130 any delays (e.g., newline) specified in the entry will
131 be set in the tty driver,
132 .TP
133 (3)
134 tabs expansion will be turned on or off according to
135 the specification in the entry, and
136 .TP
137 (4)
138 if tabs are not expanded,
139 standard tabs will be set (every 8 spaces).
140 .RE
141 .IP
142 If an entry does not
143 contain the information needed for any of the four above activities,
144 that activity will silently be skipped.
145 .TP
146 \fBreset\fR
147 Instead of putting out initialization strings, the terminal's
148 reset strings will be output if present (\fBrs1\fR, \fBrs2\fR, \fBrs3\fR, \fBrf\fR).
149 If the reset strings are not present, but initialization
150 strings are, the initialization strings will be output.
151 Otherwise, \fBreset\fR acts identically to \fBinit\fR.
152 .TP
153 \fBlongname\fR
154 If the \fBterminfo\fR database is present and an entry for the
155 user's terminal exists (see \fB\-T\fR\fItype\fR above), then the long name
156 of the terminal will be put out.  The long name is the last
157 name in the first line of the terminal's description in the
158 \fBterminfo\fR database [see \fBterm\fR(5)].
159 .PP
160 If \fB@TPUT@\fR is invoked by a link named \fBreset\fR, this has the
161 same effect as \fB@TPUT@ reset\fR.
162 See \fB@TSET@\fR for comparison, which has similar behavior.
164 .TP 5
165 \fB@TPUT@ init\fR
166 Initialize the terminal according to the type of
167 terminal in the environmental variable \fBTERM\fR.  This
168 command should be included in everyone's .profile after
169 the environmental variable \fBTERM\fR has been exported, as
170 illustrated on the \fBprofile\fR(5) manual page.
171 .TP 5
172 \fB@TPUT@ \-T5620 reset\fR
173 Reset an AT&T 5620 terminal, overriding the type of
174 terminal in the environmental variable \fBTERM\fR.
175 .TP 5
176 \fB@TPUT@ cup 0 0\fR
177 Send the sequence to move the cursor to row \fB0\fR, column \fB0\fR
178 (the upper left corner of the screen, usually known as the "home"
179 cursor position).
180 .TP 5
181 \fB@TPUT@ clear\fR
182 Echo the clear-screen sequence for the current terminal.
183 .TP 5
184 \fB@TPUT@ cols\fR
185 Print the number of columns for the current terminal.
186 .TP 5
187 \fB@TPUT@ \-T450 cols\fR
188 Print the number of columns for the 450 terminal.
189 .TP 5
190 \fBbold=`@TPUT@ smso` offbold=`@TPUT@ rmso`\fR
191 Set the shell variables \fBbold\fR, to begin stand-out mode
192 sequence, and \fBoffbold\fR, to end standout mode sequence,
193 for the current terminal.  This might be followed by a
194 prompt: \fBecho "${bold}Please type in your name: ${offbold}\\c"\fR
195 .TP 5
196 \fB@TPUT@ hc\fR
197 Set exit code to indicate if the current terminal is a hard copy terminal.
198 .TP 5
199 \fB@TPUT@ cup 23 4\fR
200 Send the sequence to move the cursor to row 23, column 4.
201 .TP 5
202 \fB@TPUT@ cup\fR
203 Send the terminfo string for cursor-movement, with no parameters substituted.
204 .TP 5
205 \fB@TPUT@ longname\fR
206 Print the long name from the \fBterminfo\fR database for the
207 type of terminal specified in the environmental
208 variable \fBTERM\fR.
209 .PP
210 .RS 5
211 \fB@TPUT@ \-S <<!\fR
212 .br
213 \fB> clear\fR
214 .br
215 \fB> cup 10 10\fR
216 .br
217 \fB> bold\fR
218 .br
219 \fB> !\fR
220 .RE
221 .TP 5
222 \&
223 This example shows \fB@TPUT@\fR processing several capabilities in one invocation.
224 It clears the screen,
225 moves the cursor to position 10, 10
226 and turns on bold (extra bright) mode.
227 The list is terminated by an exclamation mark (\fB!\fR) on a line by itself.
229 .TP
230 \fB\*d\fR
231 compiled terminal description database
232 .TP
233 \fB@DATADIR@/tabset/*\fR
234 tab settings for some terminals, in a format
235 appropriate to be output to the terminal (escape
236 sequences that set margins and tabs); for more
237 information, see the "Tabs and Initialization"
238 section of \fBterminfo\fR(5)
240 If the \fB\-S\fR option is used,
241 \fB@TPUT@\fR checks for errors from each line,
242 and if any errors are found, will set the exit code to 4 plus the
243 number of lines with errors.
244 If no errors are found, the exit code is \fB0\fR.
245 No indication of which line failed can be given so
246 exit code \fB1\fR will never appear.  Exit codes \fB2\fR, \fB3\fR, and
247 \fB4\fR retain their usual interpretation.
248 If the \fB\-S\fR option is not used,
249 the exit code depends on the type of \fIcapname\fR:
250 .RS 5
251 .TP
252 .I boolean
253 a value of \fB0\fR is set for TRUE and \fB1\fR for FALSE.
254 .TP
255 .I string
256 a value of \fB0\fR is set if the
257 \fIcapname\fR is defined for this terminal \fItype\fR (the value of
258 \fIcapname\fR is returned on standard output);
259 a value of \fB1\fR is set if \fIcapname\fR
260 is not defined for this terminal \fItype\fR
261 (nothing is written to standard output).
262 .TP
263 .I integer
264 a value of \fB0\fR is always set,
265 whether or not \fIcapname\fR is defined for this terminal \fItype\fR.
266 To determine if \fIcapname\fR is defined for this terminal \fItype\fR,
267 the user must test the value written to standard output.
268 A value of \fB\-1\fR
269 means that \fIcapname\fR is not defined for this terminal \fItype\fR.
270 .TP
271 .I other
272 \fBreset\fR or \fBinit\fR may fail to find their respective files.
273 In that case, the exit code is set to 4 + \fBerrno\fR.
274 .RE
275 .PP
276 Any other exit code indicates an error; see the DIAGNOSTICS section.
278 \fB@TPUT@\fR prints the following error messages and sets the corresponding exit
279 codes.
280 .PP
281 .ne 15
282 .TS
283 l l.
284 exit code       error message
285 =
286 \fB0\fR T{
287 (\fIcapname\fR is a numeric variable that is not specified in the
288 \fBterminfo\fR(5) database for this terminal type, e.g.
289 \fB@TPUT@ \-T450 lines\fR and \fB@TPUT@ \-T2621 xmc\fR)
290 T}
291 \fB1\fR no error message is printed, see the \fBEXIT CODES\fR section.
292 \fB2\fR usage error
293 \fB3\fR unknown terminal \fItype\fR or no \fBterminfo\fR database
294 \fB4\fR unknown \fBterminfo\fR capability \fIcapname\fR
295 \fB>4\fR        error occurred in \-S
296 =
297 .TE
299 .PP
300 The \fBlongname\fR and \fB\-S\fR options, and the parameter-substitution
301 features used in the \fBcup\fR example, are not supported in BSD curses or in
302 AT&T/USL curses before SVr4.
303 .PP
304 X/Open documents only the operands for \fBclear\fP, \fBinit\fP and \fBreset\fP.
305 In this implementation, \fBclear\fP is part of the \fIcapname\fR support.
306 Other implementations of \fB@TPUT@\fP on
307 SVr4-based systems such as Solaris, IRIX64 and HPUX
308 as well as others such as AIX and Tru64
309 provide support for \fIcapname\fR operands.
310 .PP
311 A few platforms such as FreeBSD and NetBSD recognize termcap names rather
312 than terminfo capability names in their respective \fB@TPUT@\fP commands.
313 .PP
314 Most implementations which provide support for \fIcapname\fR operands
315 use the \fItparm\fP function to expand parameters in it.
316 That function expects a mixture of numeric and string parameters,
317 requiring \fB@TPUT@\fP to know which type to use.
318 This implementation uses a table to determine that for
319 the standard \fIcapname\fR operands, and an internal library
320 function to analyze nonstandard \fIcapname\fR operands.
321 Other implementations may simply guess that an operand containing only digits
322 is intended to be a number.
324 \fB@CLEAR@\fR(1),
325 \fBstty\fR(1),
326 \fBtabs\fR(\*n),
327 \fBterminfo\fR(5),
328 \fBcurs_termcap\fR(3X).
329 .PP
330 This describes \fBncurses\fR