Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 1 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> |
| 2 | <!-- |
| 3 | * t |
| 4 | **************************************************************************** |
| 5 | * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. * |
| 6 | * * |
| 7 | * Permission is hereby granted, free of charge, to any person obtaining a * |
| 8 | * copy of this software and associated documentation files (the * |
| 9 | * "Software"), to deal in the Software without restriction, including * |
| 10 | * without limitation the rights to use, copy, modify, merge, publish, * |
| 11 | * distribute, distribute with modifications, sublicense, and/or sell * |
| 12 | * copies of the Software, and to permit persons to whom the Software is * |
| 13 | * furnished to do so, subject to the following conditions: * |
| 14 | * * |
| 15 | * The above copyright notice and this permission notice shall be included * |
| 16 | * in all copies or substantial portions of the Software. * |
| 17 | * * |
| 18 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * |
| 19 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * |
| 20 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * |
| 21 | * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * |
| 22 | * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * |
| 23 | * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * |
| 24 | * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * |
| 25 | * * |
| 26 | * Except as contained in this notice, the name(s) of the above copyright * |
| 27 | * holders shall not be used in advertising or otherwise to promote the * |
| 28 | * sale, use or other dealings in this Software without prior written * |
| 29 | * authorization. * |
| 30 | **************************************************************************** |
| 31 | * @Id: tput.1,v 1.27 2006/12/24 18:11:31 tom Exp @ |
| 32 | --> |
| 33 | <HTML> |
| 34 | <HEAD> |
| 35 | <TITLE>tput 1</TITLE> |
| 36 | <link rev=made href="mailto:bug-ncurses@gnu.org"> |
| 37 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
| 38 | </HEAD> |
| 39 | <BODY> |
| 40 | <H1>tput 1</H1> |
| 41 | <HR> |
| 42 | <PRE> |
| 43 | <!-- Manpage converted by man2html 3.0.1 --> |
| 44 | <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> |
| 45 | |
| 46 | |
| 47 | |
| 48 | |
| 49 | </PRE> |
| 50 | <H2>NAME</H2><PRE> |
| 51 | <STRONG>tput</STRONG>, <STRONG>reset</STRONG> - initialize a terminal or query terminfo |
| 52 | database |
| 53 | |
| 54 | |
| 55 | </PRE> |
| 56 | <H2>SYNOPSIS</H2><PRE> |
| 57 | <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <EM>capname</EM> [<EM>parms</EM> ... ] |
| 58 | <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <STRONG>init</STRONG> |
| 59 | <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <STRONG>reset</STRONG> |
| 60 | <STRONG>tput</STRONG> [<STRONG>-T</STRONG><EM>type</EM>] <STRONG>longname</STRONG> |
| 61 | <STRONG>tput</STRONG> <STRONG>-S</STRONG> <STRONG><<</STRONG> |
| 62 | <STRONG>tput</STRONG> <STRONG>-V</STRONG> |
| 63 | |
| 64 | |
| 65 | </PRE> |
| 66 | <H2>DESCRIPTION</H2><PRE> |
| 67 | The <STRONG>tput</STRONG> utility uses the <STRONG>terminfo</STRONG> database to make the |
| 68 | values of terminal-dependent capabilities and information |
| 69 | available to the shell (see <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>), to initialize or reset |
| 70 | the terminal, or return the long name of the requested |
| 71 | terminal type. The result depends upon the capability's |
| 72 | type: |
| 73 | |
| 74 | string |
| 75 | <STRONG>tput</STRONG> writes the string to the standard output. |
| 76 | No trailing newline is supplied. |
| 77 | |
| 78 | integer |
| 79 | <STRONG>tput</STRONG> writes the decimal value to the standard |
| 80 | output, with a trailing newline. |
| 81 | |
| 82 | boolean |
| 83 | <STRONG>tput</STRONG> simply sets the exit code (<STRONG>0</STRONG> for TRUE if |
| 84 | the terminal has the capability, <STRONG>1</STRONG> for FALSE |
| 85 | if it does not), and writes nothing to the |
| 86 | standard output. |
| 87 | |
| 88 | Before using a value returned on the standard output, the |
| 89 | application should test the exit code (e.g., <STRONG>$?</STRONG>, see |
| 90 | <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>) to be sure it is <STRONG>0</STRONG>. (See the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> and <STRONG>DIAG-</STRONG> |
| 91 | <STRONG>NOSTICS</STRONG> sections.) For a complete list of capabilities |
| 92 | and the <EM>capname</EM> associated with each, see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. |
| 93 | |
| 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> |
| 98 | will be ignored,and the operating system will not |
| 99 | be queried for the actual screen size. |
| 100 | |
| 101 | <EM>capname</EM> |
| 102 | indicates the capability from the <STRONG>terminfo</STRONG> |
| 103 | database. When <STRONG>termcap</STRONG> support is compiled in, the |
| 104 | <STRONG>termcap</STRONG> name for the capability is also accepted. |
| 105 | |
| 106 | <EM>parms</EM> If the capability is a string that takes parame- |
| 107 | ters, the arguments <EM>parms</EM> will be instantiated into |
| 108 | the string. |
| 109 | |
| 110 | Most parameters are numbers. Only a few terminfo |
| 111 | capabilities require string parameters; <STRONG>tput</STRONG> uses a |
| 112 | table to decide which to pass as strings. Normally |
| 113 | <STRONG>tput</STRONG> uses <STRONG>tparm</STRONG> (3x) to perform the substitution. |
| 114 | If no parameters are given for the capability, <STRONG>tput</STRONG> |
| 115 | writes the string without performing the |
| 116 | substitution. |
| 117 | |
| 118 | <STRONG>-S</STRONG> allows more than one capability per invocation of |
| 119 | <STRONG>tput</STRONG>. The capabilities must be passed to <STRONG>tput</STRONG> from |
| 120 | the standard input instead of from the command line |
| 121 | (see example). Only one <EM>capname</EM> is allowed per |
| 122 | line. The <STRONG>-S</STRONG> option changes the meaning of the <STRONG>0</STRONG> |
| 123 | and <STRONG>1</STRONG> boolean and string exit codes (see the EXIT |
| 124 | CODES section). |
| 125 | |
| 126 | Again, <STRONG>tput</STRONG> uses a table and the presence of param- |
| 127 | eters in its input to decide whether to use <STRONG>tparm</STRONG> |
| 128 | (3x), and how to interpret the parameters. |
| 129 | |
| 130 | <STRONG>-V</STRONG> reports the version of ncurses which was used in |
| 131 | this program, and exits. |
| 132 | |
| 133 | <STRONG>init</STRONG> If the <STRONG>terminfo</STRONG> database is present and an entry |
| 134 | for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM>, above), |
| 135 | the following will occur: |
| 136 | |
| 137 | (1) if present, the terminal's initialization |
| 138 | strings will be output as detailed in the |
| 139 | <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> section on <EM>Tabs</EM> <EM>and</EM> <EM>Initializa-</EM> |
| 140 | <EM>tion</EM>, |
| 141 | |
| 142 | (2) any delays (e.g., newline) specified in the |
| 143 | entry will be set in the tty driver, |
| 144 | |
| 145 | (3) tabs expansion will be turned on or off |
| 146 | according to the specification in the entry, |
| 147 | and |
| 148 | |
| 149 | (4) if tabs are not expanded, standard tabs will |
| 150 | be set (every 8 spaces). |
| 151 | |
| 152 | If an entry does not contain the information needed |
| 153 | for any of the four above activities, that activity |
| 154 | will silently be skipped. |
| 155 | |
| 156 | <STRONG>reset</STRONG> Instead of putting out initialization strings, the |
| 157 | terminal's reset strings will be output if present |
| 158 | (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the reset strings are not |
| 159 | present, but initialization strings are, the ini- |
| 160 | tialization strings will be output. Otherwise, |
| 161 | <STRONG>reset</STRONG> acts identically to <STRONG>init</STRONG>. |
| 162 | |
| 163 | <STRONG>longname</STRONG> |
| 164 | If the <STRONG>terminfo</STRONG> database is present and an entry |
| 165 | for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM> above), |
| 166 | then the long name of the terminal will be put out. |
| 167 | The long name is the last name in the first line of |
| 168 | the terminal's description in the <STRONG>terminfo</STRONG> database |
| 169 | [see <STRONG><A HREF="term.5.html">term(5)</A></STRONG>]. |
| 170 | |
| 171 | If <STRONG>tput</STRONG> is invoked by a link named <STRONG>reset</STRONG>, this has the |
| 172 | same effect as <STRONG>tput</STRONG> <STRONG>reset</STRONG>. See <STRONG>tset</STRONG> for comparison, which |
| 173 | has similar behavior. |
| 174 | |
| 175 | |
| 176 | </PRE> |
| 177 | <H2>EXAMPLES</H2><PRE> |
| 178 | <STRONG>tput</STRONG> <STRONG>init</STRONG> |
| 179 | Initialize the terminal according to the type of ter- |
| 180 | minal in the environmental variable <STRONG>TERM</STRONG>. This com- |
| 181 | mand should be included in everyone's .profile after |
| 182 | the environmental variable <STRONG>TERM</STRONG> has been exported, as |
| 183 | illustrated on the <STRONG><A HREF="profile.5.html">profile(5)</A></STRONG> manual page. |
| 184 | |
| 185 | <STRONG>tput</STRONG> <STRONG>-T5620</STRONG> <STRONG>reset</STRONG> |
| 186 | Reset an AT&T 5620 terminal, overriding the type of |
| 187 | terminal in the environmental variable <STRONG>TERM</STRONG>. |
| 188 | |
| 189 | <STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>0</STRONG> <STRONG>0</STRONG> |
| 190 | Send the sequence to move the cursor to row <STRONG>0</STRONG>, column |
| 191 | <STRONG>0</STRONG> (the upper left corner of the screen, usually known |
| 192 | as the "home" cursor position). |
| 193 | |
| 194 | <STRONG>tput</STRONG> <STRONG>clear</STRONG> |
| 195 | Echo the clear-screen sequence for the current termi- |
| 196 | nal. |
| 197 | |
| 198 | <STRONG>tput</STRONG> <STRONG>cols</STRONG> |
| 199 | Print the number of columns for the current terminal. |
| 200 | |
| 201 | <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>cols</STRONG> |
| 202 | Print the number of columns for the 450 terminal. |
| 203 | |
| 204 | <STRONG>bold=`tput</STRONG> <STRONG>smso`</STRONG> <STRONG>offbold=`tput</STRONG> <STRONG>rmso`</STRONG> |
| 205 | Set the shell variables <STRONG>bold</STRONG>, to begin stand-out mode |
| 206 | sequence, and <STRONG>offbold</STRONG>, to end standout mode sequence, |
| 207 | for the current terminal. This might be followed by |
| 208 | a prompt: <STRONG>echo</STRONG> <STRONG>"${bold}Please</STRONG> <STRONG>type</STRONG> <STRONG>in</STRONG> <STRONG>your</STRONG> <STRONG>name:</STRONG> |
| 209 | <STRONG>${offbold}\c"</STRONG> |
| 210 | |
| 211 | <STRONG>tput</STRONG> <STRONG>hc</STRONG> |
| 212 | Set exit code to indicate if the current terminal is |
| 213 | a hard copy terminal. |
| 214 | |
| 215 | <STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>23</STRONG> <STRONG>4</STRONG> |
| 216 | Send the sequence to move the cursor to row 23, col- |
| 217 | umn 4. |
| 218 | |
| 219 | <STRONG>tput</STRONG> <STRONG>cup</STRONG> |
| 220 | Send the terminfo string for cursor-movement, with no |
| 221 | parameters substituted. |
| 222 | |
| 223 | <STRONG>tput</STRONG> <STRONG>longname</STRONG> |
| 224 | Print the long name from the <STRONG>terminfo</STRONG> database for |
| 225 | the type of terminal specified in the environmental |
| 226 | variable <STRONG>TERM</STRONG>. |
| 227 | |
| 228 | <STRONG>tput</STRONG> <STRONG>-S</STRONG> <STRONG><<!</STRONG> |
| 229 | <STRONG>></STRONG> <STRONG>clear</STRONG> |
| 230 | <STRONG>></STRONG> <STRONG>cup</STRONG> <STRONG>10</STRONG> <STRONG>10</STRONG> |
| 231 | <STRONG>></STRONG> <STRONG>bold</STRONG> |
| 232 | <STRONG>></STRONG> <STRONG>!</STRONG> |
| 233 | |
| 234 | This example shows <STRONG>tput</STRONG> processing several capabili- |
| 235 | ties in one invocation. It clears the screen, moves |
| 236 | the cursor to position 10, 10 and turns on bold |
| 237 | (extra bright) mode. The list is terminated by an |
| 238 | exclamation mark (<STRONG>!</STRONG>) on a line by itself. |
| 239 | |
| 240 | |
| 241 | </PRE> |
| 242 | <H2>FILES</H2><PRE> |
| 243 | <STRONG>/usr/share/terminfo</STRONG> |
| 244 | compiled terminal description database |
| 245 | |
| 246 | <STRONG>/usr/share/tabset/*</STRONG> |
| 247 | tab settings for some terminals, in a format appro- |
| 248 | priate to be output to the terminal (escape |
| 249 | sequences that set margins and tabs); for more |
| 250 | information, see the "Tabs and Initialization" sec- |
| 251 | tion of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> |
| 252 | |
| 253 | |
| 254 | </PRE> |
| 255 | <H2>EXIT CODES</H2><PRE> |
| 256 | If the <STRONG>-S</STRONG> option is used, <STRONG>tput</STRONG> checks for errors from each |
| 257 | line, and if any errors are found, will set the exit code |
| 258 | to 4 plus the number of lines with errors. If no errors |
| 259 | are found, the exit code is <STRONG>0</STRONG>. No indication of which |
| 260 | line failed can be given so exit code <STRONG>1</STRONG> will never appear. |
| 261 | Exit codes <STRONG>2</STRONG>, <STRONG>3</STRONG>, and <STRONG>4</STRONG> retain their usual interpretation. |
| 262 | If the <STRONG>-S</STRONG> option is not used, the exit code depends on the |
| 263 | type of <EM>capname</EM>: |
| 264 | |
| 265 | <EM>boolean</EM> |
| 266 | a value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE. |
| 267 | |
| 268 | <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is defined |
| 269 | for this terminal <EM>type</EM> (the value of <EM>capname</EM> |
| 270 | is returned on standard output); a value of <STRONG>1</STRONG> |
| 271 | is set if <EM>capname</EM> is not defined for this ter- |
| 272 | minal <EM>type</EM> (nothing is written to standard |
| 273 | output). |
| 274 | |
| 275 | <EM>integer</EM> |
| 276 | a value of <STRONG>0</STRONG> is always set, whether or not |
| 277 | <EM>capname</EM> is defined for this terminal <EM>type</EM>. To |
| 278 | determine if <EM>capname</EM> is defined for this ter- |
| 279 | minal <EM>type</EM>, the user must test the value writ- |
| 280 | ten to standard output. A value of <STRONG>-1</STRONG> means |
| 281 | that <EM>capname</EM> is not defined for this terminal |
| 282 | <EM>type</EM>. |
| 283 | |
| 284 | <EM>other</EM> <STRONG>reset</STRONG> or <STRONG>init</STRONG> may fail to find their respec- |
| 285 | tive files. In that case, the exit code is |
| 286 | set to 4 + <STRONG>errno</STRONG>. |
| 287 | |
| 288 | Any other exit code indicates an error; see the DIAGNOS- |
| 289 | TICS section. |
| 290 | |
| 291 | |
| 292 | </PRE> |
| 293 | <H2>DIAGNOSTICS</H2><PRE> |
| 294 | <STRONG>tput</STRONG> prints the following error messages and sets the cor- |
| 295 | responding exit codes. |
| 296 | |
| 297 | |
| 298 | exit code error message |
| 299 | --------------------------------------------------------------------- |
| 300 | <STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in |
| 301 | the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g. |
| 302 | <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-T2621</STRONG> <STRONG>xmc</STRONG>) |
| 303 | <STRONG>1</STRONG> no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> section. |
| 304 | <STRONG>2</STRONG> usage error |
| 305 | <STRONG>3</STRONG> unknown terminal <EM>type</EM> or no <STRONG>terminfo</STRONG> database |
| 306 | <STRONG>4</STRONG> unknown <STRONG>terminfo</STRONG> capability <EM>capname</EM> |
| 307 | <STRONG>>4</STRONG> error occurred in -S |
| 308 | --------------------------------------------------------------------- |
| 309 | |
| 310 | |
| 311 | </PRE> |
| 312 | <H2>PORTABILITY</H2><PRE> |
| 313 | The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitu- |
| 314 | tion features used in the <STRONG>cup</STRONG> example, are not supported |
| 315 | in BSD curses or in AT&T/USL curses before SVr4. |
| 316 | |
| 317 | X/Open documents only the operands for <STRONG>clear</STRONG>, <STRONG>init</STRONG> and |
| 318 | <STRONG>reset</STRONG>. In this implementation, <STRONG>clear</STRONG> is part of the <EM>cap-</EM> |
| 319 | <EM>name</EM> support. Other implementations of <STRONG>tput</STRONG> on SVr4-based |
| 320 | systems such as Solaris, IRIX64 and HPUX as well as others |
| 321 | such as AIX and Tru64 provide support for <EM>capname</EM> |
| 322 | operands. A few platforms such as FreeBSD and NetBSD rec- |
| 323 | ognize termcap names rather than terminfo capability names |
| 324 | in their respective <STRONG>tput</STRONG> commands. |
| 325 | |
| 326 | |
| 327 | </PRE> |
| 328 | <H2>SEE ALSO</H2><PRE> |
| 329 | <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. |
| 330 | |
| 331 | This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20081011). |
| 332 | |
| 333 | |
| 334 | |
| 335 | <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> |
| 336 | </PRE> |
| 337 | <HR> |
| 338 | <ADDRESS> |
| 339 | Man(1) output converted with |
| 340 | <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a> |
| 341 | </ADDRESS> |
| 342 | </BODY> |
| 343 | </HTML> |