| 1 | '\" t | 
|---|
| 2 | .\"*************************************************************************** | 
|---|
| 3 | .\" Copyright (c) 1998-2004,2005 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 | .\"                                                                          * | 
|---|
| 16 | .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  * | 
|---|
| 17 | .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               * | 
|---|
| 18 | .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   * | 
|---|
| 19 | .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   * | 
|---|
| 20 | .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    * | 
|---|
| 21 | .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    * | 
|---|
| 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.22 2005/01/08 17:44:26 tom Exp $ | 
|---|
| 31 | .TH tput 1 "" | 
|---|
| 32 | .ds d @TERMINFO@ | 
|---|
| 33 | .ds n 1 | 
|---|
| 34 | .SH NAME | 
|---|
| 35 | \fBtput\fR, \fBreset\fR - initialize a terminal or query terminfo database | 
|---|
| 36 | .SH SYNOPSIS | 
|---|
| 37 | \fBtput\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ] | 
|---|
| 38 | .br | 
|---|
| 39 | \fBtput\fR [\fB-T\fR\fItype\fR] \fBinit\fR | 
|---|
| 40 | .br | 
|---|
| 41 | \fBtput\fR [\fB-T\fR\fItype\fR] \fBreset\fR | 
|---|
| 42 | .br | 
|---|
| 43 | \fBtput\fR [\fB-T\fR\fItype\fR] \fBlongname\fR | 
|---|
| 44 | .br | 
|---|
| 45 | \fBtput -S\fR  \fB<<\fR | 
|---|
| 46 | .br | 
|---|
| 47 | \fBtput -V\fR | 
|---|
| 48 | .br | 
|---|
| 49 | .SH DESCRIPTION | 
|---|
| 50 | The \fBtput\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 | \fBtput\fR writes the string to the standard output. | 
|---|
| 59 | No trailing newline is supplied. | 
|---|
| 60 | .TP | 
|---|
| 61 | integer | 
|---|
| 62 | \fBtput\fR writes the decimal value to the standard output, | 
|---|
| 63 | with a trailing newline. | 
|---|
| 64 | .TP | 
|---|
| 65 | boolean | 
|---|
| 66 | \fBtput\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(\*n). | 
|---|
| 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 | \fBtput\fR uses a table to decide which to pass as strings. | 
|---|
| 98 | Normally \fBtput\fR uses \fBtparm\fR (3X) to perform the substitution. | 
|---|
| 99 | If no parameters are given for the capability, | 
|---|
| 100 | \fBtput\fR writes the string without performing the substitution. | 
|---|
| 101 | .TP | 
|---|
| 102 | \fB-S\fR | 
|---|
| 103 | allows more than one capability per invocation of \fBtput\fR.  The | 
|---|
| 104 | capabilities must be passed to \fBtput\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, \fBtput\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: (1) if present, the terminal's initialization strings will be | 
|---|
| 122 | output (\fBis1\fR, \fBis2\fR, \fBis3\fR, \fBif\fR, \fBiprog\fR), (2) | 
|---|
| 123 | any delays (e.g., newline) specified in the entry will be set in the | 
|---|
| 124 | tty driver, (3) tabs expansion will be turned on or off according to | 
|---|
| 125 | the specification in the entry, and (4) if tabs are not expanded, | 
|---|
| 126 | standard tabs will be set (every 8 spaces).  If an entry does not | 
|---|
| 127 | contain the information needed for any of the four above activities, | 
|---|
| 128 | that activity will silently be skipped. | 
|---|
| 129 | .TP | 
|---|
| 130 | \fBreset\fR | 
|---|
| 131 | Instead of putting out initialization strings, the terminal's | 
|---|
| 132 | reset strings will be output if present (\fBrs1\fR, \fBrs2\fR, \fBrs3\fR, \fBrf\fR). | 
|---|
| 133 | If the reset strings are not present, but initialization | 
|---|
| 134 | strings are, the initialization strings will be output. | 
|---|
| 135 | Otherwise, \fBreset\fR acts identically to \fBinit\fR. | 
|---|
| 136 | .TP | 
|---|
| 137 | \fBlongname\fR | 
|---|
| 138 | If the \fBterminfo\fR database is present and an entry for the | 
|---|
| 139 | user's terminal exists (see \fB-T\fR\fItype\fR above), then the long name | 
|---|
| 140 | of the terminal will be put out.  The long name is the last | 
|---|
| 141 | name in the first line of the terminal's description in the | 
|---|
| 142 | \fBterminfo\fR database [see \fBterm\fR(5)]. | 
|---|
| 143 | .PP | 
|---|
| 144 | If \fBtput\fR is invoked by a link named \fBreset\fR, this has the | 
|---|
| 145 | same effect as \fBtput reset\fR. | 
|---|
| 146 | See \fBtset\fR for comparison, which has similar behavior. | 
|---|
| 147 | .SH EXAMPLES | 
|---|
| 148 | .TP 5 | 
|---|
| 149 | \fBtput init\fR | 
|---|
| 150 | Initialize the terminal according to the type of | 
|---|
| 151 | terminal in the environmental variable \fBTERM\fR.  This | 
|---|
| 152 | command should be included in everyone's .profile after | 
|---|
| 153 | the environmental variable \fBTERM\fR has been exported, as | 
|---|
| 154 | illustrated on the \fBprofile\fR(5) manual page. | 
|---|
| 155 | .TP 5 | 
|---|
| 156 | \fBtput -T5620 reset\fR | 
|---|
| 157 | Reset an AT&T 5620 terminal, overriding the type of | 
|---|
| 158 | terminal in the environmental variable \fBTERM\fR. | 
|---|
| 159 | .TP 5 | 
|---|
| 160 | \fBtput cup 0 0\fR | 
|---|
| 161 | Send the sequence to move the cursor to row \fB0\fR, column \fB0\fR | 
|---|
| 162 | (the upper left corner of the screen, usually known as the "home" | 
|---|
| 163 | cursor position). | 
|---|
| 164 | .TP 5 | 
|---|
| 165 | \fBtput clear\fR | 
|---|
| 166 | Echo the clear-screen sequence for the current terminal. | 
|---|
| 167 | .TP 5 | 
|---|
| 168 | \fBtput cols\fR | 
|---|
| 169 | Print the number of columns for the current terminal. | 
|---|
| 170 | .TP 5 | 
|---|
| 171 | \fBtput -T450 cols\fR | 
|---|
| 172 | Print the number of columns for the 450 terminal. | 
|---|
| 173 | .TP 5 | 
|---|
| 174 | \fBbold=`tput smso` offbold=`tput rmso`\fR | 
|---|
| 175 | Set the shell variables \fBbold\fR, to begin stand-out mode | 
|---|
| 176 | sequence, and \fBoffbold\fR, to end standout mode sequence, | 
|---|
| 177 | for the current terminal.  This might be followed by a | 
|---|
| 178 | prompt: \fBecho "${bold}Please type in your name: ${offbold}\\c"\fR | 
|---|
| 179 | .TP 5 | 
|---|
| 180 | \fBtput hc\fR | 
|---|
| 181 | Set exit code to indicate if the current terminal is a hard copy terminal. | 
|---|
| 182 | .TP 5 | 
|---|
| 183 | \fBtput cup 23 4\fR | 
|---|
| 184 | Send the sequence to move the cursor to row 23, column 4. | 
|---|
| 185 | .TP 5 | 
|---|
| 186 | \fBtput cup\fR | 
|---|
| 187 | Send the terminfo string for cursor-movement, with no parameters substituted. | 
|---|
| 188 | .TP 5 | 
|---|
| 189 | \fBtput longname\fR | 
|---|
| 190 | Print the long name from the \fBterminfo\fR database for the | 
|---|
| 191 | type of terminal specified in the environmental | 
|---|
| 192 | variable \fBTERM\fR. | 
|---|
| 193 | .PP | 
|---|
| 194 | .RS 5 | 
|---|
| 195 | \fBtput -S <<!\fR | 
|---|
| 196 | .br | 
|---|
| 197 | \fB> clear\fR | 
|---|
| 198 | .br | 
|---|
| 199 | \fB> cup 10 10\fR | 
|---|
| 200 | .br | 
|---|
| 201 | \fB> bold\fR | 
|---|
| 202 | .br | 
|---|
| 203 | \fB> !\fR | 
|---|
| 204 | .RE | 
|---|
| 205 | .TP 5 | 
|---|
| 206 | \& | 
|---|
| 207 | This example shows \fBtput\fR processing several capabilities in one invocation. | 
|---|
| 208 | It clears the screen, | 
|---|
| 209 | moves the cursor to position 10, 10 | 
|---|
| 210 | and turns on bold (extra bright) mode. | 
|---|
| 211 | The list is terminated by an exclamation mark (\fB!\fR) on a line by itself. | 
|---|
| 212 | .SH FILES | 
|---|
| 213 | .TP | 
|---|
| 214 | \fB\*d\fR | 
|---|
| 215 | compiled terminal description database | 
|---|
| 216 | .TP | 
|---|
| 217 | \fB@DATADIR@/tabset/*\fR | 
|---|
| 218 | tab settings for some terminals, in a format | 
|---|
| 219 | appropriate to be output to the terminal (escape | 
|---|
| 220 | sequences that set margins and tabs); for more | 
|---|
| 221 | information, see the "Tabs and Initialization" | 
|---|
| 222 | section of \fBterminfo\fR(5) | 
|---|
| 223 | .SH EXIT CODES | 
|---|
| 224 | If the \fB-S\fR option is used, | 
|---|
| 225 | \fBtput\fR checks for errors from each line, | 
|---|
| 226 | and if any errors are found, will set the exit code to 4 plus the | 
|---|
| 227 | number of lines with errors. | 
|---|
| 228 | If no errors are found, the exit code is \fB0\fR. | 
|---|
| 229 | No indication of which line failed can be given so | 
|---|
| 230 | exit code \fB1\fR will never appear.  Exit codes \fB2\fR, \fB3\fR, and | 
|---|
| 231 | \fB4\fR retain their usual interpretation. | 
|---|
| 232 | If the \fB-S\fR option is not used, | 
|---|
| 233 | the exit code depends on the type of \fIcapname\fR: | 
|---|
| 234 | .RS 5 | 
|---|
| 235 | .TP | 
|---|
| 236 | .I boolean | 
|---|
| 237 | a value of \fB0\fR is set for TRUE and \fB1\fR for FALSE. | 
|---|
| 238 | .TP | 
|---|
| 239 | .I string | 
|---|
| 240 | a value of \fB0\fR is set if the | 
|---|
| 241 | \fIcapname\fR is defined for this terminal \fItype\fR (the value of | 
|---|
| 242 | \fIcapname\fR is returned on standard output); | 
|---|
| 243 | a value of \fB1\fR is set if \fIcapname\fR | 
|---|
| 244 | is not defined for this terminal \fItype\fR | 
|---|
| 245 | (nothing is written to standard output). | 
|---|
| 246 | .TP | 
|---|
| 247 | .I integer | 
|---|
| 248 | a value of \fB0\fR is always set, | 
|---|
| 249 | whether or not \fIcapname\fR is defined for this terminal \fItype\fR. | 
|---|
| 250 | To determine if \fIcapname\fR is defined for this terminal \fItype\fR, | 
|---|
| 251 | the user must test the value written to standard output. | 
|---|
| 252 | A value of \fB-1\fR | 
|---|
| 253 | means that \fIcapname\fR is not defined for this terminal \fItype\fR. | 
|---|
| 254 | .TP | 
|---|
| 255 | .I other | 
|---|
| 256 | \fBreset\fR or \fBinit\fR may fail to find their respective files. | 
|---|
| 257 | In that case, the exit code is set to 4 + \fBerrno\fR. | 
|---|
| 258 | .RE | 
|---|
| 259 | .PP | 
|---|
| 260 | Any other exit code indicates an error; see the DIAGNOSTICS section. | 
|---|
| 261 | .SH DIAGNOSTICS | 
|---|
| 262 | \fBtput\fR prints the following error messages and sets the corresponding exit | 
|---|
| 263 | codes. | 
|---|
| 264 | .PP | 
|---|
| 265 | .ne 15 | 
|---|
| 266 | .TS | 
|---|
| 267 | l l. | 
|---|
| 268 | exit code       error message | 
|---|
| 269 | = | 
|---|
| 270 | \fB0\fR T{ | 
|---|
| 271 | (\fIcapname\fR is a numeric variable that is not specified in the | 
|---|
| 272 | \fBterminfo\fR(\*n) database for this terminal type, e.g. | 
|---|
| 273 | \fBtput -T450 lines\fR and \fBtput -T2621 xmc\fR) | 
|---|
| 274 | T} | 
|---|
| 275 | \fB1\fR no error message is printed, see the \fBEXIT CODES\fR section. | 
|---|
| 276 | \fB2\fR usage error | 
|---|
| 277 | \fB3\fR unknown terminal \fItype\fR or no \fBterminfo\fR database | 
|---|
| 278 | \fB4\fR unknown \fBterminfo\fR capability \fIcapname\fR | 
|---|
| 279 | \fB>4\fR        error occurred in -S | 
|---|
| 280 | = | 
|---|
| 281 | .TE | 
|---|
| 282 | .SH PORTABILITY | 
|---|
| 283 | The \fBlongname\fR and \fB-S\fR options, and the parameter-substitution | 
|---|
| 284 | features used in the \fBcup\fR example, are not supported in BSD curses or in | 
|---|
| 285 | AT&T/USL curses before SVr4. | 
|---|
| 286 | .SH SEE ALSO | 
|---|
| 287 | \fB@CLEAR@\fR(1), | 
|---|
| 288 | \fBstty\fR(1), | 
|---|
| 289 | \fBtabs\fR(\*n), | 
|---|
| 290 | \fBterminfo\fR(5). | 
|---|
| 291 | .\"# | 
|---|
| 292 | .\"# The following sets edit modes for GNU EMACS | 
|---|
| 293 | .\"# Local Variables: | 
|---|
| 294 | .\"# mode:nroff | 
|---|
| 295 | .\"# fill-column:79 | 
|---|
| 296 | .\"# End: | 
|---|