terminfo.5.html 133 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375
  1. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
  2. <!--
  3. * t
  4. * DO NOT EDIT THIS FILE BY HAND!
  5. * It is generated from terminfo.head, Caps, and terminfo.tail.
  6. * Note: this must be run through tbl before nroff.
  7. * The magic cookie on the first line triggers this under some man programs.
  8. ****************************************************************************
  9. * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. *
  10. * *
  11. * Permission is hereby granted, free of charge, to any person obtaining a *
  12. * copy of this software and associated documentation files (the *
  13. * "Software"), to deal in the Software without restriction, including *
  14. * without limitation the rights to use, copy, modify, merge, publish, *
  15. * distribute, distribute with modifications, sublicense, and/or sell *
  16. * copies of the Software, and to permit persons to whom the Software is *
  17. * furnished to do so, subject to the following conditions: *
  18. * *
  19. * The above copyright notice and this permission notice shall be included *
  20. * in all copies or substantial portions of the Software. *
  21. * *
  22. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
  23. * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
  24. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
  25. * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
  26. * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
  27. * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
  28. * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
  29. * *
  30. * Except as contained in this notice, the name(s) of the above copyright *
  31. * holders shall not be used in advertising or otherwise to promote the *
  32. * sale, use or other dealings in this Software without prior written *
  33. * authorization. *
  34. ****************************************************************************
  35. * @Id: terminfo.head,v 1.16 2007/03/04 00:09:46 tom Exp @
  36. * Head of terminfo man page ends here
  37. * @Id: terminfo.tail,v 1.49 2008/02/16 20:57:43 tom Exp @
  38. * Beginning of terminfo.tail file
  39. * This file is part of ncurses.
  40. * See "terminfo.head" for copyright.
  41. *.in -2
  42. *.in +2
  43. *.in -2
  44. *.in +2
  45. *.TH
  46. -->
  47. <HTML>
  48. <HEAD>
  49. <TITLE>terminfo 5 File Formats</TITLE>
  50. <link rev=made href="mailto:bug-ncurses@gnu.org">
  51. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  52. </HEAD>
  53. <BODY>
  54. <H1>terminfo 5 File Formats</H1>
  55. <HR>
  56. <PRE>
  57. <!-- Manpage converted by man2html 3.0.1 -->
  58. <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> File Formats <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
  59. </PRE>
  60. <H2>NAME</H2><PRE>
  61. terminfo - terminal capability data base
  62. </PRE>
  63. <H2>SYNOPSIS</H2><PRE>
  64. /usr/share/terminfo/*/*
  65. </PRE>
  66. <H2>DESCRIPTION</H2><PRE>
  67. <EM>Terminfo</EM> is a data base describing terminals, used by
  68. screen-oriented programs such as <STRONG><A HREF="nvi.1.html">nvi(1)</A></STRONG>, <STRONG><A HREF="rogue.1.html">rogue(1)</A></STRONG> and
  69. libraries such as <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>. <EM>Terminfo</EM> describes termi-
  70. nals by giving a set of capabilities which they have, by
  71. specifying how to perform screen operations, and by speci-
  72. fying padding requirements and initialization sequences.
  73. This describes <STRONG>ncurses</STRONG> version 5.6 (patch 20081011).
  74. Entries in <EM>terminfo</EM> consist of a sequence of `,' separated
  75. fields (embedded commas may be escaped with a backslash or
  76. notated as \054). White space after the `,' separator is
  77. ignored. The first entry for each terminal gives the
  78. names which are known for the terminal, separated by `|'
  79. characters. The first name given is the most common
  80. abbreviation for the terminal, the last name given should
  81. be a long name fully identifying the terminal, and all
  82. others are understood as synonyms for the terminal name.
  83. All names but the last should be in lower case and contain
  84. no blanks; the last name may well contain upper case and
  85. blanks for readability.
  86. Lines beginning with a `#' in the first column are treated
  87. as comments. While comment lines are legal at any point,
  88. the output of <STRONG>captoinfo</STRONG> and <STRONG>infotocap</STRONG> (aliases for <STRONG>tic</STRONG>)
  89. will move comments so they occur only between entries.
  90. Newlines and leading tabs may be used for formatting
  91. entries for readability. These are removed from parsed
  92. entries. The <STRONG>infocmp</STRONG> <STRONG>-f</STRONG> option relies on this to format
  93. if-then-else expressions: the result can be read by <STRONG>tic</STRONG>.
  94. Terminal names (except for the last, verbose entry) should
  95. be chosen using the following conventions. The particular
  96. piece of hardware making up the terminal should have a
  97. root name, thus ``hp2621''. This name should not contain
  98. hyphens. Modes that the hardware can be in, or user pref-
  99. erences, should be indicated by appending a hyphen and a
  100. mode suffix. Thus, a vt100 in 132 column mode would be
  101. vt100-w. The following suffixes should be used where pos-
  102. sible:
  103. <STRONG>Suffix</STRONG> <STRONG>Meaning</STRONG> <STRONG>Example</STRONG>
  104. -<EM>nn</EM> Number of lines on the screen aaa-60
  105. -<EM>n</EM>p Number of pages of memory c100-4p
  106. -am With automargins (usually the default) vt100-am
  107. -m Mono mode; suppress color ansi-m
  108. -mc Magic cookie; spaces when highlighting wy30-mc
  109. -na No arrow keys (leave them in local) c100-na
  110. -nam Without automatic margins vt100-nam
  111. -nl No status line att4415-nl
  112. -ns No status line hp2626-ns
  113. -rv Reverse video c100-rv
  114. -s Enable status line vt100-s
  115. -vb Use visible bell instead of beep wy370-vb
  116. -w Wide mode (&gt; 80 columns, usually 132) vt100-w
  117. For more on terminal naming conventions, see the <STRONG>term(7)</STRONG>
  118. manual page.
  119. <STRONG>Capabilities</STRONG>
  120. The following is a complete table of the capabilities
  121. included in a terminfo description block and available to
  122. terminfo-using code. In each line of the table,
  123. The <STRONG>variable</STRONG> is the name by which the programmer (at the
  124. terminfo level) accesses the capability.
  125. The <STRONG>capname</STRONG> is the short name used in the text of the
  126. database, and is used by a person updating the database.
  127. Whenever possible, capnames are chosen to be the same as
  128. or similar to the ANSI X3.64-1979 standard (now superseded
  129. by ECMA-48, which uses identical or very similar names).
  130. Semantics are also intended to match those of the specifi-
  131. cation.
  132. The termcap code is the old <STRONG>termcap</STRONG> capability name (some
  133. capabilities are new, and have names which termcap did not
  134. originate).
  135. Capability names have no hard length limit, but an infor-
  136. mal limit of 5 characters has been adopted to keep them
  137. short and to allow the tabs in the source file <STRONG>Caps</STRONG> to
  138. line up nicely.
  139. Finally, the description field attempts to convey the
  140. semantics of the capability. You may find some codes in
  141. the description field:
  142. (P) indicates that padding may be specified
  143. #[1-9] in the description field indicates that the string
  144. is passed through tparm with parms as given (#<EM>i</EM>).
  145. (P*) indicates that padding may vary in proportion to
  146. the number of lines affected
  147. (#<EM>i</EM>) indicates the <EM>i</EM>th parameter.
  148. These are the boolean capabilities:
  149. <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
  150. <STRONG>Booleans</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
  151. auto_left_margin bw bw cub1 wraps from col-
  152. umn 0 to last column
  153. auto_right_margin am am terminal has auto-
  154. matic margins
  155. back_color_erase bce ut screen erased with
  156. background color
  157. can_change ccc cc terminal can re-
  158. define existing col-
  159. ors
  160. ceol_standout_glitch xhp xs standout not erased
  161. by overwriting (hp)
  162. col_addr_glitch xhpa YA only positive motion
  163. for hpa/mhpa caps
  164. cpi_changes_res cpix YF changing character
  165. pitch changes reso-
  166. lution
  167. cr_cancels_micro_mode crxm YB using cr turns off
  168. micro mode
  169. dest_tabs_magic_smso xt xt tabs destructive,
  170. magic so char
  171. (t1061)
  172. eat_newline_glitch xenl xn newline ignored
  173. after 80 cols (con-
  174. cept)
  175. erase_overstrike eo eo can erase over-
  176. strikes with a blank
  177. generic_type gn gn generic line type
  178. hard_copy hc hc hardcopy terminal
  179. hard_cursor chts HC cursor is hard to
  180. see
  181. has_meta_key km km Has a meta key
  182. (i.e., sets 8th-bit)
  183. has_print_wheel daisy YC printer needs opera-
  184. tor to change char-
  185. acter set
  186. has_status_line hs hs has extra status
  187. line
  188. hue_lightness_saturation hls hl terminal uses only
  189. HLS color notation
  190. (Tektronix)
  191. insert_null_glitch in in insert mode distin-
  192. guishes nulls
  193. lpi_changes_res lpix YG changing line pitch
  194. changes resolution
  195. memory_above da da display may be
  196. retained above the
  197. screen
  198. memory_below db db display may be
  199. retained below the
  200. screen
  201. move_insert_mode mir mi safe to move while
  202. in insert mode
  203. move_standout_mode msgr ms safe to move while
  204. in standout mode
  205. needs_xon_xoff nxon nx padding will not
  206. work, xon/xoff
  207. required
  208. no_esc_ctlc xsb xb beehive (f1=escape,
  209. f2=ctrl C)
  210. no_pad_char npc NP pad character does
  211. not exist
  212. non_dest_scroll_region ndscr ND scrolling region is
  213. non-destructive
  214. non_rev_rmcup nrrmc NR smcup does not
  215. reverse rmcup
  216. over_strike os os terminal can over-
  217. strike
  218. prtr_silent mc5i 5i printer will not
  219. echo on screen
  220. row_addr_glitch xvpa YD only positive motion
  221. for vpa/mvpa caps
  222. semi_auto_right_margin sam YE printing in last
  223. column causes cr
  224. status_line_esc_ok eslok es escape can be used
  225. on the status line
  226. tilde_glitch hz hz cannot print ~'s
  227. (hazeltine)
  228. transparent_underline ul ul underline character
  229. overstrikes
  230. xon_xoff xon xo terminal uses
  231. xon/xoff handshaking
  232. These are the numeric capabilities:
  233. <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
  234. <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
  235. columns cols co number of columns in
  236. a line
  237. init_tabs it it tabs initially every
  238. # spaces
  239. label_height lh lh rows in each label
  240. label_width lw lw columns in each
  241. label
  242. lines lines li number of lines on
  243. screen or page
  244. lines_of_memory lm lm lines of memory if &gt;
  245. line. 0 means varies
  246. magic_cookie_glitch xmc sg number of blank
  247. characters left by
  248. smso or rmso
  249. max_attributes ma ma maximum combined
  250. attributes terminal
  251. can handle
  252. max_colors colors Co maximum number of
  253. colors on screen
  254. max_pairs pairs pa maximum number of
  255. color-pairs on the
  256. screen
  257. maximum_windows wnum MW maximum number of
  258. defineable windows
  259. no_color_video ncv NC video attributes
  260. that cannot be used
  261. with colors
  262. num_labels nlab Nl number of labels on
  263. screen
  264. padding_baud_rate pb pb lowest baud rate
  265. where padding needed
  266. virtual_terminal vt vt virtual terminal
  267. number (CB/unix)
  268. width_status_line wsl ws number of columns in
  269. status line
  270. The following numeric capabilities are present in the
  271. SVr4.0 term structure, but are not yet documented in the
  272. man page. They came in with SVr4's printer support.
  273. <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
  274. <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
  275. bit_image_entwining bitwin Yo number of passes for
  276. each bit-image row
  277. bit_image_type bitype Yp type of bit-image
  278. device
  279. buffer_capacity bufsz Ya numbers of bytes
  280. buffered before
  281. printing
  282. buttons btns BT number of buttons on
  283. mouse
  284. dot_horz_spacing spinh Yc spacing of dots hor-
  285. izontally in dots
  286. per inch
  287. dot_vert_spacing spinv Yb spacing of pins ver-
  288. tically in pins per
  289. inch
  290. max_micro_address maddr Yd maximum value in
  291. micro_..._address
  292. max_micro_jump mjump Ye maximum value in
  293. parm_..._micro
  294. micro_col_size mcs Yf character step size
  295. when in micro mode
  296. micro_line_size mls Yg line step size when
  297. in micro mode
  298. number_of_pins npins Yh numbers of pins in
  299. print-head
  300. output_res_char orc Yi horizontal resolu-
  301. tion in units per
  302. line
  303. output_res_horz_inch orhi Yk horizontal resolu-
  304. tion in units per
  305. inch
  306. output_res_line orl Yj vertical resolution
  307. in units per line
  308. output_res_vert_inch orvi Yl vertical resolution
  309. in units per inch
  310. print_rate cps Ym print rate in char-
  311. acters per second
  312. wide_char_size widcs Yn character step size
  313. when in double wide
  314. mode
  315. These are the string capabilities:
  316. <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
  317. <STRONG>String</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
  318. acs_chars acsc ac graphics charset
  319. pairs, based on
  320. vt100
  321. back_tab cbt bt back tab (P)
  322. bell bel bl audible signal
  323. (bell) (P)
  324. carriage_return cr cr carriage return (P*)
  325. (P*)
  326. change_char_pitch cpi ZA Change number of
  327. characters per inch
  328. to #1
  329. change_line_pitch lpi ZB Change number of
  330. lines per inch to #1
  331. change_res_horz chr ZC Change horizontal
  332. resolution to #1
  333. change_res_vert cvr ZD Change vertical res-
  334. olution to #1
  335. change_scroll_region csr cs change region to
  336. line #1 to line #2
  337. (P)
  338. char_padding rmp rP like ip but when in
  339. insert mode
  340. clear_all_tabs tbc ct clear all tab stops
  341. (P)
  342. clear_margins mgc MC clear right and left
  343. soft margins
  344. clear_screen clear cl clear screen and
  345. home cursor (P*)
  346. clr_bol el1 cb Clear to beginning
  347. of line
  348. clr_eol el ce clear to end of line
  349. (P)
  350. clr_eos ed cd clear to end of
  351. screen (P*)
  352. column_address hpa ch horizontal position
  353. #1, absolute (P)
  354. command_character cmdch CC terminal settable
  355. cmd character in
  356. prototype !?
  357. create_window cwin CW define a window #1
  358. from #2,#3 to #4,#5
  359. cursor_address cup cm move to row #1
  360. columns #2
  361. cursor_down cud1 do down one line
  362. cursor_home home ho home cursor (if no
  363. cup)
  364. cursor_invisible civis vi make cursor invisi-
  365. ble
  366. cursor_left cub1 le move left one space
  367. cursor_mem_address mrcup CM memory relative cur-
  368. sor addressing, move
  369. to row #1 columns #2
  370. cursor_normal cnorm ve make cursor appear
  371. normal (undo
  372. civis/cvvis)
  373. cursor_right cuf1 nd non-destructive
  374. space (move right
  375. one space)
  376. cursor_to_ll ll ll last line, first
  377. column (if no cup)
  378. cursor_up cuu1 up up one line
  379. cursor_visible cvvis vs make cursor very
  380. visible
  381. define_char defc ZE Define a character
  382. #1, #2 dots wide,
  383. descender #3
  384. delete_character dch1 dc delete character
  385. (P*)
  386. delete_line dl1 dl delete line (P*)
  387. dial_phone dial DI dial number #1
  388. dis_status_line dsl ds disable status line
  389. display_clock dclk DK display clock
  390. down_half_line hd hd half a line down
  391. ena_acs enacs eA enable alternate
  392. char set
  393. enter_alt_charset_mode smacs as start alternate
  394. character set (P)
  395. enter_am_mode smam SA turn on automatic
  396. margins
  397. enter_blink_mode blink mb turn on blinking
  398. enter_bold_mode bold md turn on bold (extra
  399. bright) mode
  400. enter_ca_mode smcup ti string to start pro-
  401. grams using cup
  402. enter_delete_mode smdc dm enter delete mode
  403. enter_dim_mode dim mh turn on half-bright
  404. mode
  405. enter_doublewide_mode swidm ZF Enter double-wide
  406. mode
  407. enter_draft_quality sdrfq ZG Enter draft-quality
  408. mode
  409. enter_insert_mode smir im enter insert mode
  410. enter_italics_mode sitm ZH Enter italic mode
  411. enter_leftward_mode slm ZI Start leftward car-
  412. riage motion
  413. enter_micro_mode smicm ZJ Start micro-motion
  414. mode
  415. enter_near_letter_quality snlq ZK Enter NLQ mode
  416. enter_normal_quality snrmq ZL Enter normal-quality
  417. mode
  418. enter_protected_mode prot mp turn on protected
  419. mode
  420. enter_reverse_mode rev mr turn on reverse
  421. video mode
  422. enter_secure_mode invis mk turn on blank mode
  423. (characters invisi-
  424. ble)
  425. enter_shadow_mode sshm ZM Enter shadow-print
  426. mode
  427. enter_standout_mode smso so begin standout mode
  428. enter_subscript_mode ssubm ZN Enter subscript mode
  429. enter_superscript_mode ssupm ZO Enter superscript
  430. mode
  431. enter_underline_mode smul us begin underline mode
  432. enter_upward_mode sum ZP Start upward car-
  433. riage motion
  434. enter_xon_mode smxon SX turn on xon/xoff
  435. handshaking
  436. erase_chars ech ec erase #1 characters
  437. (P)
  438. exit_alt_charset_mode rmacs ae end alternate char-
  439. acter set (P)
  440. exit_am_mode rmam RA turn off automatic
  441. margins
  442. exit_attribute_mode sgr0 me turn off all
  443. attributes
  444. exit_ca_mode rmcup te strings to end pro-
  445. grams using cup
  446. exit_delete_mode rmdc ed end delete mode
  447. exit_doublewide_mode rwidm ZQ End double-wide mode
  448. exit_insert_mode rmir ei exit insert mode
  449. exit_italics_mode ritm ZR End italic mode
  450. exit_leftward_mode rlm ZS End left-motion mode
  451. exit_micro_mode rmicm ZT End micro-motion
  452. mode
  453. exit_shadow_mode rshm ZU End shadow-print
  454. mode
  455. exit_standout_mode rmso se exit standout mode
  456. exit_subscript_mode rsubm ZV End subscript mode
  457. exit_superscript_mode rsupm ZW End superscript mode
  458. exit_underline_mode rmul ue exit underline mode
  459. exit_upward_mode rum ZX End reverse charac-
  460. ter motion
  461. exit_xon_mode rmxon RX turn off xon/xoff
  462. handshaking
  463. fixed_pause pause PA pause for 2-3 sec-
  464. onds
  465. flash_hook hook fh flash switch hook
  466. flash_screen flash vb visible bell (may
  467. not move cursor)
  468. form_feed ff ff hardcopy terminal
  469. page eject (P*)
  470. from_status_line fsl fs return from status
  471. line
  472. goto_window wingo WG go to window #1
  473. hangup hup HU hang-up phone
  474. init_1string is1 i1 initialization
  475. string
  476. init_2string is2 is initialization
  477. string
  478. init_3string is3 i3 initialization
  479. string
  480. init_file if if name of initializa-
  481. tion file
  482. init_prog iprog iP path name of program
  483. for initialization
  484. initialize_color initc Ic initialize color #1
  485. to (#2,#3,#4)
  486. initialize_pair initp Ip Initialize color
  487. pair #1 to
  488. fg=(#2,#3,#4),
  489. bg=(#5,#6,#7)
  490. insert_character ich1 ic insert character (P)
  491. insert_line il1 al insert line (P*)
  492. insert_padding ip ip insert padding after
  493. inserted character
  494. key_a1 ka1 K1 upper left of keypad
  495. key_a3 ka3 K3 upper right of key-
  496. pad
  497. key_b2 kb2 K2 center of keypad
  498. key_backspace kbs kb backspace key
  499. key_beg kbeg @1 begin key
  500. key_btab kcbt kB back-tab key
  501. key_c1 kc1 K4 lower left of keypad
  502. key_c3 kc3 K5 lower right of key-
  503. pad
  504. key_cancel kcan @2 cancel key
  505. key_catab ktbc ka clear-all-tabs key
  506. key_clear kclr kC clear-screen or
  507. erase key
  508. key_close kclo @3 close key
  509. key_command kcmd @4 command key
  510. key_copy kcpy @5 copy key
  511. key_create kcrt @6 create key
  512. key_ctab kctab kt clear-tab key
  513. key_dc kdch1 kD delete-character key
  514. key_dl kdl1 kL delete-line key
  515. key_down kcud1 kd down-arrow key
  516. key_eic krmir kM sent by rmir or smir
  517. in insert mode
  518. key_end kend @7 end key
  519. key_enter kent @8 enter/send key
  520. key_eol kel kE clear-to-end-of-line
  521. key
  522. key_eos ked kS clear-to-end-of-
  523. screen key
  524. key_exit kext @9 exit key
  525. key_f0 kf0 k0 F0 function key
  526. key_f1 kf1 k1 F1 function key
  527. key_f10 kf10 k; F10 function key
  528. key_f11 kf11 F1 F11 function key
  529. key_f12 kf12 F2 F12 function key
  530. key_f13 kf13 F3 F13 function key
  531. key_f14 kf14 F4 F14 function key
  532. key_f15 kf15 F5 F15 function key
  533. key_f16 kf16 F6 F16 function key
  534. key_f17 kf17 F7 F17 function key
  535. key_f18 kf18 F8 F18 function key
  536. key_f19 kf19 F9 F19 function key
  537. key_f2 kf2 k2 F2 function key
  538. key_f20 kf20 FA F20 function key
  539. key_f21 kf21 FB F21 function key
  540. key_f22 kf22 FC F22 function key
  541. key_f23 kf23 FD F23 function key
  542. key_f24 kf24 FE F24 function key
  543. key_f25 kf25 FF F25 function key
  544. key_f26 kf26 FG F26 function key
  545. key_f27 kf27 FH F27 function key
  546. key_f28 kf28 FI F28 function key
  547. key_f29 kf29 FJ F29 function key
  548. key_f3 kf3 k3 F3 function key
  549. key_f30 kf30 FK F30 function key
  550. key_f31 kf31 FL F31 function key
  551. key_f32 kf32 FM F32 function key
  552. key_f33 kf33 FN F33 function key
  553. key_f34 kf34 FO F34 function key
  554. key_f35 kf35 FP F35 function key
  555. key_f36 kf36 FQ F36 function key
  556. key_f37 kf37 FR F37 function key
  557. key_f38 kf38 FS F38 function key
  558. key_f39 kf39 FT F39 function key
  559. key_f4 kf4 k4 F4 function key
  560. key_f40 kf40 FU F40 function key
  561. key_f41 kf41 FV F41 function key
  562. key_f42 kf42 FW F42 function key
  563. key_f43 kf43 FX F43 function key
  564. key_f44 kf44 FY F44 function key
  565. key_f45 kf45 FZ F45 function key
  566. key_f46 kf46 Fa F46 function key
  567. key_f47 kf47 Fb F47 function key
  568. key_f48 kf48 Fc F48 function key
  569. key_f49 kf49 Fd F49 function key
  570. key_f5 kf5 k5 F5 function key
  571. key_f50 kf50 Fe F50 function key
  572. key_f51 kf51 Ff F51 function key
  573. key_f52 kf52 Fg F52 function key
  574. key_f53 kf53 Fh F53 function key
  575. key_f54 kf54 Fi F54 function key
  576. key_f55 kf55 Fj F55 function key
  577. key_f56 kf56 Fk F56 function key
  578. key_f57 kf57 Fl F57 function key
  579. key_f58 kf58 Fm F58 function key
  580. key_f59 kf59 Fn F59 function key
  581. key_f6 kf6 k6 F6 function key
  582. key_f60 kf60 Fo F60 function key
  583. key_f61 kf61 Fp F61 function key
  584. key_f62 kf62 Fq F62 function key
  585. key_f63 kf63 Fr F63 function key
  586. key_f7 kf7 k7 F7 function key
  587. key_f8 kf8 k8 F8 function key
  588. key_f9 kf9 k9 F9 function key
  589. key_find kfnd @0 find key
  590. key_help khlp %1 help key
  591. key_home khome kh home key
  592. key_ic kich1 kI insert-character key
  593. key_il kil1 kA insert-line key
  594. key_left kcub1 kl left-arrow key
  595. key_ll kll kH lower-left key (home
  596. down)
  597. key_mark kmrk %2 mark key
  598. key_message kmsg %3 message key
  599. key_move kmov %4 move key
  600. key_next knxt %5 next key
  601. key_npage knp kN next-page key
  602. key_open kopn %6 open key
  603. key_options kopt %7 options key
  604. key_ppage kpp kP previous-page key
  605. key_previous kprv %8 previous key
  606. key_print kprt %9 print key
  607. key_redo krdo %0 redo key
  608. key_reference kref &amp;1 reference key
  609. key_refresh krfr &amp;2 refresh key
  610. key_replace krpl &amp;3 replace key
  611. key_restart krst &amp;4 restart key
  612. key_resume kres &amp;5 resume key
  613. key_right kcuf1 kr right-arrow key
  614. key_save ksav &amp;6 save key
  615. key_sbeg kBEG &amp;9 shifted begin key
  616. key_scancel kCAN &amp;0 shifted cancel key
  617. key_scommand kCMD *1 shifted command key
  618. key_scopy kCPY *2 shifted copy key
  619. key_screate kCRT *3 shifted create key
  620. key_sdc kDC *4 shifted delete-char-
  621. acter key
  622. key_sdl kDL *5 shifted delete-line
  623. key
  624. key_select kslt *6 select key
  625. key_send kEND *7 shifted end key
  626. key_seol kEOL *8 shifted clear-to-
  627. end-of-line key
  628. key_sexit kEXT *9 shifted exit key
  629. key_sf kind kF scroll-forward key
  630. key_sfind kFND *0 shifted find key
  631. key_shelp kHLP #1 shifted help key
  632. key_shome kHOM #2 shifted home key
  633. key_sic kIC #3 shifted insert-char-
  634. acter key
  635. key_sleft kLFT #4 shifted left-arrow
  636. key
  637. key_smessage kMSG %a shifted message key
  638. key_smove kMOV %b shifted move key
  639. key_snext kNXT %c shifted next key
  640. key_soptions kOPT %d shifted options key
  641. key_sprevious kPRV %e shifted previous key
  642. key_sprint kPRT %f shifted print key
  643. key_sr kri kR scroll-backward key
  644. key_sredo kRDO %g shifted redo key
  645. key_sreplace kRPL %h shifted replace key
  646. key_sright kRIT %i shifted right-arrow
  647. key
  648. key_srsume kRES %j shifted resume key
  649. key_ssave kSAV !1 shifted save key
  650. key_ssuspend kSPD !2 shifted suspend key
  651. key_stab khts kT set-tab key
  652. key_sundo kUND !3 shifted undo key
  653. key_suspend kspd &amp;7 suspend key
  654. key_undo kund &amp;8 undo key
  655. key_up kcuu1 ku up-arrow key
  656. keypad_local rmkx ke leave 'key-
  657. board_transmit' mode
  658. keypad_xmit smkx ks enter 'key-
  659. board_transmit' mode
  660. lab_f0 lf0 l0 label on function
  661. key f0 if not f0
  662. lab_f1 lf1 l1 label on function
  663. key f1 if not f1
  664. lab_f10 lf10 la label on function
  665. key f10 if not f10
  666. lab_f2 lf2 l2 label on function
  667. key f2 if not f2
  668. lab_f3 lf3 l3 label on function
  669. key f3 if not f3
  670. lab_f4 lf4 l4 label on function
  671. key f4 if not f4
  672. lab_f5 lf5 l5 label on function
  673. key f5 if not f5
  674. lab_f6 lf6 l6 label on function
  675. key f6 if not f6
  676. lab_f7 lf7 l7 label on function
  677. key f7 if not f7
  678. lab_f8 lf8 l8 label on function
  679. key f8 if not f8
  680. lab_f9 lf9 l9 label on function
  681. key f9 if not f9
  682. label_format fln Lf label format
  683. label_off rmln LF turn off soft labels
  684. label_on smln LO turn on soft labels
  685. meta_off rmm mo turn off meta mode
  686. meta_on smm mm turn on meta mode
  687. (8th-bit on)
  688. micro_column_address mhpa ZY Like column_address
  689. in micro mode
  690. micro_down mcud1 ZZ Like cursor_down in
  691. micro mode
  692. micro_left mcub1 Za Like cursor_left in
  693. micro mode
  694. micro_right mcuf1 Zb Like cursor_right in
  695. micro mode
  696. micro_row_address mvpa Zc Like row_address #1
  697. in micro mode
  698. micro_up mcuu1 Zd Like cursor_up in
  699. micro mode
  700. newline nel nw newline (behave like
  701. cr followed by lf)
  702. order_of_pins porder Ze Match software bits
  703. to print-head pins
  704. orig_colors oc oc Set all color pairs
  705. to the original ones
  706. orig_pair op op Set default pair to
  707. its original value
  708. pad_char pad pc padding char
  709. (instead of null)
  710. parm_dch dch DC delete #1 characters
  711. (P*)
  712. parm_delete_line dl DL delete #1 lines (P*)
  713. parm_down_cursor cud DO down #1 lines (P*)
  714. parm_down_micro mcud Zf Like parm_down_cur-
  715. sor in micro mode
  716. parm_ich ich IC insert #1 characters
  717. (P*)
  718. parm_index indn SF scroll forward #1
  719. lines (P)
  720. parm_insert_line il AL insert #1 lines (P*)
  721. parm_left_cursor cub LE move #1 characters
  722. to the left (P)
  723. parm_left_micro mcub Zg Like parm_left_cur-
  724. sor in micro mode
  725. parm_right_cursor cuf RI move #1 characters
  726. to the right (P*)
  727. parm_right_micro mcuf Zh Like parm_right_cur-
  728. sor in micro mode
  729. parm_rindex rin SR scroll back #1 lines
  730. (P)
  731. parm_up_cursor cuu UP up #1 lines (P*)
  732. parm_up_micro mcuu Zi Like parm_up_cursor
  733. in micro mode
  734. pkey_key pfkey pk program function key
  735. #1 to type string #2
  736. pkey_local pfloc pl program function key
  737. #1 to execute string
  738. #2
  739. pkey_xmit pfx px program function key
  740. #1 to transmit
  741. string #2
  742. plab_norm pln pn program label #1 to
  743. show string #2
  744. print_screen mc0 ps print contents of
  745. screen
  746. prtr_non mc5p pO turn on printer for
  747. #1 bytes
  748. prtr_off mc4 pf turn off printer
  749. prtr_on mc5 po turn on printer
  750. pulse pulse PU select pulse dialing
  751. quick_dial qdial QD dial number #1 with-
  752. out checking
  753. remove_clock rmclk RC remove clock
  754. repeat_char rep rp repeat char #1 #2
  755. times (P*)
  756. req_for_input rfi RF send next input char
  757. (for ptys)
  758. reset_1string rs1 r1 reset string
  759. reset_2string rs2 r2 reset string
  760. reset_3string rs3 r3 reset string
  761. reset_file rf rf name of reset file
  762. restore_cursor rc rc restore cursor to
  763. position of last
  764. save_cursor
  765. row_address vpa cv vertical position #1
  766. absolute (P)
  767. save_cursor sc sc save current cursor
  768. position (P)
  769. scroll_forward ind sf scroll text up (P)
  770. scroll_reverse ri sr scroll text down (P)
  771. select_char_set scs Zj Select character
  772. set, #1
  773. set_attributes sgr sa define video
  774. attributes #1-#9
  775. (PG9)
  776. set_background setb Sb Set background color
  777. #1
  778. set_bottom_margin smgb Zk Set bottom margin at
  779. current line
  780. set_bottom_margin_parm smgbp Zl Set bottom margin at
  781. line #1 or (if smgtp
  782. is not given) #2
  783. lines from bottom
  784. set_clock sclk SC set clock, #1 hrs #2
  785. mins #3 secs
  786. set_color_pair scp sp Set current color
  787. pair to #1
  788. set_foreground setf Sf Set foreground color
  789. #1
  790. set_left_margin smgl ML set left soft margin
  791. at current column.
  792. See smgl. (ML is not
  793. in BSD termcap).
  794. set_left_margin_parm smglp Zm Set left (right)
  795. margin at column #1
  796. set_right_margin smgr MR set right soft mar-
  797. gin at current col-
  798. umn
  799. set_right_margin_parm smgrp Zn Set right margin at
  800. column #1
  801. set_tab hts st set a tab in every
  802. row, current columns
  803. set_top_margin smgt Zo Set top margin at
  804. current line
  805. set_top_margin_parm smgtp Zp Set top (bottom)
  806. margin at row #1
  807. set_window wind wi current window is
  808. lines #1-#2 cols
  809. #3-#4
  810. start_bit_image sbim Zq Start printing bit
  811. image graphics
  812. start_char_set_def scsd Zr Start character set
  813. definition #1, with
  814. #2 characters in the
  815. set
  816. stop_bit_image rbim Zs Stop printing bit
  817. image graphics
  818. stop_char_set_def rcsd Zt End definition of
  819. character set #1
  820. subscript_characters subcs Zu List of subscript-
  821. able characters
  822. superscript_characters supcs Zv List of superscript-
  823. able characters
  824. tab ht ta tab to next 8-space
  825. hardware tab stop
  826. these_cause_cr docr Zw Printing any of
  827. these characters
  828. causes CR
  829. to_status_line tsl ts move to status line,
  830. column #1
  831. tone tone TO select touch tone
  832. dialing
  833. underline_char uc uc underline char and
  834. move past it
  835. up_half_line hu hu half a line up
  836. user0 u0 u0 User string #0
  837. user1 u1 u1 User string #1
  838. user2 u2 u2 User string #2
  839. user3 u3 u3 User string #3
  840. user4 u4 u4 User string #4
  841. user5 u5 u5 User string #5
  842. user6 u6 u6 User string #6
  843. user7 u7 u7 User string #7
  844. user8 u8 u8 User string #8
  845. user9 u9 u9 User string #9
  846. wait_tone wait WA wait for dial-tone
  847. xoff_character xoffc XF XOFF character
  848. xon_character xonc XN XON character
  849. zero_motion zerom Zx No motion for subse-
  850. quent character
  851. The following string capabilities are present in the
  852. SVr4.0 term structure, but were originally not documented
  853. in the man page.
  854. <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
  855. <STRONG>String</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
  856. alt_scancode_esc scesa S8 Alternate escape
  857. for scancode emu-
  858. lation
  859. bit_image_carriage_return bicr Yv Move to beginning
  860. of same row
  861. bit_image_newline binel Zz Move to next row
  862. of the bit image
  863. bit_image_repeat birep Xy Repeat bit image
  864. cell #1 #2 times
  865. char_set_names csnm Zy Produce #1'th item
  866. from list of char-
  867. acter set names
  868. code_set_init csin ci Init sequence for
  869. multiple codesets
  870. color_names colornm Yw Give name for
  871. color #1
  872. define_bit_image_region defbi Yx Define rectan-
  873. gualar bit image
  874. region
  875. device_type devt dv Indicate lan-
  876. guage/codeset sup-
  877. port
  878. display_pc_char dispc S1 Display PC charac-
  879. ter #1
  880. end_bit_image_region endbi Yy End a bit-image
  881. region
  882. enter_pc_charset_mode smpch S2 Enter PC character
  883. display mode
  884. enter_scancode_mode smsc S4 Enter PC scancode
  885. mode
  886. exit_pc_charset_mode rmpch S3 Exit PC character
  887. display mode
  888. exit_scancode_mode rmsc S5 Exit PC scancode
  889. mode
  890. get_mouse getm Gm Curses should get
  891. button events,
  892. parameter #1 not
  893. documented.
  894. key_mouse kmous Km Mouse event has
  895. occurred
  896. mouse_info minfo Mi Mouse status
  897. information
  898. pc_term_options pctrm S6 PC terminal
  899. options
  900. pkey_plab pfxl xl Program function
  901. key #1 to type
  902. string #2 and show
  903. string #3
  904. req_mouse_pos reqmp RQ Request mouse
  905. position
  906. scancode_escape scesc S7 Escape for scan-
  907. code emulation
  908. set0_des_seq s0ds s0 Shift to codeset 0
  909. (EUC set 0, ASCII)
  910. set1_des_seq s1ds s1 Shift to codeset 1
  911. set2_des_seq s2ds s2 Shift to codeset 2
  912. set3_des_seq s3ds s3 Shift to codeset 3
  913. set_a_background setab AB Set background
  914. color to #1, using
  915. ANSI escape
  916. set_a_foreground setaf AF Set foreground
  917. color to #1, using
  918. ANSI escape
  919. set_color_band setcolor Yz Change to ribbon
  920. color #1
  921. set_lr_margin smglr ML Set both left and
  922. right margins to
  923. #1, #2. (ML is
  924. not in BSD term-
  925. cap).
  926. set_page_length slines YZ Set page length to
  927. #1 lines
  928. set_tb_margin smgtb MT Sets both top and
  929. bottom margins to
  930. #1, #2
  931. The XSI Curses standard added these. They are some
  932. post-4.1 versions of System V curses, e.g., Solaris 2.5
  933. and IRIX 6.x. The <STRONG>ncurses</STRONG> termcap names for them are
  934. invented; according to the XSI Curses standard, they have
  935. no termcap names. If your compiled terminfo entries use
  936. these, they may not be binary-compatible with System V
  937. terminfo entries after SVr4.1; beware!
  938. <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
  939. <STRONG>String</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
  940. enter_horizontal_hl_mode ehhlm Xh Enter horizontal
  941. highlight mode
  942. enter_left_hl_mode elhlm Xl Enter left highlight
  943. mode
  944. enter_low_hl_mode elohlm Xo Enter low highlight
  945. mode
  946. enter_right_hl_mode erhlm Xr Enter right high-
  947. light mode
  948. enter_top_hl_mode ethlm Xt Enter top highlight
  949. mode
  950. enter_vertical_hl_mode evhlm Xv Enter vertical high-
  951. light mode
  952. set_a_attributes sgr1 sA Define second set of
  953. video attributes
  954. #1-#6
  955. set_pglen_inch slengthsL YI Set page length
  956. to #1 hundredth of
  957. an inch
  958. <STRONG>A</STRONG> <STRONG>Sample</STRONG> <STRONG>Entry</STRONG>
  959. The following entry, describing an ANSI-standard terminal,
  960. is representative of what a <STRONG>terminfo</STRONG> entry for a modern
  961. terminal typically looks like.
  962. ansi|ansi/pc-term compatible with color,
  963. mc5i,
  964. colors#8, ncv#3, pairs#64,
  965. cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
  966. cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM,
  967. ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%p1%dG, ht=\E[I,
  968. ich=\E[%p1%d@, il=\E[%p1%dL, indn=\E[%p1%dS, .indn=\E[%p1%dT,
  969. kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
  970. kcuf1=\E[C, kcuu1=\E[A, kf1=\E[M, kf10=\E[V,
  971. kf11=\E[W, kf12=\E[X, kf2=\E[N, kf3=\E[O, kf4=\E[P,
  972. kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U,
  973. kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
  974. op=\E[37;40m, rep=%p1%c\E[%p2%{1}%-%db,
  975. rin=\E[%p1%dT, s0ds=\E(B, s1ds=\E)B, s2ds=\E*B,
  976. s3ds=\E+B, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
  977. setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
  978. setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
  979. sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m,
  980. sgr0=\E[0;10m, tbc=\E[2g, u6=\E[%d;%dR, u7=\E[6n,
  981. u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%p1%dd,
  982. Entries may continue onto multiple lines by placing white
  983. space at the beginning of each line except the first.
  984. Comments may be included on lines beginning with ``#''.
  985. Capabilities in <EM>terminfo</EM> are of three types: Boolean capa-
  986. bilities which indicate that the terminal has some partic-
  987. ular feature, numeric capabilities giving the size of the
  988. terminal or the size of particular delays, and string
  989. capabilities, which give a sequence which can be used to
  990. perform particular terminal operations.
  991. <STRONG>Types</STRONG> <STRONG>of</STRONG> <STRONG>Capabilities</STRONG>
  992. All capabilities have names. For instance, the fact that
  993. ANSI-standard terminals have <EM>automatic</EM> <EM>margins</EM> (i.e., an
  994. automatic return and line-feed when the end of a line is
  995. reached) is indicated by the capability <STRONG>am</STRONG>. Hence the
  996. description of ansi includes <STRONG>am</STRONG>. Numeric capabilities are
  997. followed by the character `#' and then a positive value.
  998. Thus <STRONG>cols</STRONG>, which indicates the number of columns the ter-
  999. minal has, gives the value `80' for ansi. Values for
  1000. numeric capabilities may be specified in decimal, octal or
  1001. hexadecimal, using the C programming language conventions
  1002. (e.g., 255, 0377 and 0xff or 0xFF).
  1003. Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to
  1004. end of line sequence) are given by the two-character code,
  1005. an `=', and then a string ending at the next following
  1006. `,'.
  1007. A number of escape sequences are provided in the string
  1008. valued capabilities for easy encoding of characters there.
  1009. Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a
  1010. control-x for any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG>
  1011. <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a newline, line-feed, return, tab,
  1012. backspace, form-feed, and space. Other escapes include <STRONG>\^</STRONG>
  1013. for <STRONG>^</STRONG>, <STRONG>\\</STRONG> for <STRONG>\</STRONG>, <STRONG>\</STRONG>, for comma, <STRONG>\:</STRONG> for <STRONG>:</STRONG>, and <STRONG>\0</STRONG> for null.
  1014. (<STRONG>\0</STRONG> will produce \200, which does not terminate a string
  1015. but behaves as a null character on most terminals, provid-
  1016. ing CS7 is specified. See <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>.) Finally, characters
  1017. may be given as three octal digits after a <STRONG>\</STRONG>.
  1018. A delay in milliseconds may appear anywhere in a string
  1019. capability, enclosed in $&lt;..&gt; brackets, as in <STRONG>el</STRONG>=\EK$&lt;5&gt;,
  1020. and padding characters are supplied by <EM>tputs</EM> to provide
  1021. this delay. The delay must be a number with at most one
  1022. decimal place of precision; it may be followed by suffixes
  1023. `*' or '/' or both. A `*' indicates that the padding
  1024. required is proportional to the number of lines affected
  1025. by the operation, and the amount given is the per-
  1026. affected-unit padding required. (In the case of insert
  1027. character, the factor is still the number of <EM>lines</EM>
  1028. affected.) Normally, padding is advisory if the device
  1029. has the <STRONG>xon</STRONG> capability; it is used for cost computation
  1030. but does not trigger delays. A `/' suffix indicates that
  1031. the padding is mandatory and forces a delay of the given
  1032. number of milliseconds even on devices for which <STRONG>xon</STRONG> is
  1033. present to indicate flow control.
  1034. Sometimes individual capabilities must be commented out.
  1035. To do this, put a period before the capability name. For
  1036. example, see the second <STRONG>ind</STRONG> in the example above.
  1037. <STRONG>Fetching</STRONG> <STRONG>Compiled</STRONG> <STRONG>Descriptions</STRONG>
  1038. If the environment variable TERMINFO is set, it is inter-
  1039. preted as the pathname of a directory containing the com-
  1040. piled description you are working on. Only that directory
  1041. is searched.
  1042. If TERMINFO is not set, the <STRONG>ncurses</STRONG> version of the ter-
  1043. minfo reader code will instead look in the directory
  1044. <STRONG>$HOME/.terminfo</STRONG> for a compiled description. If it fails
  1045. to find one there, and the environment variable TER-
  1046. MINFO_DIRS is set, it will interpret the contents of that
  1047. variable as a list of colon- separated directories to be
  1048. searched (an empty entry is interpreted as a command to
  1049. search <EM>/usr/share/terminfo</EM>). If no description is found
  1050. in any of the TERMINFO_DIRS directories, the fetch fails.
  1051. If neither TERMINFO nor TERMINFO_DIRS is set, the last
  1052. place tried will be the system terminfo directory,
  1053. <EM>/usr/share/terminfo</EM>.
  1054. (Neither the <STRONG>$HOME/.terminfo</STRONG> lookups nor TERMINFO_DIRS
  1055. extensions are supported under stock System V ter-
  1056. minfo/curses.)
  1057. <STRONG>Preparing</STRONG> <STRONG>Descriptions</STRONG>
  1058. We now outline how to prepare descriptions of terminals.
  1059. The most effective way to prepare a terminal description
  1060. is by imitating the description of a similar terminal in
  1061. <EM>terminfo</EM> and to build up a description gradually, using
  1062. partial descriptions with <EM>vi</EM> or some other screen-oriented
  1063. program to check that they are correct. Be aware that a
  1064. very unusual terminal may expose deficiencies in the abil-
  1065. ity of the <EM>terminfo</EM> file to describe it or bugs in the
  1066. screen-handling code of the test program.
  1067. To get the padding for insert line right (if the terminal
  1068. manufacturer did not document it) a severe test is to edit
  1069. a large file at 9600 baud, delete 16 or so lines from the
  1070. middle of the screen, then hit the `u' key several times
  1071. quickly. If the terminal messes up, more padding is usu-
  1072. ally needed. A similar test can be used for insert char-
  1073. acter.
  1074. <STRONG>Basic</STRONG> <STRONG>Capabilities</STRONG>
  1075. The number of columns on each line for the terminal is
  1076. given by the <STRONG>cols</STRONG> numeric capability. If the terminal is
  1077. a CRT, then the number of lines on the screen is given by
  1078. the <STRONG>lines</STRONG> capability. If the terminal wraps around to the
  1079. beginning of the next line when it reaches the right mar-
  1080. gin, then it should have the <STRONG>am</STRONG> capability. If the termi-
  1081. nal can clear its screen, leaving the cursor in the home
  1082. position, then this is given by the <STRONG>clear</STRONG> string capabil-
  1083. ity. If the terminal overstrikes (rather than clearing a
  1084. position when a character is struck over) then it should
  1085. have the <STRONG>os</STRONG> capability. If the terminal is a printing
  1086. terminal, with no soft copy unit, give it both <STRONG>hc</STRONG> and <STRONG>os</STRONG>.
  1087. (<STRONG>os</STRONG> applies to storage scope terminals, such as TEKTRONIX
  1088. 4010 series, as well as hard copy and APL terminals.) If
  1089. there is a code to move the cursor to the left edge of the
  1090. current row, give this as <STRONG>cr</STRONG>. (Normally this will be car-
  1091. riage return, control M.) If there is a code to produce
  1092. an audible signal (bell, beep, etc) give this as <STRONG>bel</STRONG>.
  1093. If there is a code to move the cursor one position to the
  1094. left (such as backspace) that capability should be given
  1095. as <STRONG>cub1</STRONG>. Similarly, codes to move to the right, up, and
  1096. down should be given as <STRONG>cuf1</STRONG>, <STRONG>cuu1</STRONG>, and <STRONG>cud1</STRONG>. These local
  1097. cursor motions should not alter the text they pass over,
  1098. for example, you would not normally use `<STRONG>cuf1</STRONG>= ' because
  1099. the space would erase the character moved over.
  1100. A very important point here is that the local cursor
  1101. motions encoded in <EM>terminfo</EM> are undefined at the left and
  1102. top edges of a CRT terminal. Programs should never
  1103. attempt to backspace around the left edge, unless <STRONG>bw</STRONG> is
  1104. given, and never attempt to go up locally off the top. In
  1105. order to scroll text up, a program will go to the bottom
  1106. left corner of the screen and send the <STRONG>ind</STRONG> (index) string.
  1107. To scroll text down, a program goes to the top left corner
  1108. of the screen and sends the <STRONG>ri</STRONG> (reverse index) string.
  1109. The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined when not on their
  1110. respective corners of the screen.
  1111. Parameterized versions of the scrolling sequences are <STRONG>indn</STRONG>
  1112. and <STRONG>rin</STRONG> which have the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except
  1113. that they take one parameter, and scroll that many lines.
  1114. They are also undefined except at the appropriate edge of
  1115. the screen.
  1116. The <STRONG>am</STRONG> capability tells whether the cursor sticks at the
  1117. right edge of the screen when text is output, but this
  1118. does not necessarily apply to a <STRONG>cuf1</STRONG> from the last column.
  1119. The only local motion which is defined from the left edge
  1120. is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge will
  1121. move to the right edge of the previous row. If <STRONG>bw</STRONG> is not
  1122. given, the effect is undefined. This is useful for draw-
  1123. ing a box around the edge of the screen, for example. If
  1124. the terminal has switch selectable automatic margins, the
  1125. <EM>terminfo</EM> file usually assumes that this is on; i.e., <STRONG>am</STRONG>.
  1126. If the terminal has a command which moves to the first
  1127. column of the next line, that command can be given as <STRONG>nel</STRONG>
  1128. (newline). It does not matter if the command clears the
  1129. remainder of the current line, so if the terminal has no
  1130. <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to craft a working <STRONG>nel</STRONG>
  1131. out of one or both of them.
  1132. These capabilities suffice to describe hard-copy and
  1133. "glass-tty" terminals. Thus the model 33 teletype is
  1134. described as
  1135. 33|tty33|tty|model 33 teletype,
  1136. bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,
  1137. while the Lear Siegler ADM-3 is described as
  1138. adm3|3|lsi adm3,
  1139. am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
  1140. ind=^J, lines#24,
  1141. <STRONG>Parameterized</STRONG> <STRONG>Strings</STRONG>
  1142. Cursor addressing and other strings requiring parameters
  1143. in the terminal are described by a parameterized string
  1144. capability, with <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG> like escapes <STRONG>%x</STRONG> in it. For
  1145. example, to address the cursor, the <STRONG>cup</STRONG> capability is
  1146. given, using two parameters: the row and column to address
  1147. to. (Rows and columns are numbered from zero and refer to
  1148. the physical screen visible to the user, not to any unseen
  1149. memory.) If the terminal has memory relative cursor
  1150. addressing, that can be indicated by <STRONG>mrcup</STRONG>.
  1151. The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes
  1152. to manipulate it. Typically a sequence will push one of
  1153. the parameters onto the stack and then print it in some
  1154. format. Print (e.g., "%d") is a special case. Other
  1155. operations, including "%t" pop their operand from the
  1156. stack. It is noted that more complex operations are often
  1157. necessary, e.g., in the <STRONG>sgr</STRONG> string.
  1158. The <STRONG>%</STRONG> encodings have the following meanings:
  1159. %% outputs `%'
  1160. %<EM>[[</EM>:<EM>]flags][width[.precision]][</EM>doxXs<EM>]</EM>
  1161. as in <STRONG>printf</STRONG>, flags are [-+#] and space. Use a `:'
  1162. to allow the next character to be a `-' flag, avoid-
  1163. ing interpreting "%-" as an operator.
  1164. %c print pop() like %c in <STRONG>printf</STRONG>
  1165. %s print pop() like %s in <STRONG>printf</STRONG>
  1166. %p[1-9]
  1167. push <EM>i</EM>'th parameter
  1168. %P[a-z]
  1169. set dynamic variable [a-z] to pop()
  1170. %g[a-z]
  1171. get dynamic variable [a-z] and push it
  1172. %P[A-Z]
  1173. set static variable [a-z] to pop()
  1174. %g[A-Z]
  1175. get static variable [a-z] and push it
  1176. The terms "static" and "dynamic" are misleading.
  1177. Historically, these are simply two different sets of
  1178. variables, whose values are not reset between calls
  1179. to <STRONG>tparm</STRONG>. However, that fact is not documented in
  1180. other implementations. Relying on it will adversely
  1181. impact portability to other implementations.
  1182. %'<EM>c</EM>' char constant <EM>c</EM>
  1183. %{<EM>nn</EM>}
  1184. integer constant <EM>nn</EM>
  1185. %l push strlen(pop)
  1186. %+ %- %* %/ %m
  1187. arithmetic (%m is mod): push(pop() op pop())
  1188. %&amp; %| %^
  1189. bit operations (AND, OR and exclusive-OR): push(pop()
  1190. op pop())
  1191. %= %&gt; %&lt;
  1192. logical operations: push(pop() op pop())
  1193. %A, %O
  1194. logical AND and OR operations (for conditionals)
  1195. %! %~
  1196. unary operations (logical and bit complement):
  1197. push(op pop())
  1198. %i add 1 to first two parameters (for ANSI terminals)
  1199. %? <EM>expr</EM> %t <EM>thenpart</EM> %e <EM>elsepart</EM> %;
  1200. This forms an if-then-else. The %e <EM>elsepart</EM> is
  1201. optional. Usually the %? <EM>expr</EM> part pushes a value
  1202. onto the stack, and %t pops it from the stack, test-
  1203. ing if it is nonzero (true). If it is zero (false),
  1204. control passes to the %e (else) part.
  1205. It is possible to form else-if's a la Algol 68:
  1206. %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e %;
  1207. where ci are conditions, bi are bodies.
  1208. Use the <STRONG>-f</STRONG> option of <STRONG>tic</STRONG> or <STRONG>infocmp</STRONG> to see the struc-
  1209. ture of if-the-else's. Some strings, e.g., <STRONG>sgr</STRONG> can
  1210. be very complicated when written on one line. The <STRONG>-f</STRONG>
  1211. option splits the string into lines with the parts
  1212. indented.
  1213. Binary operations are in postfix form with the operands in
  1214. the usual order. That is, to get x-5 one would use
  1215. "%gx%{5}%-". %P and %g variables are persistent across
  1216. escape-string evaluations.
  1217. Consider the HP2645, which, to get to row 3 and column 12,
  1218. needs to be sent \E&amp;a12c03Y padded for 6 milliseconds.
  1219. Note that the order of the rows and columns is inverted
  1220. here, and that the row and column are printed as two dig-
  1221. its. Thus its <STRONG>cup</STRONG> capability is "cup=6\E&amp;%p2%2dc%p1%2dY".
  1222. The Microterm ACT-IV needs the current row and column sent
  1223. preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded
  1224. in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c"
  1225. need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to
  1226. move the cursor up one line on the screen (<STRONG>cuu1</STRONG>). This is
  1227. necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG>
  1228. and <STRONG>\r</STRONG>, as the system may change or discard them. (The
  1229. library routines dealing with terminfo set tty modes so
  1230. that tabs are never expanded, so \t is safe to send. This
  1231. turns out to be essential for the Ann Arbor 4080.)
  1232. A final example is the LSI ADM-3a, which uses row and col-
  1233. umn offset by a blank character, thus "cup=\E=%p1%'
  1234. '%+%c%p2%' '%+%c". After sending `\E=', this pushes the
  1235. first parameter, pushes the ASCII value for a space (32),
  1236. adds them (pushing the sum on the stack in place of the
  1237. two previous values) and outputs that value as a charac-
  1238. ter. Then the same is done for the second parameter.
  1239. More complex arithmetic is possible using the stack.
  1240. <STRONG>Cursor</STRONG> <STRONG>Motions</STRONG>
  1241. If the terminal has a fast way to home the cursor (to very
  1242. upper left corner of screen) then this can be given as
  1243. <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
  1244. hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
  1245. with <STRONG>cuu1</STRONG> from the home position, but a program should
  1246. never do this itself (unless <STRONG>ll</STRONG> does) because it can make
  1247. no assumption about the effect of moving up from the home
  1248. position. Note that the home position is the same as
  1249. addressing to (0,0): to the top left corner of the screen,
  1250. not of memory. (Thus, the \EH sequence on HP terminals
  1251. cannot be used for <STRONG>home</STRONG>.)
  1252. If the terminal has row or column absolute cursor address-
  1253. ing, these can be given as single parameter capabilities
  1254. <STRONG>hpa</STRONG> (horizontal position absolute) and <STRONG>vpa</STRONG> (vertical posi-
  1255. tion absolute). Sometimes these are shorter than the more
  1256. general two parameter sequence (as with the hp2645) and
  1257. can be used in preference to <STRONG>cup</STRONG>. If there are
  1258. parameterized local motions (e.g., move <EM>n</EM> spaces to the
  1259. right) these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a
  1260. single parameter indicating how many spaces to move.
  1261. These are primarily useful if the terminal does not have
  1262. <STRONG>cup</STRONG>, such as the TEKTRONIX 4025.
  1263. If the terminal needs to be in a special mode when running
  1264. a program that uses these capabilities, the codes to enter
  1265. and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This
  1266. arises, for example, from terminals like the Concept with
  1267. more than one page of memory. If the terminal has only
  1268. memory relative cursor addressing and not screen relative
  1269. cursor addressing, a one screen-sized window must be fixed
  1270. into the terminal for cursor addressing to work properly.
  1271. This is also used for the TEKTRONIX 4025, where <STRONG>smcup</STRONG> sets
  1272. the command character to be the one used by terminfo. If
  1273. the <STRONG>smcup</STRONG> sequence will not restore the screen after an
  1274. <STRONG>rmcup</STRONG> sequence is output (to the state prior to outputting
  1275. <STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
  1276. <STRONG>Area</STRONG> <STRONG>Clears</STRONG>
  1277. If the terminal can clear from the current position to the
  1278. end of the line, leaving the cursor where it is, this
  1279. should be given as <STRONG>el</STRONG>. If the terminal can clear from the
  1280. beginning of the line to the current position inclusive,
  1281. leaving the cursor where it is, this should be given as
  1282. <STRONG>el1</STRONG>. If the terminal can clear from the current position
  1283. to the end of the display, then this should be given as
  1284. <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line.
  1285. (Thus, it can be simulated by a request to delete a large
  1286. number of lines, if a true <STRONG>ed</STRONG> is not available.)
  1287. <STRONG>Insert/delete</STRONG> <STRONG>line</STRONG> <STRONG>and</STRONG> <STRONG>vertical</STRONG> <STRONG>motions</STRONG>
  1288. If the terminal can open a new blank line before the line
  1289. where the cursor is, this should be given as <STRONG>il1</STRONG>; this is
  1290. done only from the first position of a line. The cursor
  1291. must then appear on the newly blank line. If the terminal
  1292. can delete the line which the cursor is on, then this
  1293. should be given as <STRONG>dl1</STRONG>; this is done only from the first
  1294. position on the line to be deleted. Versions of <STRONG>il1</STRONG> and
  1295. <STRONG>dl1</STRONG> which take a single parameter and insert or delete
  1296. that many lines can be given as <STRONG>il</STRONG> and <STRONG>dl</STRONG>.
  1297. If the terminal has a settable scrolling region (like the
  1298. vt100) the command to set this can be described with the
  1299. <STRONG>csr</STRONG> capability, which takes two parameters: the top and
  1300. bottom lines of the scrolling region. The cursor position
  1301. is, alas, undefined after using this command.
  1302. It is possible to get the effect of insert or delete line
  1303. using <STRONG>csr</STRONG> on a properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save
  1304. and restore cursor) commands may be useful for ensuring
  1305. that your synthesized insert/delete string does not move
  1306. the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does this
  1307. synthesis automatically, so you need not compose
  1308. insert/delete strings for an entry with <STRONG>csr</STRONG>).
  1309. Yet another way to construct insert and delete might be to
  1310. use a combination of index with the memory-lock feature
  1311. found on some terminals (like the HP-700/90 series, which
  1312. however also has insert/delete).
  1313. Inserting lines at the top or bottom of the screen can
  1314. also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a
  1315. true insert/delete line, and is often faster even on ter-
  1316. minals with those features.
  1317. The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each
  1318. scrolling window is effectively a view port on a screen-
  1319. sized canvas. To test for this capability, create a
  1320. scrolling region in the middle of the screen, write some-
  1321. thing to the bottom line, move the cursor to the top of
  1322. the region, and do <STRONG>ri</STRONG> followed by <STRONG>dl1</STRONG> or <STRONG>ind</STRONG>. If the data
  1323. scrolled off the bottom of the region by the <STRONG>ri</STRONG> re-
  1324. appears, then scrolling is non-destructive. System V and
  1325. XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu-
  1326. late destructive scrolling; their documentation cautions
  1327. you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
  1328. implementation is more liberal and will do explicit erases
  1329. after scrolling if <STRONG>ndstr</STRONG> is defined.
  1330. If the terminal has the ability to define a window as part
  1331. of memory, which all commands affect, it should be given
  1332. as the parameterized string <STRONG>wind</STRONG>. The four parameters are
  1333. the starting and ending lines in memory and the starting
  1334. and ending columns in memory, in that order.
  1335. If the terminal can retain display memory above, then the
  1336. <STRONG>da</STRONG> capability should be given; if display memory can be
  1337. retained below, then <STRONG>db</STRONG> should be given. These indicate
  1338. that deleting a line or scrolling may bring non-blank
  1339. lines up from below or that scrolling back with <STRONG>ri</STRONG> may
  1340. bring down non-blank lines.
  1341. <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
  1342. There are two basic kinds of intelligent terminals with
  1343. respect to insert/delete character which can be described
  1344. using <EM>terminfo.</EM> The most common insert/delete character
  1345. operations affect only the characters on the current line
  1346. and shift characters off the end of the line rigidly.
  1347. Other terminals, such as the Concept 100 and the Perkin
  1348. Elmer Owl, make a distinction between typed and untyped
  1349. blanks on the screen, shifting upon an insert or delete
  1350. only to an untyped blank on the screen which is either
  1351. eliminated, or expanded to two untyped blanks. You can
  1352. determine the kind of terminal you have by clearing the
  1353. screen and then typing text separated by cursor motions.
  1354. Type "abc def" using local cursor motions (not spaces)
  1355. between the "abc" and the "def". Then position the cursor
  1356. before the "abc" and put the terminal in insert mode. If
  1357. typing characters causes the rest of the line to shift
  1358. rigidly and characters to fall off the end, then your ter-
  1359. minal does not distinguish between blanks and untyped
  1360. positions. If the "abc" shifts over to the "def" which
  1361. then move together around the end of the current line and
  1362. onto the next as you insert, you have the second type of
  1363. terminal, and should give the capability <STRONG>in</STRONG>, which stands
  1364. for "insert null". While these are two logically separate
  1365. attributes (one line versus multi-line insert mode, and
  1366. special treatment of untyped spaces) we have seen no ter-
  1367. minals whose insert mode cannot be described with the sin-
  1368. gle attribute.
  1369. Terminfo can describe both terminals which have an insert
  1370. mode, and terminals which send a simple sequence to open a
  1371. blank position on the current line. Give as <STRONG>smir</STRONG> the
  1372. sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the
  1373. sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
  1374. sequence needed to be sent just before sending the
  1375. character to be inserted. Most terminals with a true
  1376. insert mode will not give <STRONG>ich1</STRONG>; terminals which send a
  1377. sequence to open a screen position should give it here.
  1378. If your terminal has both, insert mode is usually prefer-
  1379. able to <STRONG>ich1</STRONG>. Technically, you should not give both
  1380. unless the terminal actually requires both to be used in
  1381. combination. Accordingly, some non-curses applications
  1382. get confused if both are present; the symptom is doubled
  1383. characters in an update using insert. This requirement is
  1384. now rare; most <STRONG>ich</STRONG> sequences do not require previous smir,
  1385. and most smir insert modes do not require <STRONG>ich1</STRONG> before each
  1386. character. Therefore, the new <STRONG>curses</STRONG> actually assumes
  1387. this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as
  1388. appropriate (but not both). If you have to write an entry
  1389. to be used under new curses for a terminal old enough to
  1390. need both, include the <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> sequences in <STRONG>ich1</STRONG>.
  1391. If post insert padding is needed, give this as a number of
  1392. milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence
  1393. which may need to be sent after an insert of a single
  1394. character may also be given in <STRONG>ip</STRONG>. If your terminal needs
  1395. both to be placed into an `insert mode' and a special code
  1396. to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
  1397. and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG>
  1398. capability, with one parameter, <EM>n</EM>, will repeat the effects
  1399. of <STRONG>ich1</STRONG> <EM>n</EM> times.
  1400. If padding is necessary between characters typed while not
  1401. in insert mode, give this as a number of milliseconds
  1402. padding in <STRONG>rmp</STRONG>.
  1403. It is occasionally necessary to move around while in
  1404. insert mode to delete characters on the same line (e.g.,
  1405. if there is a tab after the insertion position). If your
  1406. terminal allows motion while in insert mode you can give
  1407. the capability <STRONG>mir</STRONG> to speed up inserting in this case.
  1408. Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
  1409. (notably Datamedia's) must not have <STRONG>mir</STRONG> because of the way
  1410. their insert mode works.
  1411. Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
  1412. ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
  1413. and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
  1414. delete mode (any mode the terminal needs to be placed in
  1415. for <STRONG>dch1</STRONG> to work).
  1416. A command to erase <EM>n</EM> characters (equivalent to outputting
  1417. <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG>
  1418. with one parameter.
  1419. <STRONG>Highlighting,</STRONG> <STRONG>Underlining,</STRONG> <STRONG>and</STRONG> <STRONG>Visible</STRONG> <STRONG>Bells</STRONG>
  1420. If your terminal has one or more kinds of display
  1421. attributes, these can be represented in a number of dif-
  1422. ferent ways. You should choose one display form as <EM>stand-</EM>
  1423. <EM>out</EM> <EM>mode</EM>, representing a good, high contrast, easy-on-the-
  1424. eyes, format for highlighting error messages and other
  1425. attention getters. (If you have a choice, reverse video
  1426. plus half-bright is good, or reverse video alone.) The
  1427. sequences to enter and exit standout mode are given as
  1428. <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into
  1429. or out of standout mode leaves one or even two blank
  1430. spaces on the screen, as the TVI 912 and Teleray 1061 do,
  1431. then <STRONG>xmc</STRONG> should be given to tell how many spaces are left.
  1432. Codes to begin underlining and end underlining can be
  1433. given as <STRONG>smul</STRONG> and <STRONG>rmul</STRONG> respectively. If the terminal has
  1434. a code to underline the current character and move the
  1435. cursor one space to the right, such as the Microterm Mime,
  1436. this can be given as <STRONG>uc</STRONG>.
  1437. Other capabilities to enter various highlighting modes
  1438. include <STRONG>blink</STRONG> (blinking) <STRONG>bold</STRONG> (bold or extra bright) <STRONG>dim</STRONG>
  1439. (dim or half-bright) <STRONG>invis</STRONG> (blanking or invisible text)
  1440. <STRONG>prot</STRONG> (protected) <STRONG>rev</STRONG> (reverse video) <STRONG>sgr0</STRONG> (turn off <EM>all</EM>
  1441. attribute modes) <STRONG>smacs</STRONG> (enter alternate character set
  1442. mode) and <STRONG>rmacs</STRONG> (exit alternate character set mode).
  1443. Turning on any of these modes singly may or may not turn
  1444. off other modes.
  1445. If there is a sequence to set arbitrary combinations of
  1446. modes, this should be given as <STRONG>sgr</STRONG> (set attributes), tak-
  1447. ing 9 parameters. Each parameter is either 0 or nonzero,
  1448. as the corresponding attribute is on or off. The 9 param-
  1449. eters are, in order: standout, underline, reverse, blink,
  1450. dim, bold, blank, protect, alternate character set. Not
  1451. all modes need be supported by <STRONG>sgr</STRONG>, only those for which
  1452. corresponding separate attribute commands exist.
  1453. For example, the DEC vt220 supports most of the modes:
  1454. <STRONG>tparm</STRONG> <STRONG>parameter</STRONG> <STRONG>attribute</STRONG> <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
  1455. none none \E[0m
  1456. p1 standout \E[0;1;7m
  1457. p2 underline \E[0;4m
  1458. p3 reverse \E[0;7m
  1459. p4 blink \E[0;5m
  1460. p5 dim not available
  1461. p6 bold \E[0;1m
  1462. p7 invis \E[0;8m
  1463. p8 protect not used
  1464. p9 altcharset ^O (off) ^N (on)
  1465. We begin each escape sequence by turning off any existing
  1466. modes, since there is no quick way to determine whether
  1467. they are active. Standout is set up to be the combination
  1468. of reverse and bold. The vt220 terminal has a protect
  1469. mode, though it is not commonly used in sgr because it
  1470. protects characters on the screen from the host's era-
  1471. sures. The altcharset mode also is different in that it
  1472. is either ^O or ^N, depending on whether it is off or on.
  1473. If all modes are turned on, the resulting sequence is
  1474. \E[0;1;4;5;7;8m^N.
  1475. Some sequences are common to different modes. For exam-
  1476. ple, ;7 is output when either p1 or p3 is true, that is,
  1477. if either standout or reverse modes are turned on.
  1478. Writing out the above sequences, along with their depen-
  1479. dencies yields
  1480. <STRONG>sequence</STRONG> <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG> <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
  1481. \E[0 always \E[0
  1482. ;1 if p1 or p6 %?%p1%p6%|%t;1%;
  1483. ;4 if p2 %?%p2%|%t;4%;
  1484. ;5 if p4 %?%p4%|%t;5%;
  1485. ;7 if p1 or p3 %?%p1%p3%|%t;7%;
  1486. ;8 if p7 %?%p7%|%t;8%;
  1487. m always m
  1488. ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
  1489. Putting this all together into the sgr sequence gives:
  1490. sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;
  1491. %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
  1492. Remember that if you specify sgr, you must also specify
  1493. sgr0. Also, some implementations rely on sgr being given
  1494. if sgr0 is, Not all terminfo entries necessarily have an
  1495. sgr string, however. Many terminfo entries are derived
  1496. from termcap entries which have no sgr string. The only
  1497. drawback to adding an sgr string is that termcap also
  1498. assumes that sgr0 does not exit alternate character set
  1499. mode.
  1500. Terminals with the ``magic cookie'' glitch (<STRONG>xmc</STRONG>) deposit
  1501. special ``cookies'' when they receive mode-setting
  1502. sequences, which affect the display algorithm rather than
  1503. having extra bits for each character. Some terminals,
  1504. such as the HP 2621, automatically leave standout mode
  1505. when they move to a new line or the cursor is addressed.
  1506. Programs using standout mode should exit standout mode
  1507. before moving the cursor or sending a newline, unless the
  1508. <STRONG>msgr</STRONG> capability, asserting that it is safe to move in
  1509. standout mode, is present.
  1510. If the terminal has a way of flashing the screen to indi-
  1511. cate an error quietly (a bell replacement) then this can
  1512. be given as <STRONG>flash</STRONG>; it must not move the cursor.
  1513. If the cursor needs to be made more visible than normal
  1514. when it is not on the bottom line (to make, for example, a
  1515. non-blinking underline into an easier to find block or
  1516. blinking underline) give this sequence as <STRONG>cvvis</STRONG>. If there
  1517. is a way to make the cursor completely invisible, give
  1518. that as <STRONG>civis</STRONG>. The capability <STRONG>cnorm</STRONG> should be given which
  1519. undoes the effects of both of these modes.
  1520. If your terminal correctly generates underlined characters
  1521. (with no special codes needed) even though it does not
  1522. overstrike, then you should give the capability <STRONG>ul</STRONG>. If a
  1523. character overstriking another leaves both characters on
  1524. the screen, specify the capability <STRONG>os</STRONG>. If overstrikes are
  1525. erasable with a blank, then this should be indicated by
  1526. giving <STRONG>eo</STRONG>.
  1527. <STRONG>Keypad</STRONG> <STRONG>and</STRONG> <STRONG>Function</STRONG> <STRONG>Keys</STRONG>
  1528. If the terminal has a keypad that transmits codes when the
  1529. keys are pressed, this information can be given. Note
  1530. that it is not possible to handle terminals where the key-
  1531. pad only works in local (this applies, for example, to the
  1532. unshifted HP 2621 keys). If the keypad can be set to
  1533. transmit or not transmit, give these codes as <STRONG>smkx</STRONG> and
  1534. <STRONG>rmkx</STRONG>. Otherwise the keypad is assumed to always transmit.
  1535. The codes sent by the left arrow, right arrow, up arrow,
  1536. down arrow, and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG>
  1537. <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG> respectively. If there are func-
  1538. tion keys such as f0, f1, ..., f10, the codes they send
  1539. can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys have
  1540. labels other than the default f0 through f10, the labels
  1541. can be given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>. The codes
  1542. transmitted by certain other special keys can be given:
  1543. <STRONG>kll</STRONG> (home down), <STRONG>kbs</STRONG> (backspace), <STRONG>ktbc</STRONG> (clear all tabs),
  1544. <STRONG>kctab</STRONG> (clear the tab stop in this column), <STRONG>kclr</STRONG> (clear
  1545. screen or erase key), <STRONG>kdch1</STRONG> (delete character), <STRONG>kdl1</STRONG>
  1546. (delete line), <STRONG>krmir</STRONG> (exit insert mode), <STRONG>kel</STRONG> (clear to end
  1547. of line), <STRONG>ked</STRONG> (clear to end of screen), <STRONG>kich1</STRONG> (insert
  1548. character or enter insert mode), <STRONG>kil1</STRONG> (insert line), <STRONG>knp</STRONG>
  1549. (next page), <STRONG>kpp</STRONG> (previous page), <STRONG>kind</STRONG> (scroll for-
  1550. ward/down), <STRONG>kri</STRONG> (scroll backward/up), <STRONG>khts</STRONG> (set a tab stop
  1551. in this column). In addition, if the keypad has a 3 by 3
  1552. array of keys including the four arrow keys, the other
  1553. five keys can be given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>.
  1554. These keys are useful when the effects of a 3 by 3 direc-
  1555. tional pad are needed.
  1556. Strings to program function keys can be given as <STRONG>pfkey</STRONG>,
  1557. <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>. A string to program screen labels should
  1558. be specified as <STRONG>pln</STRONG>. Each of these strings takes two
  1559. parameters: the function key number to program (from 0 to
  1560. 10) and the string to program it with. Function key num-
  1561. bers out of this range may program undefined keys in a
  1562. terminal dependent manner. The difference between the
  1563. capabilities is that <STRONG>pfkey</STRONG> causes pressing the given key
  1564. to be the same as the user typing the given string; <STRONG>pfloc</STRONG>
  1565. causes the string to be executed by the terminal in local;
  1566. and <STRONG>pfx</STRONG> causes the string to be transmitted to the com-
  1567. puter.
  1568. The capabilities <STRONG>nlab</STRONG>, <STRONG>lw</STRONG> and <STRONG>lh</STRONG> define the number of pro-
  1569. grammable screen labels and their width and height. If
  1570. there are commands to turn the labels on and off, give
  1571. them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>. <STRONG>smln</STRONG> is normally output after one
  1572. or more pln sequences to make sure that the change becomes
  1573. visible.
  1574. <STRONG>Tabs</STRONG> <STRONG>and</STRONG> <STRONG>Initialization</STRONG>
  1575. If the terminal has hardware tabs, the command to advance
  1576. to the next tab stop can be given as <STRONG>ht</STRONG> (usually control
  1577. I). A ``back-tab'' command which moves leftward to the
  1578. preceding tab stop can be given as <STRONG>cbt</STRONG>. By convention, if
  1579. the teletype modes indicate that tabs are being expanded
  1580. by the computer rather than being sent to the terminal,
  1581. programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are
  1582. present, since the user may not have the tab stops prop-
  1583. erly set. If the terminal has hardware tabs which are
  1584. initially set every <EM>n</EM> spaces when the terminal is powered
  1585. up, the numeric parameter <STRONG>it</STRONG> is given, showing the number
  1586. of spaces the tabs are set to. This is normally used by
  1587. the <EM>tset</EM> command to determine whether to set the mode for
  1588. hardware tab expansion, and whether to set the tab stops.
  1589. If the terminal has tab stops that can be saved in non-
  1590. volatile memory, the terminfo description can assume that
  1591. they are properly set.
  1592. Other capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initializa-
  1593. tion strings for the terminal, <STRONG>iprog</STRONG>, the path name of a
  1594. program to be run to initialize the terminal, and <STRONG>if</STRONG>, the
  1595. name of a file containing long initialization strings.
  1596. These strings are expected to set the terminal into modes
  1597. consistent with the rest of the terminfo description.
  1598. They are normally sent to the terminal, by the <EM>init</EM> option
  1599. of the <EM>tput</EM> program, each time the user logs in. They
  1600. will be printed in the following order:
  1601. run the program
  1602. <STRONG>iprog</STRONG>
  1603. output <STRONG>is1</STRONG> <STRONG>is2</STRONG>
  1604. set the margins using
  1605. <STRONG>mgc</STRONG>, <STRONG>smgl</STRONG> and <STRONG>smgr</STRONG>
  1606. set tabs using
  1607. <STRONG>tbc</STRONG> and <STRONG>hts</STRONG>
  1608. print the file
  1609. <STRONG>if</STRONG>
  1610. and finally
  1611. output <STRONG>is3</STRONG>.
  1612. Most initialization is done with <STRONG>is2</STRONG>. Special terminal
  1613. modes can be set up without duplicating strings by putting
  1614. the common sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
  1615. <STRONG>is3</STRONG>.
  1616. A set of sequences that does a harder reset from a totally
  1617. unknown state can be given as <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rf</STRONG> and <STRONG>rs3</STRONG>, analo-
  1618. gous to <STRONG>is1</STRONG> <STRONG>,</STRONG> <STRONG>is2</STRONG> <STRONG>,</STRONG> <STRONG>if</STRONG> and <STRONG>is3</STRONG> respectively. These
  1619. strings are output by the <EM>reset</EM> program, which is used
  1620. when the terminal gets into a wedged state. Commands are
  1621. normally placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they pro-
  1622. duce annoying effects on the screen and are not necessary
  1623. when logging in. For example, the command to set the
  1624. vt100 into 80-column mode would normally be part of <STRONG>is2</STRONG>,
  1625. but it causes an annoying glitch of the screen and is not
  1626. normally needed since the terminal is usually already in
  1627. 80 column mode.
  1628. The <EM>reset</EM> program writes strings including <STRONG>iprog</STRONG>, etc., in
  1629. the same order as the <EM>init</EM> program, using <STRONG>rs1</STRONG>, etc.,
  1630. instead of <STRONG>is1</STRONG>, etc. If any of <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, or <STRONG>rf</STRONG> reset
  1631. capability strings are missing, the <EM>reset</EM> program falls
  1632. back upon the corresponding initialization capability
  1633. string.
  1634. If there are commands to set and clear tab stops, they can
  1635. be given as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab
  1636. stop in the current column of every row). If a more com-
  1637. plex sequence is needed to set the tabs than can be
  1638. described by this, the sequence can be placed in <STRONG>is2</STRONG> or
  1639. <STRONG>if</STRONG>.
  1640. <STRONG>Delays</STRONG> <STRONG>and</STRONG> <STRONG>Padding</STRONG>
  1641. Many older and slower terminals do not support either
  1642. XON/XOFF or DTR handshaking, including hard copy terminals
  1643. and some very archaic CRTs (including, for example, DEC
  1644. VT100s). These may require padding characters after cer-
  1645. tain cursor motions and screen changes.
  1646. If the terminal uses xon/xoff handshaking for flow control
  1647. (that is, it automatically emits ^S back to the host when
  1648. its input buffers are close to full), set <STRONG>xon</STRONG>. This capa-
  1649. bility suppresses the emission of padding. You can also
  1650. set it for memory-mapped console devices effectively that
  1651. do not have a speed limit. Padding information should
  1652. still be included so that routines can make better deci-
  1653. sions about relative costs, but actual pad characters will
  1654. not be transmitted.
  1655. If <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed
  1656. at baud rates below the value of <STRONG>pb</STRONG>. If the entry has no
  1657. padding baud rate, then whether padding is emitted or not
  1658. is completely controlled by <STRONG>xon</STRONG>.
  1659. If the terminal requires other than a null (zero) charac-
  1660. ter as a pad, then this can be given as <STRONG>pad</STRONG>. Only the
  1661. first character of the <STRONG>pad</STRONG> string is used.
  1662. <STRONG>Status</STRONG> <STRONG>Lines</STRONG>
  1663. Some terminals have an extra `status line' which is not
  1664. normally used by software (and thus not counted in the
  1665. terminal's <STRONG>lines</STRONG> capability).
  1666. The simplest case is a status line which is cursor-
  1667. addressable but not part of the main scrolling region on
  1668. the screen; the Heathkit H19 has a status line of this
  1669. kind, as would a 24-line VT100 with a 23-line scrolling
  1670. region set up on initialization. This situation is indi-
  1671. cated by the <STRONG>hs</STRONG> capability.
  1672. Some terminals with status lines need special sequences to
  1673. access the status line. These may be expressed as a
  1674. string with single parameter <STRONG>tsl</STRONG> which takes the cursor to
  1675. a given zero-origin column on the status line. The capa-
  1676. bility <STRONG>fsl</STRONG> must return to the main-screen cursor positions
  1677. before the last <STRONG>tsl</STRONG>. You may need to embed the string
  1678. values of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG>
  1679. and <STRONG>fsl</STRONG> to accomplish this.
  1680. The status line is normally assumed to be the same width
  1681. as the width of the terminal. If this is untrue, you can
  1682. specify it with the numeric capability <STRONG>wsl</STRONG>.
  1683. A command to erase or blank the status line may be speci-
  1684. fied as <STRONG>dsl</STRONG>.
  1685. The boolean capability <STRONG>eslok</STRONG> specifies that escape
  1686. sequences, tabs, etc., work ordinarily in the status line.
  1687. The <STRONG>ncurses</STRONG> implementation does not yet use any of these
  1688. capabilities. They are documented here in case they ever
  1689. become important.
  1690. <STRONG>Line</STRONG> <STRONG>Graphics</STRONG>
  1691. Many terminals have alternate character sets useful for
  1692. forms-drawing. Terminfo and <STRONG>curses</STRONG> build in support for
  1693. the drawing characters supported by the VT100, with some
  1694. characters from the AT&amp;T 4410v1 added. This alternate
  1695. character set may be specified by the <STRONG>acsc</STRONG> capability.
  1696. <STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG>
  1697. <STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Name</STRONG>
  1698. UK pound sign ACS_STERLING f }
  1699. arrow pointing down ACS_DARROW v .
  1700. arrow pointing left ACS_LARROW &lt; ,
  1701. arrow pointing right ACS_RARROW &gt; +
  1702. arrow pointing up ACS_UARROW ^ -
  1703. board of squares ACS_BOARD # h
  1704. bullet ACS_BULLET o ~
  1705. checker board (stipple) ACS_CKBOARD : a
  1706. degree symbol ACS_DEGREE \ f
  1707. diamond ACS_DIAMOND + `
  1708. greater-than-or-equal-to ACS_GEQUAL &gt; z
  1709. greek pi ACS_PI * {
  1710. horizontal line ACS_HLINE - q
  1711. lantern symbol ACS_LANTERN # i
  1712. large plus or crossover ACS_PLUS + n
  1713. less-than-or-equal-to ACS_LEQUAL &lt; y
  1714. lower left corner ACS_LLCORNER + m
  1715. lower right corner ACS_LRCORNER + j
  1716. not-equal ACS_NEQUAL ! |
  1717. plus/minus ACS_PLMINUS # g
  1718. scan line 1 ACS_S1 ~ o
  1719. scan line 3 ACS_S3 - p
  1720. scan line 7 ACS_S7 - r
  1721. scan line 9 ACS_S9 _ s
  1722. solid square block ACS_BLOCK # 0
  1723. tee pointing down ACS_TTEE + w
  1724. tee pointing left ACS_RTEE + u
  1725. tee pointing right ACS_LTEE + t
  1726. tee pointing up ACS_BTEE + v
  1727. upper left corner ACS_ULCORNER + l
  1728. upper right corner ACS_URCORNER + k
  1729. vertical line ACS_VLINE | x
  1730. The best way to define a new device's graphics set is to
  1731. add a column to a copy of this table for your terminal,
  1732. giving the character which (when emitted between
  1733. <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond-
  1734. ing graphic. Then read off the VT100/your terminal char-
  1735. acter pairs right to left in sequence; these become the
  1736. ACSC string.
  1737. <STRONG>Color</STRONG> <STRONG>Handling</STRONG>
  1738. Most color terminals are either `Tektronix-like' or `HP-
  1739. like'. Tektronix-like terminals have a predefined set of
  1740. N colors (where N usually 8), and can set character-cell
  1741. foreground and background characters independently, mixing
  1742. them into N * N color-pairs. On HP-like terminals, the
  1743. use must set each color pair up separately (foreground and
  1744. background are not independently settable). Up to M
  1745. color-pairs may be set up from 2*M different colors.
  1746. ANSI-compatible terminals are Tektronix-like.
  1747. Some basic color capabilities are independent of the color
  1748. method. The numeric capabilities <STRONG>colors</STRONG> and <STRONG>pairs</STRONG> specify
  1749. the maximum numbers of colors and color-pairs that can be
  1750. displayed simultaneously. The <STRONG>op</STRONG> (original pair) string
  1751. resets foreground and background colors to their default
  1752. values for the terminal. The <STRONG>oc</STRONG> string resets all colors
  1753. or color-pairs to their default values for the terminal.
  1754. Some terminals (including many PC terminal emulators)
  1755. erase screen areas with the current background color
  1756. rather than the power-up default background; these should
  1757. have the boolean capability <STRONG>bce</STRONG>.
  1758. To change the current foreground or background color on a
  1759. Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground)
  1760. and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
  1761. and <STRONG>setb</STRONG> (set background). These take one parameter, the
  1762. color number. The SVr4 documentation describes only
  1763. <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that "If the terminal
  1764. supports ANSI escape sequences to set background and fore-
  1765. ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
  1766. tively. If the terminal supports other escape sequences
  1767. to set background and foreground, they should be coded as
  1768. <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and
  1769. the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are
  1770. defined."
  1771. The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single
  1772. numeric argument each. Argument values 0-7 of <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>
  1773. are portably defined as follows (the middle column is the
  1774. symbolic #define available in the header for the <STRONG>curses</STRONG> or
  1775. <STRONG>ncurses</STRONG> libraries). The terminal hardware is free to map
  1776. these as it likes, but the RGB values indicate normal
  1777. locations in color space.
  1778. <STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
  1779. black <STRONG>COLOR_BLACK</STRONG> 0 0, 0, 0
  1780. red <STRONG>COLOR_RED</STRONG> 1 max,0,0
  1781. green <STRONG>COLOR_GREEN</STRONG> 2 0,max,0
  1782. yellow <STRONG>COLOR_YELLOW</STRONG> 3 max,max,0
  1783. blue <STRONG>COLOR_BLUE</STRONG> 4 0,0,max
  1784. magenta <STRONG>COLOR_MAGENTA</STRONG> 5 max,0,max
  1785. cyan <STRONG>COLOR_CYAN</STRONG> 6 0,max,max
  1786. white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max
  1787. The argument values of <STRONG>setf</STRONG>/<STRONG>setb</STRONG> historically correspond
  1788. to a different mapping, i.e.,
  1789. <STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
  1790. black <STRONG>COLOR_BLACK</STRONG> 0 0, 0, 0
  1791. blue <STRONG>COLOR_BLUE</STRONG> 1 0,0,max
  1792. green <STRONG>COLOR_GREEN</STRONG> 2 0,max,0
  1793. cyan <STRONG>COLOR_CYAN</STRONG> 3 0,max,max
  1794. red <STRONG>COLOR_RED</STRONG> 4 max,0,0
  1795. magenta <STRONG>COLOR_MAGENTA</STRONG> 5 max,0,max
  1796. yellow <STRONG>COLOR_YELLOW</STRONG> 6 max,max,0
  1797. white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max
  1798. It is important to not confuse the two sets of color capa-
  1799. bilities; otherwise red/blue will be interchanged on the
  1800. display.
  1801. On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number
  1802. parameter to set which color pair is current.
  1803. On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be
  1804. present to indicate that colors can be modified. If so,
  1805. the <STRONG>initc</STRONG> capability will take a color number (0 to <STRONG>colors</STRONG>
  1806. - 1)and three more parameters which describe the color.
  1807. These three parameters default to being interpreted as RGB
  1808. (Red, Green, Blue) values. If the boolean capability <STRONG>hls</STRONG>
  1809. is present, they are instead as HLS (Hue, Lightness, Satu-
  1810. ration) indices. The ranges are terminal-dependent.
  1811. On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for
  1812. changing a color-pair value. It will take seven parame-
  1813. ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two
  1814. triples describing first background and then foreground
  1815. colors. These parameters must be (Red, Green, Blue) or
  1816. (Hue, Lightness, Saturation) depending on <STRONG>hls</STRONG>.
  1817. On some color terminals, colors collide with highlights.
  1818. You can register these collisions with the <STRONG>ncv</STRONG> capability.
  1819. This is a bit-mask of attributes not to be used when col-
  1820. ors are enabled. The correspondence with the attributes
  1821. understood by <STRONG>curses</STRONG> is as follows:
  1822. <STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG>
  1823. A_STANDOUT 0 1
  1824. A_UNDERLINE 1 2
  1825. A_REVERSE 2 4
  1826. A_BLINK 3 8
  1827. A_DIM 4 16
  1828. A_BOLD 5 32
  1829. A_INVIS 6 64
  1830. A_PROTECT 7 128
  1831. A_ALTCHARSET 8 256
  1832. For example, on many IBM PC consoles, the underline
  1833. attribute collides with the foreground color blue and is
  1834. not available in color mode. These should have an <STRONG>ncv</STRONG>
  1835. capability of 2.
  1836. SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it
  1837. and optimizes the output in favor of colors.
  1838. <STRONG>Miscellaneous</STRONG>
  1839. If the terminal requires other than a null (zero) charac-
  1840. ter as a pad, then this can be given as pad. Only the
  1841. first character of the pad string is used. If the termi-
  1842. nal does not have a pad character, specify npc. Note that
  1843. ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable;
  1844. though the application may set this value to something
  1845. other than a null, ncurses will test <STRONG>npc</STRONG> first and use
  1846. napms if the terminal has no pad character.
  1847. If the terminal can move up or down half a line, this can
  1848. be indicated with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line
  1849. down). This is primarily useful for superscripts and sub-
  1850. scripts on hard-copy terminals. If a hard-copy terminal
  1851. can eject to the next page (form feed), give this as <STRONG>ff</STRONG>
  1852. (usually control L).
  1853. If there is a command to repeat a given character a given
  1854. number of times (to save time transmitting a large number
  1855. of identical characters) this can be indicated with the
  1856. parameterized string <STRONG>rep</STRONG>. The first parameter is the
  1857. character to be repeated and the second is the number of
  1858. times to repeat it. Thus, tparm(repeat_char, 'x', 10) is
  1859. the same as `xxxxxxxxxx'.
  1860. If the terminal has a settable command character, such as
  1861. the TEKTRONIX 4025, this can be indicated with <STRONG>cmdch</STRONG>. A
  1862. prototype command character is chosen which is used in all
  1863. capabilities. This character is given in the <STRONG>cmdch</STRONG> capa-
  1864. bility to identify it. The following convention is sup-
  1865. ported on some UNIX systems: The environment is to be
  1866. searched for a <STRONG>CC</STRONG> variable, and if found, all occurrences
  1867. of the prototype character are replaced with the character
  1868. in the environment variable.
  1869. Terminal descriptions that do not represent a specific
  1870. kind of known terminal, such as <EM>switch</EM>, <EM>dialup</EM>, <EM>patch</EM>, and
  1871. <EM>network</EM>, should include the <STRONG>gn</STRONG> (generic) capability so
  1872. that programs can complain that they do not know how to
  1873. talk to the terminal. (This capability does not apply to
  1874. <EM>virtual</EM> terminal descriptions for which the escape
  1875. sequences are known.)
  1876. If the terminal has a ``meta key'' which acts as a shift
  1877. key, setting the 8th bit of any character transmitted,
  1878. this fact can be indicated with <STRONG>km</STRONG>. Otherwise, software
  1879. will assume that the 8th bit is parity and it will usually
  1880. be cleared. If strings exist to turn this ``meta mode''
  1881. on and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>.
  1882. If the terminal has more lines of memory than will fit on
  1883. the screen at once, the number of lines of memory can be
  1884. indicated with <STRONG>lm</STRONG>. A value of <STRONG>lm</STRONG>#0 indicates that the
  1885. number of lines is not fixed, but that there is still more
  1886. memory than fits on the screen.
  1887. If the terminal is one of those supported by the UNIX vir-
  1888. tual terminal protocol, the terminal number can be given
  1889. as <STRONG>vt</STRONG>.
  1890. Media copy strings which control an auxiliary printer con-
  1891. nected to the terminal can be given as <STRONG>mc0</STRONG>: print the con-
  1892. tents of the screen, <STRONG>mc4</STRONG>: turn off the printer, and <STRONG>mc5</STRONG>:
  1893. turn on the printer. When the printer is on, all text
  1894. sent to the terminal will be sent to the printer. It is
  1895. undefined whether the text is also displayed on the termi-
  1896. nal screen when the printer is on. A variation <STRONG>mc5p</STRONG> takes
  1897. one parameter, and leaves the printer on for as many char-
  1898. acters as the value of the parameter, then turns the
  1899. printer off. The parameter should not exceed 255. All
  1900. text, including <STRONG>mc4</STRONG>, is transparently passed to the
  1901. printer while an <STRONG>mc5p</STRONG> is in effect.
  1902. <STRONG>Glitches</STRONG> <STRONG>and</STRONG> <STRONG>Braindamage</STRONG>
  1903. Hazeltine terminals, which do not allow `~' characters to
  1904. be displayed should indicate <STRONG>hz</STRONG>.
  1905. Terminals which ignore a line-feed immediately after an <STRONG>am</STRONG>
  1906. wrap, such as the Concept and vt100, should indicate <STRONG>xenl</STRONG>.
  1907. If <STRONG>el</STRONG> is required to get rid of standout (instead of
  1908. merely writing normal text on top of it), <STRONG>xhp</STRONG> should be
  1909. given.
  1910. Teleray terminals, where tabs turn all characters moved
  1911. over to blanks, should indicate <STRONG>xt</STRONG> (destructive tabs).
  1912. Note: the variable indicating this is now
  1913. `dest_tabs_magic_smso'; in older versions, it was tel-
  1914. eray_glitch. This glitch is also taken to mean that it is
  1915. not possible to position the cursor on top of a ``magic
  1916. cookie'', that to erase standout mode it is instead neces-
  1917. sary to use delete and insert line. The ncurses implemen-
  1918. tation ignores this glitch.
  1919. The Beehive Superbee, which is unable to correctly trans-
  1920. mit the escape or control C characters, has <STRONG>xsb</STRONG>, indicat-
  1921. ing that the f1 key is used for escape and f2 for control
  1922. C. (Only certain Superbees have this problem, depending
  1923. on the ROM.) Note that in older terminfo versions, this
  1924. capability was called `beehive_glitch'; it is now
  1925. `no_esc_ctl_c'.
  1926. Other specific terminal problems may be corrected by
  1927. adding more capabilities of the form <STRONG>x</STRONG><EM>x</EM>.
  1928. <STRONG>Similar</STRONG> <STRONG>Terminals</STRONG>
  1929. If there are two very similar terminals, one (the variant)
  1930. can be defined as being just like the other (the base)
  1931. with certain exceptions. In the definition of the vari-
  1932. ant, the string capability <STRONG>use</STRONG> can be given with the name
  1933. of the base terminal. The capabilities given before <STRONG>use</STRONG>
  1934. override those in the base type named by <STRONG>use</STRONG>. If there
  1935. are multiple <STRONG>use</STRONG> capabilities, they are merged in reverse
  1936. order. That is, the rightmost <STRONG>use</STRONG> reference is processed
  1937. first, then the one to its left, and so forth. Capabili-
  1938. ties given explicitly in the entry override those brought
  1939. in by <STRONG>use</STRONG> references.
  1940. A capability can be canceled by placing <STRONG>xx@</STRONG> to the left of
  1941. the use reference that imports it, where <EM>xx</EM> is the capa-
  1942. bility. For example, the entry
  1943. 2621-nl, smkx@, rmkx@, use=2621,
  1944. defines a 2621-nl that does not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG>
  1945. capabilities, and hence does not turn on the function key
  1946. labels when in visual mode. This is useful for different
  1947. modes for a terminal, or for different user preferences.
  1948. <STRONG>Pitfalls</STRONG> <STRONG>of</STRONG> <STRONG>Long</STRONG> <STRONG>Entries</STRONG>
  1949. Long terminfo entries are unlikely to be a problem; to
  1950. date, no entry has even approached terminfo's 4096-byte
  1951. string-table maximum. Unfortunately, the termcap transla-
  1952. tions are much more strictly limited (to 1023 bytes), thus
  1953. termcap translations of long terminfo entries can cause
  1954. problems.
  1955. The man pages for 4.3BSD and older versions of <STRONG>tgetent()</STRONG>
  1956. instruct the user to allocate a 1024-byte buffer for the
  1957. termcap entry. The entry gets null-terminated by the
  1958. termcap library, so that makes the maximum safe length for
  1959. a termcap entry 1k-1 (1023) bytes. Depending on what the
  1960. application and the termcap library being used does, and
  1961. where in the termcap file the terminal type that <STRONG>tgetent()</STRONG>
  1962. is searching for is, several bad things can happen.
  1963. Some termcap libraries print a warning message or exit if
  1964. they find an entry that's longer than 1023 bytes; others
  1965. do not; others truncate the entries to 1023 bytes. Some
  1966. application programs allocate more than the recommended 1K
  1967. for the termcap entry; others do not.
  1968. Each termcap entry has two important sizes associated with
  1969. it: before "tc" expansion, and after "tc" expansion. "tc"
  1970. is the capability that tacks on another termcap entry to
  1971. the end of the current one, to add on its capabilities.
  1972. If a termcap entry does not use the "tc" capability, then
  1973. of course the two lengths are the same.
  1974. The "before tc expansion" length is the most important
  1975. one, because it affects more than just users of that par-
  1976. ticular terminal. This is the length of the entry as it
  1977. exists in /etc/termcap, minus the backslash-newline pairs,
  1978. which <STRONG>tgetent()</STRONG> strips out while reading it. Some termcap
  1979. libraries strip off the final newline, too (GNU termcap
  1980. does not). Now suppose:
  1981. * a termcap entry before expansion is more than 1023
  1982. bytes long,
  1983. * and the application has only allocated a 1k buffer,
  1984. * and the termcap library (like the one in BSD/OS 1.1
  1985. and GNU) reads the whole entry into the buffer, no
  1986. matter what its length, to see if it is the entry it
  1987. wants,
  1988. * and <STRONG>tgetent()</STRONG> is searching for a terminal type that
  1989. either is the long entry, appears in the termcap file
  1990. after the long entry, or does not appear in the file
  1991. at all (so that <STRONG>tgetent()</STRONG> has to search the whole
  1992. termcap file).
  1993. Then <STRONG>tgetent()</STRONG> will overwrite memory, perhaps its stack,
  1994. and probably core dump the program. Programs like telnet
  1995. are particularly vulnerable; modern telnets pass along
  1996. values like the terminal type automatically. The results
  1997. are almost as undesirable with a termcap library, like
  1998. SunOS 4.1.3 and Ultrix 4.4, that prints warning messages
  1999. when it reads an overly long termcap entry. If a termcap
  2000. library truncates long entries, like OSF/1 3.0, it is
  2001. immune to dying here but will return incorrect data for
  2002. the terminal.
  2003. The "after tc expansion" length will have a similar effect
  2004. to the above, but only for people who actually set TERM to
  2005. that terminal type, since <STRONG>tgetent()</STRONG> only does "tc" expan-
  2006. sion once it is found the terminal type it was looking
  2007. for, not while searching.
  2008. In summary, a termcap entry that is longer than 1023 bytes
  2009. can cause, on various combinations of termcap libraries
  2010. and applications, a core dump, warnings, or incorrect
  2011. operation. If it is too long even before "tc" expansion,
  2012. it will have this effect even for users of some other ter-
  2013. minal types and users whose TERM variable does not have a
  2014. termcap entry.
  2015. When in -C (translate to termcap) mode, the <STRONG>ncurses</STRONG> imple-
  2016. mentation of <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> issues warning messages when the pre-
  2017. tc length of a termcap translation is too long. The -c
  2018. (check) option also checks resolved (after tc expansion)
  2019. lengths.
  2020. <STRONG>Binary</STRONG> <STRONG>Compatibility</STRONG>
  2021. It is not wise to count on portability of binary terminfo
  2022. entries between commercial UNIX versions. The problem is
  2023. that there are at least two versions of terminfo (under
  2024. HP-UX and AIX) which diverged from System V terminfo after
  2025. SVr1, and have added extension capabilities to the string
  2026. table that (in the binary format) collide with System V
  2027. and XSI Curses extensions.
  2028. </PRE>
  2029. <H2>EXTENSIONS</H2><PRE>
  2030. Some SVr4 <STRONG>curses</STRONG> implementations, and all previous to
  2031. SVr4, do not interpret the %A and %O operators in parame-
  2032. ter strings.
  2033. SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses movement
  2034. while in an alternate-character-set mode (such modes may,
  2035. among other things, map CR and NL to characters that do
  2036. not trigger local motions). The <STRONG>ncurses</STRONG> implementation
  2037. ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises the possi-
  2038. bility that an XPG4 implementation making the opposite
  2039. interpretation may need terminfo entries made for <STRONG>ncurses</STRONG>
  2040. to have <STRONG>msgr</STRONG> turned off.
  2041. The <STRONG>ncurses</STRONG> library handles insert-character and insert-
  2042. character modes in a slightly non-standard way to get bet-
  2043. ter update efficiency. See the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
  2044. subsection above.
  2045. The parameter substitutions for <STRONG>set_clock</STRONG> and <STRONG>dis-</STRONG>
  2046. <STRONG>play_clock</STRONG> are not documented in SVr4 or the XSI Curses
  2047. standard. They are deduced from the documentation for the
  2048. AT&amp;T 505 terminal.
  2049. Be careful assigning the <STRONG>kmous</STRONG> capability. The <STRONG>ncurses</STRONG>
  2050. wants to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals
  2051. and emulators like xterm that can return mouse-tracking
  2052. information in the keyboard-input stream.
  2053. Different commercial ports of terminfo and curses support
  2054. different subsets of the XSI Curses standard and (in some
  2055. cases) different extension sets. Here is a summary, accu-
  2056. rate as of October 1995:
  2057. <STRONG>SVR4,</STRONG> <STRONG>Solaris,</STRONG> <STRONG>ncurses</STRONG> -- These support all SVr4 capabili-
  2058. ties.
  2059. <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented
  2060. extended string capability (<STRONG>set_pglen</STRONG>).
  2061. <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of ter-
  2062. minfo capabilities. The booleans end with <STRONG>xon_xoff</STRONG>; the
  2063. numerics with <STRONG>width_status_line</STRONG>; and the strings with
  2064. <STRONG>prtr_non</STRONG>.
  2065. <STRONG>HP/UX</STRONG> -- Supports the SVr1 subset, plus the SVr[234]
  2066. numerics <STRONG>num_labels</STRONG>, <STRONG>label_height</STRONG>, <STRONG>label_width</STRONG>, plus func-
  2067. tion keys 11 through 63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and
  2068. <STRONG>label_off</STRONG>, plus some incompatible extensions in the string
  2069. table.
  2070. <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11
  2071. through 63, plus a number of incompatible string table
  2072. extensions.
  2073. <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
  2074. </PRE>
  2075. <H2>FILES</H2><PRE>
  2076. /usr/share/terminfo/?/* files containing terminal
  2077. descriptions
  2078. </PRE>
  2079. <H2>SEE ALSO</H2><PRE>
  2080. <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
  2081. </PRE>
  2082. <H2>AUTHORS</H2><PRE>
  2083. Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
  2084. Based on pcurses by Pavel Curtis.
  2085. <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
  2086. </PRE>
  2087. <HR>
  2088. <ADDRESS>
  2089. Man(1) output converted with
  2090. <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
  2091. </ADDRESS>
  2092. </BODY>
  2093. </HTML>