3 ****************************************************************************
4 * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. *
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: *
14 * The above copyright notice and this permission notice shall be included *
15 * in all copies or substantial portions of the Software. *
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. *
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 *
29 ****************************************************************************
30 * @Id: tput.1,v 1.54 2017/01/29 00:51:08 tom Exp @
32 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
35 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
36 <meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
38 <link rev=made href="mailto:bug-ncurses@gnu.org">
39 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
42 <H1 class="no-header">tput 1</H1>
44 <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
49 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
50 <STRONG>tput</STRONG>, <STRONG>reset</STRONG> - initialize a terminal or query terminfo
54 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
55 <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <EM>capname</EM> [<EM>parameters</EM>]
56 <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <STRONG>clear</STRONG>
57 <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <STRONG>init</STRONG>
58 <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <STRONG>reset</STRONG>
59 <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <STRONG>longname</STRONG>
60 <STRONG>tput</STRONG> <STRONG>-S</STRONG> <STRONG><<</STRONG>
61 <STRONG>tput</STRONG> <STRONG>-V</STRONG>
64 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
65 The <STRONG>tput</STRONG> utility uses the <STRONG>terminfo</STRONG> database to make the
66 values of terminal-dependent capabilities and information
67 available to the shell (see <STRONG>sh(1)</STRONG>), to initialize or reset
68 the terminal, or return the long name of the requested
69 terminal type. The result depends upon the capability's
73 <STRONG>tput</STRONG> writes the string to the standard output. No
74 trailing newline is supplied.
77 <STRONG>tput</STRONG> writes the decimal value to the standard out-
78 put, with a trailing newline.
81 <STRONG>tput</STRONG> simply sets the exit code (<STRONG>0</STRONG> for TRUE if the
82 terminal has the capability, <STRONG>1</STRONG> for FALSE if it
83 does not), and writes nothing to the standard out-
86 Before using a value returned on the standard output, the
87 application should test the exit code (e.g., <STRONG>$?</STRONG>, see
88 <STRONG>sh(1)</STRONG>) to be sure it is <STRONG>0</STRONG>. (See the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> and <STRONG>DIAG-</STRONG>
89 <STRONG>NOSTICS</STRONG> sections.) For a complete list of capabilities
90 and the <EM>capname</EM> associated with each, see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
93 </PRE><H3><a name="h3-Options">Options</a></H3><PRE>
94 <STRONG>-T</STRONG><EM>type</EM> indicates the <EM>type</EM> of terminal. Normally this
95 option is unnecessary, because the default is taken
96 from the environment variable <STRONG>TERM</STRONG>. If <STRONG>-T</STRONG> is spec-
97 ified, then the shell variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG>
100 <STRONG>-S</STRONG> allows more than one capability per invocation of
101 <STRONG>tput</STRONG>. The capabilities must be passed to <STRONG>tput</STRONG> from
102 the standard input instead of from the command line
103 (see example). Only one <EM>capname</EM> is allowed per
104 line. The <STRONG>-S</STRONG> option changes the meaning of the <STRONG>0</STRONG>
105 and <STRONG>1</STRONG> boolean and string exit codes (see the EXIT
108 Again, <STRONG>tput</STRONG> uses a table and the presence of param-
109 eters in its input to decide whether to use
110 <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>, and how to interpret the parameters.
112 <STRONG>-V</STRONG> reports the version of ncurses which was used in
113 this program, and exits.
116 </PRE><H3><a name="h3-Commands">Commands</a></H3><PRE>
117 A few commands (<STRONG>init</STRONG>, <STRONG>reset</STRONG> and <STRONG>longname</STRONG>) are special;
118 they are defined by the <STRONG>tput</STRONG> program. The others are the
119 names of <EM>capabilities</EM> from the terminal database (see <STRONG>ter-</STRONG>
120 <STRONG><A HREF="terminfo.5.html">minfo(5)</A></STRONG> for a list). Although <STRONG>init</STRONG> and <STRONG>reset</STRONG> resemble
121 capability names, <STRONG>tput</STRONG> uses several capabilities to per-
122 form these special functions.
125 indicates the capability from the terminal data-
128 If the capability is a string that takes parame-
129 ters, the arguments following the capability will
130 be used as parameters for the string.
132 Most parameters are numbers. Only a few terminal
133 capabilities require string parameters; <STRONG>tput</STRONG> uses a
134 table to decide which to pass as strings. Normally
135 <STRONG>tput</STRONG> uses <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> to perform the substitution.
136 If no parameters are given for the capability, <STRONG>tput</STRONG>
137 writes the string without performing the substitu-
140 <STRONG>init</STRONG> If the terminal database is present and an entry
141 for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM>, above),
142 the following will occur:
144 (1) first, <STRONG>tput</STRONG> retrieves the current terminal
145 mode settings for your terminal. It does this
146 by successively testing
148 <STRONG>o</STRONG> the standard error,
150 <STRONG>o</STRONG> standard output,
152 <STRONG>o</STRONG> standard input and
154 <STRONG>o</STRONG> ultimately "/dev/tty"
156 to obtain terminal settings. Having retrieved
157 these settings, <STRONG>tput</STRONG> remembers which file
158 descriptor to use when updating settings.
160 (2) if the window size cannot be obtained from the
161 operating system, but the terminal description
162 (or environment, e.g., <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> vari-
163 ables specify this), update the operating sys-
164 tem's notion of the window size.
166 (3) the terminal modes will be updated:
168 <STRONG>o</STRONG> any delays (e.g., newline) specified in
169 the entry will be set in the tty driver,
171 <STRONG>o</STRONG> tabs expansion will be turned on or off
172 according to the specification in the
175 <STRONG>o</STRONG> if tabs are not expanded, standard tabs
176 will be set (every 8 spaces).
178 (4) if present, the terminal's initialization
179 strings will be output as detailed in the <STRONG>ter-</STRONG>
180 <STRONG><A HREF="terminfo.5.html">minfo(5)</A></STRONG> section on <EM>Tabs</EM> <EM>and</EM> <EM>Initialization</EM>,
182 (5) output is flushed.
184 If an entry does not contain the information needed
185 for any of these activities, that activity will
188 <STRONG>reset</STRONG> This is similar to <STRONG>init</STRONG>, with two differences:
190 (1) before any other initialization, the terminal
191 modes will be reset to a "sane" state:
193 <STRONG>o</STRONG> set cooked and echo modes,
195 <STRONG>o</STRONG> turn off cbreak and raw modes,
197 <STRONG>o</STRONG> turn on newline translation and
199 <STRONG>o</STRONG> reset any unset special characters to
202 (2) Instead of putting out <EM>initialization</EM> strings,
203 the terminal's <EM>reset</EM> strings will be output if
204 present (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the <EM>reset</EM>
205 strings are not present, but <EM>initialization</EM>
206 strings are, the <EM>initialization</EM> strings will
209 Otherwise, <STRONG>reset</STRONG> acts identically to <STRONG>init</STRONG>.
211 <STRONG>longname</STRONG>
212 If the terminal database is present and an entry
213 for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM> above),
214 then the long name of the terminal will be put out.
215 The long name is the last name in the first line of
216 the terminal's description in the <STRONG>terminfo</STRONG> database
217 [see <STRONG><A HREF="term.5.html">term(5)</A></STRONG>].
220 </PRE><H3><a name="h3-Aliases">Aliases</a></H3><PRE>
221 <STRONG>tput</STRONG> handles the <STRONG>clear</STRONG>, <STRONG>init</STRONG> and <STRONG>reset</STRONG> commands specially:
222 it allows for the possibility that it is invoked by a link
225 If <STRONG>tput</STRONG> is invoked by a link named <STRONG>reset</STRONG>, this has the
226 same effect as <STRONG>tput</STRONG> <STRONG>reset</STRONG>. The <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> utility also
227 treats a link named <STRONG>reset</STRONG> specially.
229 Before ncurses 6.1, the two utilities were different from
232 <STRONG>o</STRONG> <STRONG>tset</STRONG> utility reset the terminal modes and special
233 characters (not done with <STRONG>tput</STRONG>).
235 <STRONG>o</STRONG> On the other hand, <STRONG>tset</STRONG>'s repertoire of terminal capa-
236 bilities for resetting the terminal was more limited,
237 i.e., only <STRONG>reset_1string</STRONG>, <STRONG>reset_2string</STRONG> and <STRONG>reset_file</STRONG>
238 in contrast to the tab-stops and margins which are set
241 <STRONG>o</STRONG> The <STRONG>reset</STRONG> program is usually an alias for <STRONG>tset</STRONG>,
242 because of this difference with resetting terminal
243 modes and special characters.
245 With the changes made for ncurses 6.1, the <EM>reset</EM> feature
246 of the two programs is (mostly) the same. A few differ-
249 <STRONG>o</STRONG> The <STRONG>tset</STRONG> program waits one second when resetting, in
250 case it happens to be a hardware terminal.
252 <STRONG>o</STRONG> The two programs write the terminal initialization
253 strings to different streams (i.e.,. the standard
254 error for <STRONG>tset</STRONG> and the standard output for <STRONG>tput</STRONG>).
256 <STRONG>Note:</STRONG> although these programs write to different
257 streams, redirecting their output to a file will cap-
258 ture only part of their actions. The changes to the
259 terminal modes are not affected by redirecting the
262 If <STRONG>tput</STRONG> is invoked by a link named <STRONG>init</STRONG>, this has the same
263 effect as <STRONG>tput</STRONG> <STRONG>init</STRONG>. Again, you are less likely to use
264 that link because another program named <STRONG>init</STRONG> has a more
265 well-established use.
268 </PRE><H2><a name="h2-EXAMPLES">EXAMPLES</a></H2><PRE>
269 <STRONG>tput</STRONG> <STRONG>init</STRONG>
270 Initialize the terminal according to the type of ter-
271 minal in the environmental variable <STRONG>TERM</STRONG>. This com-
272 mand should be included in everyone's .profile after
273 the environmental variable <STRONG>TERM</STRONG> has been exported, as
274 illustrated on the <STRONG>profile(5)</STRONG> manual page.
276 <STRONG>tput</STRONG> <STRONG>-T5620</STRONG> <STRONG>reset</STRONG>
277 Reset an AT&T 5620 terminal, overriding the type of
278 terminal in the environmental variable <STRONG>TERM</STRONG>.
280 <STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>0</STRONG> <STRONG>0</STRONG>
281 Send the sequence to move the cursor to row <STRONG>0</STRONG>, column
282 <STRONG>0</STRONG> (the upper left corner of the screen, usually known
283 as the "home" cursor position).
285 <STRONG>tput</STRONG> <STRONG>clear</STRONG>
286 Echo the clear-screen sequence for the current termi-
289 <STRONG>tput</STRONG> <STRONG>cols</STRONG>
290 Print the number of columns for the current terminal.
292 <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>cols</STRONG>
293 Print the number of columns for the 450 terminal.
295 <STRONG>bold=`tput</STRONG> <STRONG>smso`</STRONG> <STRONG>offbold=`tput</STRONG> <STRONG>rmso`</STRONG>
296 Set the shell variables <STRONG>bold</STRONG>, to begin stand-out mode
297 sequence, and <STRONG>offbold</STRONG>, to end standout mode sequence,
298 for the current terminal. This might be followed by
299 a prompt: <STRONG>echo</STRONG> <STRONG>"${bold}Please</STRONG> <STRONG>type</STRONG> <STRONG>in</STRONG> <STRONG>your</STRONG> <STRONG>name:</STRONG>
300 <STRONG>${offbold}\c"</STRONG>
302 <STRONG>tput</STRONG> <STRONG>hc</STRONG>
303 Set exit code to indicate if the current terminal is
304 a hard copy terminal.
306 <STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>23</STRONG> <STRONG>4</STRONG>
307 Send the sequence to move the cursor to row 23, col-
310 <STRONG>tput</STRONG> <STRONG>cup</STRONG>
311 Send the terminfo string for cursor-movement, with no
312 parameters substituted.
314 <STRONG>tput</STRONG> <STRONG>longname</STRONG>
315 Print the long name from the <STRONG>terminfo</STRONG> database for
316 the type of terminal specified in the environmental
317 variable <STRONG>TERM</STRONG>.
319 <STRONG>tput</STRONG> <STRONG>-S</STRONG> <STRONG><<!</STRONG>
320 <STRONG>></STRONG> <STRONG>clear</STRONG>
321 <STRONG>></STRONG> <STRONG>cup</STRONG> <STRONG>10</STRONG> <STRONG>10</STRONG>
322 <STRONG>></STRONG> <STRONG>bold</STRONG>
323 <STRONG>></STRONG> <STRONG>!</STRONG>
325 This example shows <STRONG>tput</STRONG> processing several capabili-
326 ties in one invocation. It clears the screen, moves
327 the cursor to position 10, 10 and turns on bold
328 (extra bright) mode. The list is terminated by an
329 exclamation mark (<STRONG>!</STRONG>) on a line by itself.
332 </PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
333 <STRONG>/usr/share/terminfo</STRONG>
334 compiled terminal description database
336 <STRONG>/usr/share/tabset/*</STRONG>
337 tab settings for some terminals, in a format appro-
338 priate to be output to the terminal (escape
339 sequences that set margins and tabs); for more
340 information, see the <EM>Tabs</EM> <EM>and</EM> <EM>Initialization</EM>, sec-
341 tion of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
344 </PRE><H2><a name="h2-EXIT-CODES">EXIT CODES</a></H2><PRE>
345 If the <STRONG>-S</STRONG> option is used, <STRONG>tput</STRONG> checks for errors from each
346 line, and if any errors are found, will set the exit code
347 to 4 plus the number of lines with errors. If no errors
348 are found, the exit code is <STRONG>0</STRONG>. No indication of which
349 line failed can be given so exit code <STRONG>1</STRONG> will never appear.
350 Exit codes <STRONG>2</STRONG>, <STRONG>3</STRONG>, and <STRONG>4</STRONG> retain their usual interpretation.
351 If the <STRONG>-S</STRONG> option is not used, the exit code depends on the
352 type of <EM>capname</EM>:
355 a value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE.
357 <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is defined
358 for this terminal <EM>type</EM> (the value of <EM>capname</EM> is
359 returned on standard output); a value of <STRONG>1</STRONG> is
360 set if <EM>capname</EM> is not defined for this terminal
361 <EM>type</EM> (nothing is written to standard output).
364 a value of <STRONG>0</STRONG> is always set, whether or not <EM>cap-</EM>
365 <EM>name</EM> is defined for this terminal <EM>type</EM>. To
366 determine if <EM>capname</EM> is defined for this termi-
367 nal <EM>type</EM>, the user must test the value written
368 to standard output. A value of <STRONG>-1</STRONG> means that
369 <EM>capname</EM> is not defined for this terminal <EM>type</EM>.
371 <EM>other</EM> <STRONG>reset</STRONG> or <STRONG>init</STRONG> may fail to find their respective
372 files. In that case, the exit code is set to 4
373 + <STRONG>errno</STRONG>.
375 Any other exit code indicates an error; see the DIAGNOS-
379 </PRE><H2><a name="h2-DIAGNOSTICS">DIAGNOSTICS</a></H2><PRE>
380 <STRONG>tput</STRONG> prints the following error messages and sets the cor-
381 responding exit codes.
383 exit code error message
384 ---------------------------------------------------------------------
385 <STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in
386 the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g.
387 <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-T2621</STRONG> <STRONG>xmc</STRONG>)
388 <STRONG>1</STRONG> no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> section.
389 <STRONG>2</STRONG> usage error
390 <STRONG>3</STRONG> unknown terminal <EM>type</EM> or no <STRONG>terminfo</STRONG> database
391 <STRONG>4</STRONG> unknown <STRONG>terminfo</STRONG> capability <EM>capname</EM>
392 <STRONG>>4</STRONG> error occurred in -S
393 ---------------------------------------------------------------------
396 </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
397 The <STRONG>tput</STRONG> command was begun by Bill Joy in 1980. The ini-
398 tial version only cleared the screen.
400 AT&T System V provided a different <STRONG>tput</STRONG> command, whose
401 <STRONG>init</STRONG> and <STRONG>reset</STRONG> subcommands (more than half the program)
402 were incorporated from the <STRONG>reset</STRONG> feature of BSD <STRONG>tset</STRONG> writ-
405 Keith Bostic replaced the BSD <STRONG>tput</STRONG> command in 1989 with a
406 new implementation based on the AT&T System V program
407 <STRONG>tput</STRONG>. Like the AT&T program, Bostic's version accepted
408 some parameters named for <EM>terminfo</EM> <EM>capabilities</EM> (<STRONG>clear</STRONG>,
409 <STRONG>init</STRONG>, <STRONG>longname</STRONG> and <STRONG>reset</STRONG>). However (because he had only
410 termcap available), it accepted <EM>termcap</EM> <EM>names</EM> for other
411 capabilities. Also, Bostic's BSD <STRONG>tput</STRONG> did not modify the
412 terminal I/O modes as the earlier BSD <STRONG>tset</STRONG> had done.
414 At the same time, Bostic added a shell script named
415 "clear", which used <STRONG>tput</STRONG> to clear the screen.
417 Both of these appeared in 4.4BSD, becoming the "modern"
418 BSD implementation of <STRONG>tput</STRONG>.
420 This implementation of <STRONG>tput</STRONG> began from a different source
421 than AT&T or BSD: Ross Ridge's <EM>mytinfo</EM> package, published
422 on <EM>comp.sources.unix</EM> in December 1992. Ridge's program
423 made more sophisticated use of the terminal capabilities
424 than the BSD program. Eric Raymond used the <STRONG>tput</STRONG> program
425 (and other parts of <EM>mytinfo</EM>) in ncurses in June 1995.
426 Using the portions dealing with terminal capabilities
427 almost without change, Raymond made improvements to the
428 way the command-line parameters were handled.
431 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
432 This implementation of <STRONG>tput</STRONG> differs from AT&T <STRONG>tput</STRONG> in two
435 <STRONG>o</STRONG> <STRONG>tput</STRONG> <EM>capname</EM> writes to the standard output. That need
436 not be a regular terminal. However, the subcommands
437 which manipulate terminal modes may not use the stan-
440 The AT&T implementation's <STRONG>init</STRONG> and <STRONG>reset</STRONG> commands use
441 the BSD (4.1c) <STRONG>tset</STRONG> source, which manipulates terminal
442 modes. It successively tries standard output, stan-
443 dard error, standard input before falling back to
444 "/dev/tty" and finally just assumes a 1200Bd terminal.
445 When updating terminal modes, it ignores errors.
447 Until changes made after ncurses 6.0, <STRONG>tput</STRONG> did not
448 modify terminal modes. <STRONG>tput</STRONG> now uses a similar
449 scheme, using functions shared with <STRONG>tset</STRONG> (and ulti-
450 mately based on the 4.4BSD <STRONG>tset</STRONG>). If it is not able
451 to open a terminal, e.g., when running in <STRONG>cron</STRONG>, <STRONG>tput</STRONG>
452 will return an error.
454 <STRONG>o</STRONG> AT&T <STRONG>tput</STRONG> guesses the type of its <EM>capname</EM> operands by
455 seeing if all of the characters are numeric, or not.
457 Most implementations which provide support for <EM>capname</EM>
458 operands use the <EM>tparm</EM> function to expand parameters
459 in it. That function expects a mixture of numeric and
460 string parameters, requiring <STRONG>tput</STRONG> to know which type
463 This implementation uses a table to determine the
464 parameter types for the standard <EM>capname</EM> operands, and
465 an internal library function to analyze nonstandard
466 <EM>capname</EM> operands.
468 This implementation (unlike others) can accept both <EM>term-</EM>
469 <EM>cap</EM> and <EM>terminfo</EM> names for the <EM>capname</EM> feature, if <EM>termcap</EM>
470 support is compiled in. However, the predefined <EM>termcap</EM>
471 and <EM>terminfo</EM> names have two ambiguities in this case (and
472 the <EM>terminfo</EM> name is assumed):
474 <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>dl</STRONG> corresponds to the <EM>terminfo</EM> name
475 <STRONG>dl1</STRONG> (delete one line).
476 The <EM>terminfo</EM> name <STRONG>dl</STRONG> corresponds to the <EM>termcap</EM> name
477 <STRONG>DL</STRONG> (delete a given number of lines).
479 <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>ed</STRONG> corresponds to the <EM>terminfo</EM> name
480 <STRONG>rmdc</STRONG> (end delete mode).
481 The <EM>terminfo</EM> name <STRONG>ed</STRONG> corresponds to the <EM>termcap</EM> name
482 <STRONG>cd</STRONG> (clear to end of screen).
484 The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitu-
485 tion features used in the <STRONG>cup</STRONG> example, were not supported
486 in BSD curses before 4.3reno (1989) or in AT&T/USL curses
489 IEEE Std 1003.1/The Open Group Base Specifications Issue
490 7 (POSIX.1-2008) documents only the operands for <STRONG>clear</STRONG>,
491 <STRONG>init</STRONG> and <STRONG>reset</STRONG>. There are a few interesting observations
492 to make regarding that:
494 <STRONG>o</STRONG> In this implementation, <STRONG>clear</STRONG> is part of the <EM>capname</EM>
495 support. The others (<STRONG>init</STRONG> and <STRONG>longname</STRONG>) do not corre-
496 spond to terminal capabilities.
498 <STRONG>o</STRONG> Other implementations of <STRONG>tput</STRONG> on SVr4-based systems
499 such as Solaris, IRIX64 and HPUX as well as others
500 such as AIX and Tru64 provide support for <EM>capname</EM> op-
503 <STRONG>o</STRONG> A few platforms such as FreeBSD recognize termcap
504 names rather than terminfo capability names in their
505 respective <STRONG>tput</STRONG> commands. Since 2010, NetBSD's <STRONG>tput</STRONG>
506 uses terminfo names. Before that, it (like FreeBSD)
507 recognized termcap names.
509 Because (apparently) <EM>all</EM> of the certified Unix systems
510 support the full set of capability names, the reasoning
511 for documenting only a few may not be apparent.
513 <STRONG>o</STRONG> X/Open Curses Issue 7 documents <STRONG>tput</STRONG> differently, with
514 <EM>capname</EM> and the other features used in this implemen-
517 <STRONG>o</STRONG> That is, there are two standards for <STRONG>tput</STRONG>: POSIX (a
518 subset) and X/Open Curses (the full implementation).
519 POSIX documents a subset to avoid the complication of
520 including X/Open Curses and the terminal capabilities
523 <STRONG>o</STRONG> While it is certainly possible to write a <STRONG>tput</STRONG> program
524 without using curses, none of the systems which have a
525 curses implementation provide a <STRONG>tput</STRONG> utility which
526 does not provide the <EM>capname</EM> feature.
529 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
530 <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>,
531 <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>.
533 This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20170218).
537 <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
541 <li><a href="#h2-NAME">NAME</a></li>
542 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
543 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
545 <li><a href="#h3-Options">Options</a></li>
546 <li><a href="#h3-Commands">Commands</a></li>
547 <li><a href="#h3-Aliases">Aliases</a></li>
550 <li><a href="#h2-EXAMPLES">EXAMPLES</a></li>
551 <li><a href="#h2-FILES">FILES</a></li>
552 <li><a href="#h2-EXIT-CODES">EXIT CODES</a></li>
553 <li><a href="#h2-DIAGNOSTICS">DIAGNOSTICS</a></li>
554 <li><a href="#h2-HISTORY">HISTORY</a></li>
555 <li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
556 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>