This commit was generated by cvs2svn to compensate for changes in r6453,
[chise/xemacs-chise.git.1] / info / termcap.info-3
1 This is Info file ../info/termcap.info, produced by Makeinfo version
2 1.68 from the input file termcap.texi.
3
4 START-INFO-DIR-ENTRY
5 * Termcap: (termcap).           Termcap library of the GNU system.
6 END-INFO-DIR-ENTRY
7
8    This file documents the termcap library of the GNU system.
9
10    Copyright (C) 1988 Free Software Foundation, Inc.
11
12    Permission is granted to make and distribute verbatim copies of this
13 manual provided the copyright notice and this permission notice are
14 preserved on all copies.
15
16    Permission is granted to copy and distribute modified versions of
17 this manual under the conditions for verbatim copying, provided that
18 the entire resulting derived work is distributed under the terms of a
19 permission notice identical to this one.
20
21    Permission is granted to copy and distribute translations of this
22 manual into another language, under the above conditions for modified
23 versions, except that this permission notice may be stated in a
24 translation approved by the Foundation.
25
26 \1f
27 File: termcap.info,  Node: Standout,  Next: Underlining,  Prev: Insdel Char,  Up: Capabilities
28
29 Standout and Appearance Modes
30 =============================
31
32    "Appearance modes" are modifications to the ways characters are
33 displayed.  Typical appearance modes include reverse video, dim, bright,
34 blinking, underlined, invisible, and alternate character set.  Each
35 kind of terminal supports various among these, or perhaps none.
36
37    For each type of terminal, one appearance mode or combination of
38 them that looks good for highlighted text is chosen as the "standout
39 mode".  The capabilities `so' and `se' say how to enter and leave
40 standout mode.  Programs that use appearance modes only to highlight
41 some text generally use the standout mode so that they can work on as
42 many terminals as possible.  Use of specific appearance modes other
43 than "underlined" and "alternate character set" is rare.
44
45    Terminals that implement appearance modes fall into two general
46 classes as to how they do it.
47
48    In some terminals, the presence or absence of any appearance mode is
49 recorded separately for each character position.  In these terminals,
50 each graphic character written is given the appearance modes current at
51 the time it is written, and keeps those modes until it is erased or
52 overwritten.  There are special commands to turn the appearance modes
53 on or off for characters to be written in the future.
54
55    In other terminals, the change of appearance modes is represented by
56 a marker that belongs to a certain screen position but affects all
57 following screen positions until the next marker.  These markers are
58 traditionally called "magic cookies".
59
60    The same capabilities (`so', `se', `mb' and so on) for turning
61 appearance modes on and off are used for both magic-cookie terminals
62 and per-character terminals.  On magic cookie terminals, these give the
63 commands to write the magic cookies.  On per-character terminals, they
64 change the current modes that affect future output and erasure.  Some
65 simple applications can use these commands without knowing whether or
66 not they work by means of cookies.
67
68    However, a program that maintains and updates a display needs to know
69 whether the terminal uses magic cookies, and exactly what their effect
70 is.  This information comes from the `sg' capability.
71
72    The `sg' capability is a numeric capability whose presence indicates
73 that the terminal uses magic cookies for appearance modes.  Its value is
74 the number of character positions that a magic cookie occupies.  Usually
75 the cookie occupies one or more character positions on the screen, and
76 these character positions are displayed as blank, but in some terminals
77 the cookie has zero width.
78
79    The `sg' capability describes both the magic cookie to turn standout
80 on and the cookie to turn it off.  This makes the assumption that both
81 kinds of cookie have the same width on the screen.  If that is not true,
82 the narrower cookie must be "widened" with spaces until it has the same
83 width as the other.
84
85    On some magic cookie terminals, each line always starts with normal
86 display; in other words, the scope of a magic cookie never extends over
87 more than one line.  But on other terminals, one magic cookie affects
88 all the lines below it unless explicitly canceled.  Termcap does not
89 define any way to distinguish these two ways magic cookies can work.
90 To be safe, it is best to put a cookie at the beginning of each line.
91
92    On some per-character terminals, standout mode or other appearance
93 modes may be canceled by moving the cursor.  On others, moving the
94 cursor has no effect on the state of the appearance modes.  The latter
95 class of terminals are given the flag capability `ms' ("can move in
96 standout").  All programs that might have occasion to move the cursor
97 while appearance modes are turned on must check for this flag; if it is
98 not present, they should reset appearance modes to normal before doing
99 cursor motion.
100
101    A program that has turned on only standout mode should use `se' to
102 reset the standout mode to normal.  A program that has turned on only
103 alternate character set mode should use `ae' to return it to normal.
104 If it is possible that any other appearance modes are turned on, use the
105 `me' capability to return them to normal.
106
107    Note that the commands to turn on one appearance mode, including `so'
108 and `mb' ... `mr', if used while some other appearance modes are turned
109 on, may combine the two modes on some terminals but may turn off the
110 mode previously enabled on other terminals.  This is because some
111 terminals do not have a command to set or clear one appearance mode
112 without changing the others.  Programs should not attempt to use
113 appearance modes in combination except with `sa', and when switching
114 from one single mode to another should always turn off the previously
115 enabled mode and then turn on the new desired mode.
116
117    On some old terminals, the `so' and `se' commands may be the same
118 command, which has the effect of turning standout on if it is off, or
119 off it is on.  It is therefore risky for a program to output extra `se'
120 commands for good measure.  Fortunately, all these terminals are
121 obsolete.
122
123    Programs that update displays in which standout-text may be replaced
124 with non-standout text must check for the `xs' flag.  In a per-character
125 terminal, this flag says that the only way to remove standout once
126 written is to clear that portion of the line with the `ce' string or
127 something even more powerful (*note Clearing::.); just writing new
128 characters at those screen positions will not change the modes in
129 effect there.  In a magic cookie terminal, `xs' says that the only way
130 to remove a cookie is to clear a portion of the line that includes the
131 cookie; writing a different cookie at the same position does not work.
132
133    Such programs must also check for the `xt' flag, which means that the
134 terminal is a Teleray 1061.  On this terminal it is impossible to
135 position the cursor at the front of a magic cookie, so the only two
136 ways to remove a cookie are (1) to delete the line it is on or (2) to
137 position the cursor at least one character before it (possibly on a
138 previous line) and output the `se' string, which on these terminals
139 finds and removes the next `so' magic cookie on the screen.  (It may
140 also be possible to remove a cookie which is not at the beginning of a
141 line by clearing that line.)  The `xt' capability also has implications
142 for the use of tab characters, but in that regard it is obsolete (*note
143 Cursor Motion::.).
144
145 `so'
146      String of commands to enter standout mode.
147
148 `se'
149      String of commands to leave standout mode.
150
151 `sg'
152      Numeric capability, the width on the screen of the magic cookie.
153      This capability is absent in terminals that record appearance modes
154      character by character.
155
156 `ms'
157      Flag whose presence means that it is safe to move the cursor while
158      the appearance modes are not in the normal state.  If this flag is
159      absent, programs should always reset the appearance modes to
160      normal before moving the cursor.
161
162 `xs'
163      Flag whose presence means that the only way to reset appearance
164      modes already on the screen is to clear to end of line.  On a
165      per-character terminal, you must clear the area where the modes
166      are set.  On a magic cookie terminal, you must clear an area
167      containing the cookie.  See the discussion above.
168
169 `xt'
170      Flag whose presence means that the cursor cannot be positioned
171      right in front of a magic cookie, and that `se' is a command to
172      delete the next magic cookie following the cursor.  See discussion
173      above.
174
175 `mb'
176      String of commands to enter blinking mode.
177
178 `md'
179      String of commands to enter double-bright mode.
180
181 `mh'
182      String of commands to enter half-bright mode.
183
184 `mk'
185      String of commands to enter invisible mode.
186
187 `mp'
188      String of commands to enter protected mode.
189
190 `mr'
191      String of commands to enter reverse-video mode.
192
193 `me'
194      String of commands to turn off all appearance modes, including
195      standout mode and underline mode.  On some terminals it also turns
196      off alternate character set mode; on others, it may not.  This
197      capability must be present if any of `mb' ... `mr' is present.
198
199 `as'
200      String of commands to turn on alternate character set mode.  This
201      mode assigns some or all graphic characters an alternate picture
202      on the screen.  There is no standard as to what the alternate
203      pictures look like.
204
205 `ae'
206      String of commands to turn off alternate character set mode.
207
208 `sa'
209      String of commands to turn on an arbitrary combination of
210      appearance modes.  It accepts 9 parameters, each of which controls
211      a particular kind of appearance mode.  A parameter should be 1 to
212      turn its appearance mode on, or zero to turn that mode off.  Most
213      terminals do not support the `sa' capability, even among those
214      that do have various appearance modes.
215
216      The nine parameters are, in order, STANDOUT, UNDERLINE, REVERSE,
217      BLINK, HALF-BRIGHT, DOUBLE-BRIGHT, BLANK, PROTECT, ALT CHAR SET.
218
219 \1f
220 File: termcap.info,  Node: Underlining,  Next: Cursor Visibility,  Prev: Standout,  Up: Capabilities
221
222 Underlining
223 ===========
224
225    Underlining on most terminals is a kind of appearance mode, much like
226 standout mode.  Therefore, it may be implemented using magic cookies or
227 as a flag in the terminal whose current state affects each character
228 that is output.  *Note Standout::, for a full explanation.
229
230    The `ug' capability is a numeric capability whose presence indicates
231 that the terminal uses magic cookies for underlining.  Its value is the
232 number of character positions that a magic cookie for underlining
233 occupies; it is used for underlining just as `sg' is used for standout.
234 Aside from the simplest applications, it is impossible to use
235 underlining correctly without paying attention to the value of `ug'.
236
237 `us'
238      String of commands to turn on underline mode or to output a magic
239      cookie to start underlining.
240
241 `ue'
242      String of commands to turn off underline mode or to output a magic
243      cookie to stop underlining.
244
245 `ug'
246      Width of magic cookie that represents a change of underline mode;
247      or missing, if the terminal does not use a magic cookie for this.
248
249 `ms'
250      Flag whose presence means that it is safe to move the cursor while
251      the appearance modes are not in the normal state.  Underlining is
252      an appearance mode.  If this flag is absent, programs should
253      always turn off underlining before moving the cursor.
254
255    There are two other, older ways of doing underlining: there can be a
256 command to underline a single character, or the output of `_', the
257 ASCII underscore character, as an overstrike could cause a character to
258 be underlined.  New programs need not bother to handle these
259 capabilities unless the author cares strongly about the obscure
260 terminals which support them.  However, terminal descriptions should
261 provide these capabilities when appropriate.
262
263 `uc'
264      String of commands to underline the character under the cursor, and
265      move the cursor right.
266
267 `ul'
268      Flag whose presence means that the terminal can underline by
269      overstriking an underscore character (`_'); some terminals can do
270      this even though they do not support overstriking in general.  An
271      implication of this flag is that when outputting new text to
272      overwrite old text, underscore characters must be treated
273      specially lest they underline the old text instead.
274
275 \1f
276 File: termcap.info,  Node: Cursor Visibility,  Next: Bell,  Prev: Underlining,  Up: Capabilities
277
278 Cursor Visibility
279 =================
280
281    Some terminals have the ability to make the cursor invisible, or to
282 enhance it.  Enhancing the cursor is often done by programs that plan
283 to use the cursor to indicate to the user a position of interest that
284 may be anywhere on the screen--for example, the Emacs editor enhances
285 the cursor on entry.  Such programs should always restore the cursor to
286 normal on exit.
287
288 `vs'
289      String of commands to enhance the cursor.
290
291 `vi'
292      String of commands to make the cursor invisible.
293
294 `ve'
295      String of commands to return the cursor to normal.
296
297    If you define either `vs' or `vi', you must also define `ve'.
298
299 \1f
300 File: termcap.info,  Node: Bell,  Next: Keypad,  Prev: Cursor Visibility,  Up: Capabilities
301
302 Bell
303 ====
304
305    Here we describe commands to make the terminal ask for the user to
306 pay attention to it.
307
308 `bl'
309      String of commands to cause the terminal to make an audible sound.
310      If this capability is absent, the terminal has no way to make a
311      suitable sound.
312
313 `vb'
314      String of commands to cause the screen to flash to attract
315      attention ("visible bell").  If this capability is absent, the
316      terminal has no way to do such a thing.
317
318 \1f
319 File: termcap.info,  Node: Keypad,  Next: Meta Key,  Prev: Bell,  Up: Capabilities
320
321 Keypad and Function Keys
322 ========================
323
324    Many terminals have arrow and function keys that transmit specific
325 character sequences to the computer.  Since the precise sequences used
326 depend on the terminal, termcap defines capabilities used to say what
327 the sequences are.  Unlike most termcap string-valued capabilities,
328 these are not strings of commands to be sent to the terminal, rather
329 strings that are received from the terminal.
330
331    Programs that expect to use keypad keys should check, initially, for
332 a `ks' capability and send it, to make the keypad actually transmit.
333 Such programs should also send the `ke' string when exiting.
334
335 `ks'
336      String of commands to make the function keys transmit.  If this
337      capability is not provided, but the others in this section are,
338      programs may assume that the function keys always transmit.
339
340 `ke'
341      String of commands to make the function keys work locally.  This
342      capability is provided only if `ks' is.
343
344 `kl'
345      String of input characters sent by typing the left-arrow key.  If
346      this capability is missing, you cannot expect the terminal to have
347      a left-arrow key that transmits anything to the computer.
348
349 `kr'
350      String of input characters sent by typing the right-arrow key.
351
352 `ku'
353      String of input characters sent by typing the up-arrow key.
354
355 `kd'
356      String of input characters sent by typing the down-arrow key.
357
358 `kh'
359      String of input characters sent by typing the "home-position" key.
360
361 `K1' ... `K5'
362      Strings of input characters sent by the five other keys in a 3-by-3
363      array that includes the arrow keys, if the keyboard has such a
364      3-by-3 array.  Note that one of these keys may be the
365      "home-position" key, in which case one of these capabilities will
366      have the same value as the `kh' key.
367
368 `k0'
369      String of input characters sent by function key 10 (or 0, if the
370      terminal has one labeled 0).
371
372 `k1' ... `k9'
373      Strings of input characters sent by function keys 1 through 9,
374      provided for those function keys that exist.
375
376 `kn'
377      Number: the number of numbered function keys, if there are more
378      than 10.
379
380 `l0' ... `l9'
381      Strings which are the labels appearing on the keyboard on the keys
382      described by the capabilities `k0' ... `l9'.  These capabilities
383      should be left undefined if the labels are `f0' or `f10' and `f1'
384      ... `f9'.
385
386 `kH'
387      String of input characters sent by the "home down" key, if there is
388      one.
389
390 `kb'
391      String of input characters sent by the "backspace" key, if there is
392      one.
393
394 `ka'
395      String of input characters sent by the "clear all tabs" key, if
396      there is one.
397
398 `kt'
399      String of input characters sent by the "clear tab stop this column"
400      key, if there is one.
401
402 `kC'
403      String of input characters sent by the "clear screen" key, if
404      there is one.
405
406 `kD'
407      String of input characters sent by the "delete character" key, if
408      there is one.
409
410 `kL'
411      String of input characters sent by the "delete line" key, if there
412      is one.
413
414 `kM'
415      String of input characters sent by the "exit insert mode" key, if
416      there is one.
417
418 `kE'
419      String of input characters sent by the "clear to end of line" key,
420      if there is one.
421
422 `kS'
423      String of input characters sent by the "clear to end of screen"
424      key, if there is one.
425
426 `kI'
427      String of input characters sent by the "insert character" or "enter
428      insert mode" key, if there is one.
429
430 `kA'
431      String of input characters sent by the "insert line" key, if there
432      is one.
433
434 `kN'
435      String of input characters sent by the "next page" key, if there is
436      one.
437
438 `kP'
439      String of input characters sent by the "previous page" key, if
440      there is one.
441
442 `kF'
443      String of input characters sent by the "scroll forward" key, if
444      there is one.
445
446 `kR'
447      String of input characters sent by the "scroll reverse" key, if
448      there is one.
449
450 `kT'
451      String of input characters sent by the "set tab stop in this
452      column" key, if there is one.
453
454 `ko'
455      String listing the other function keys the terminal has.  This is a
456      very obsolete way of describing the same information found in the
457      `kH' ... `kT' keys.  The string contains a list of two-character
458      termcap capability names, separated by commas.  The meaning is
459      that for each capability name listed, the terminal has a key which
460      sends the string which is the value of that capability.  For
461      example, the value `:ko=cl,ll,sf,sr:' says that the terminal has
462      four function keys which mean "clear screen", "home down", "scroll
463      forward" and "scroll reverse".
464
465 \1f
466 File: termcap.info,  Node: Meta Key,  Next: Initialization,  Prev: Keypad,  Up: Capabilities
467
468 Meta Key
469 ========
470
471    A Meta key is a key on the keyboard that modifies each character you
472 type by controlling the 0200 bit.  This bit is on if and only if the
473 Meta key is held down when the character is typed.  Characters typed
474 using the Meta key are called Meta characters.  Emacs uses Meta
475 characters as editing commands.
476
477 `km'
478      Flag whose presence means that the terminal has a Meta key.
479
480 `mm'
481      String of commands to enable the functioning of the Meta key.
482
483 `mo'
484      String of commands to disable the functioning of the Meta key.
485
486    If the terminal has `km' but does not have `mm' and `mo', it means
487 that the Meta key always functions.  If it has `mm' and `mo', it means
488 that the Meta key can be turned on or off.  Send the `mm' string to
489 turn it on, and the `mo' string to turn it off.  I do not know why one
490 would ever not want it to be on.
491
492 \1f
493 File: termcap.info,  Node: Initialization,  Next: Pad Specs,  Prev: Meta Key,  Up: Capabilities
494
495 Initialization
496 ==============
497
498 `ti'
499      String of commands to put the terminal into whatever special modes
500      are needed or appropriate for programs that move the cursor
501      nonsequentially around the screen.  Programs that use termcap to do
502      full-screen display should output this string when they start up.
503
504 `te'
505      String of commands to undo what is done by the `ti' string.
506      Programs that output the `ti' string on entry should output this
507      string when they exit.
508
509 `is'
510      String of commands to initialize the terminal for each login
511      session.
512
513 `if'
514      String which is the name of a file containing the string of
515      commands to initialize the terminal for each session of use.
516      Normally `is' and `if' are not both used.
517
518 `i1'
519 `i3'
520      Two more strings of commands to initialize the terminal for each
521      login session.  The `i1' string (if defined) is output before `is'
522      or `if', and the `i3' string (if defined) is output after.
523
524      The reason for having three separate initialization strings is to
525      make it easier to define a group of related terminal types with
526      slightly different initializations.  Define two or three of the
527      strings in the basic type; then the other types can override one
528      or two of the strings.
529
530 `rs'
531      String of commands to reset the terminal from any strange mode it
532      may be in.  Normally this includes the `is' string (or other
533      commands with the same effects) and more.  What would go in the
534      `rs' string but not in the `is' string are annoying or slow
535      commands to bring the terminal back from strange modes that nobody
536      would normally use.
537
538 `it'
539      Numeric value, the initial spacing between hardware tab stop
540      columns when the terminal is powered up.  Programs to initialize
541      the terminal can use this to decide whether there is a need to set
542      the tab stops.  If the initial width is 8, well and good; if it is
543      not 8, then the tab stops should be set; if they cannot be set,
544      the kernel is told to convert tabs to spaces, and other programs
545      will observe this and do likewise.
546
547 `ct'
548      String of commands to clear all tab stops.
549
550 `st'
551      String of commands to set tab stop at current cursor column on all
552      lines.
553
554 \1f
555 File: termcap.info,  Node: Pad Specs,  Next: Status Line,  Prev: Initialization,  Up: Capabilities
556
557 Padding Capabilities
558 ====================
559
560    There are two terminal capabilities that exist just to explain the
561 proper way to obey the padding specifications in all the command string
562 capabilities.  One, `pc', must be obeyed by all termcap-using programs.
563
564 `pb'
565      Numeric value, the lowest baud rate at which padding is actually
566      needed.  Programs may check this and refrain from doing any
567      padding at lower speeds.
568
569 `pc'
570      String of commands for padding.  The first character of this
571      string is to be used as the pad character, instead of using null
572      characters for padding.  If `pc' is not provided, use null
573      characters.  Every program that uses termcap must look up this
574      capability and use it to set the variable `PC' that is used by
575      `tputs'.  *Note Padding::.
576
577    Some termcap capabilities exist just to specify the amount of
578 padding that the kernel should give to cursor motion commands used in
579 ordinary sequential output.
580
581 `dC'
582      Numeric value, the number of msec of padding needed for the
583      carriage-return character.
584
585 `dN'
586      Numeric value, the number of msec of padding needed for the newline
587      (linefeed) character.
588
589 `dB'
590      Numeric value, the number of msec of padding needed for the
591      backspace character.
592
593 `dF'
594      Numeric value, the number of msec of padding needed for the
595      formfeed character.
596
597 `dT'
598      Numeric value, the number of msec of padding needed for the tab
599      character.
600
601    In some systems, the kernel uses the above capabilities; in other
602 systems, the kernel uses the paddings specified in the string
603 capabilities `cr', `sf', `le', `ff' and `ta'.  Descriptions of
604 terminals which require such padding should contain the `dC' ...  `dT'
605 capabilities and also specify the appropriate padding in the
606 corresponding string capabilities.  Since no modern terminals require
607 padding for ordinary sequential output, you probably won't need to do
608 either of these things.
609
610 \1f
611 File: termcap.info,  Node: Status Line,  Next: Half-Line,  Prev: Pad Specs,  Up: Capabilities
612
613 Status Line
614 ===========
615
616    A "status line" is a line on the terminal that is not used for
617 ordinary display output but instead used for a special message.  The
618 intended use is for a continuously updated description of what the
619 user's program is doing, and that is where the name "status line" comes
620 from, but in fact it could be used for anything.  The distinguishing
621 characteristic of a status line is that ordinary output to the terminal
622 does not affect it; it changes only if the special status line commands
623 of this section are used.
624
625 `hs'
626      Flag whose presence means that the terminal has a status line.  If
627      a terminal description specifies that there is a status line, it
628      must provide the `ts' and `fs' capabilities.
629
630 `ts'
631      String of commands to move the terminal cursor into the status
632      line.  Usually these commands must specifically record the old
633      cursor position for the sake of the `fs' string.
634
635 `fs'
636      String of commands to move the cursor back from the status line to
637      its previous position (outside the status line).
638
639 `es'
640      Flag whose presence means that other display commands work while
641      writing the status line.  In other words, one can clear parts of
642      it, insert or delete characters, move the cursor within it using
643      `ch' if there is a `ch' capability, enter and leave standout mode,
644      and so on.
645
646 `ds'
647      String of commands to disable the display of the status line.  This
648      may be absent, if there is no way to disable the status line
649      display.
650
651 `ws'
652      Numeric value, the width of the status line.  If this capability is
653      absent in a terminal that has a status line, it means the status
654      line is the same width as the other lines.
655
656      Note that the value of `ws' is sometimes as small as 8.
657
658 \1f
659 File: termcap.info,  Node: Half-Line,  Next: Printer,  Prev: Status Line,  Up: Capabilities
660
661 Half-Line Motion
662 ================
663
664    Some terminals have commands for moving the cursor vertically by
665 half-lines, useful for outputting subscripts and superscripts.  Mostly
666 it is hardcopy terminals that have such features.
667
668 `hu'
669      String of commands to move the cursor up half a line.  If the
670      terminal is a display, it is your responsibility to avoid moving
671      up past the top line; however, most likely the terminal that
672      supports this is a hardcopy terminal and there is nothing to be
673      concerned about.
674
675 `hd'
676      String of commands to move the cursor down half a line.  If the
677      terminal is a display, it is your responsibility to avoid moving
678      down past the bottom line, etc.
679
680 \1f
681 File: termcap.info,  Node: Printer,  Prev: Half-Line,  Up: Capabilities
682
683 Controlling Printers Attached to Terminals
684 ==========================================
685
686    Some terminals have attached hardcopy printer ports.  They may be
687 able to copy the screen contents to the printer; they may also be able
688 to redirect output to the printer.  Termcap does not have anything to
689 tell the program whether the redirected output appears also on the
690 screen; it does on some terminals but not all.
691
692 `ps'
693      String of commands to cause the contents of the screen to be
694      printed.  If it is absent, the screen contents cannot be printed.
695
696 `po'
697      String of commands to redirect further output to the printer.
698
699 `pf'
700      String of commands to terminate redirection of output to the
701      printer.  This capability must be present in the description if
702      `po' is.
703
704 `pO'
705      String of commands to redirect output to the printer for next N
706      characters of output, regardless of what they are.  Redirection
707      will end automatically after N characters of further output.  Until
708      then, nothing that is output can end redirection, not even the
709      `pf' string if there is one.  The number N should not be more than
710      255.
711
712      One use of this capability is to send non-text byte sequences
713      (such as bit-maps) to the printer.
714
715    Most terminals with printers do not support all of `ps', `po' and
716 `pO'; any one or two of them may be supported.  To make a program that
717 can send output to all kinds of printers, it is necessary to check for
718 all three of these capabilities, choose the most convenient of the ones
719 that are provided, and use it in its own appropriate fashion.
720
721 \1f
722 File: termcap.info,  Node: Summary,  Next: Var Index,  Prev: Capabilities,  Up: Top
723
724 Summary of Capability Names
725 ***************************
726
727    Here are all the terminal capability names in alphabetical order
728 with a brief description of each.  For cross references to their
729 definitions, see the index of capability names (*note Cap Index::.).
730
731 `ae'
732      String to turn off alternate character set mode.
733
734 `al'
735      String to insert a blank line before the cursor.
736
737 `AL'
738      String to insert N blank lines before the cursor.
739
740 `am'
741      Flag: output to last column wraps cursor to next line.
742
743 `as'
744      String to turn on alternate character set mode.like.
745
746 `bc'
747      Very obsolete alternative name for the `le' capability.
748
749 `bl'
750      String to sound the bell.
751
752 `bs'
753      Obsolete flag: ASCII backspace may be used for leftward motion.
754
755 `bt'
756      String to move the cursor left to the previous hardware tab stop
757      column.
758
759 `bw'
760      Flag: `le' at left margin wraps to end of previous line.
761
762 `CC'
763      String to change terminal's command character.
764
765 `cd'
766      String to clear the line the cursor is on, and following lines.
767
768 `ce'
769      String to clear from the cursor to the end of the line.
770
771 `ch'
772      String to position the cursor at column C in the same line.
773
774 `cl'
775      String to clear the entire screen and put cursor at upper left
776      corner.
777
778 `cm'
779      String to position the cursor at line L, column C.
780
781 `CM'
782      String to position the cursor at line L, column C, relative to
783      display memory.
784
785 `co'
786      Number: width of the screen.
787
788 `cr'
789      String to move cursor sideways to left margin.
790
791 `cs'
792      String to set the scroll region.
793
794 `cS'
795      Alternate form of string to set the scroll region.
796
797 `ct'
798      String to clear all tab stops.
799
800 `cv'
801      String to position the cursor at line L in the same column.
802
803 `da'
804      Flag: data scrolled off top of screen may be scrolled back.
805
806 `db'
807      Flag: data scrolled off bottom of screen may be scrolled back.
808
809 `dB'
810      Obsolete number: msec of padding needed for the backspace
811      character.
812
813 `dc'
814      String to delete one character position at the cursor.
815
816 `dC'
817      Obsolete number: msec of padding needed for the carriage-return
818      character.
819
820 `DC'
821      String to delete N characters starting at the cursor.
822
823 `dF'
824      Obsolete number: msec of padding needed for the formfeed character.
825
826 `dl'
827      String to delete the line the cursor is on.
828
829 `DL'
830      String to delete N lines starting with the cursor's line.
831
832 `dm'
833      String to enter delete mode.
834
835 `dN'
836      Obsolete number: msec of padding needed for the newline character.
837
838 `do'
839      String to move the cursor vertically down one line.
840
841 `DO'
842      String to move cursor vertically down N lines.
843
844 `ds'
845      String to disable the display of the status line.
846
847 `dT'
848      Obsolete number: msec of padding needed for the tab character.
849
850 `ec'
851      String of commands to clear N characters at cursor.
852
853 `ed'
854      String to exit delete mode.
855
856 `ei'
857      String to leave insert mode.
858
859 `eo'
860      Flag: output of a space can erase an overstrike.
861
862 `es'
863      Flag: other display commands work while writing the status line.
864
865 `ff'
866      String to advance to the next page, for a hardcopy terminal.
867
868 `fs'
869      String to move the cursor back from the status line to its
870      previous position (outside the status line).
871
872 `gn'
873      Flag: this terminal type is generic, not real.
874
875 `hc'
876      Flag: hardcopy terminal.
877
878 `hd'
879      String to move the cursor down half a line.
880
881 `ho'
882      String to position cursor at upper left corner.
883
884 `hs'
885      Flag: the terminal has a status line.
886
887 `hu'
888      String to move the cursor up half a line.
889
890 `hz'
891      Flag: terminal cannot accept `~' as output.
892
893 `i1'
894      String to initialize the terminal for each login session.
895
896 `i3'
897      String to initialize the terminal for each login session.
898
899 `ic'
900      String to insert one character position at the cursor.
901
902 `IC'
903      String to insert N character positions at the cursor.
904
905 `if'
906      String naming a file of commands to initialize the terminal.
907
908 `im'
909      String to enter insert mode.
910
911 `in'
912      Flag: outputting a space is different from moving over empty
913      positions.
914
915 `ip'
916      String to output following an inserted character in insert mode.
917
918 `is'
919      String to initialize the terminal for each login session.
920
921 `it'
922      Number: initial spacing between hardware tab stop columns.
923
924 `k0'
925      String of input sent by function key 0 or 10.
926
927 `k1 ... k9'
928      Strings of input sent by function keys 1 through 9.
929
930 `K1 ... K5'
931      Strings sent by the five other keys in 3-by-3 array with arrows.
932
933 `ka'
934      String of input sent by the "clear all tabs" key.
935
936 `kA'
937      String of input sent by the "insert line" key.
938
939 `kb'
940      String of input sent by the "backspace" key.
941
942 `kC'
943      String of input sent by the "clear screen" key.
944
945 `kd'
946      String of input sent by typing the down-arrow key.
947
948 `kD'
949      String of input sent by the "delete character" key.
950
951 `ke'
952      String to make the function keys work locally.
953
954 `kE'
955      String of input sent by the "clear to end of line" key.
956
957 `kF'
958      String of input sent by the "scroll forward" key.
959
960 `kh'
961      String of input sent by typing the "home-position" key.
962
963 `kH'
964      String of input sent by the "home down" key.
965
966 `kI'
967      String of input sent by the "insert character" or "enter insert
968      mode" key.
969
970 `kl'
971      String of input sent by typing the left-arrow key.
972
973 `kL'
974      String of input sent by the "delete line" key.
975
976 `km'
977      Flag: the terminal has a Meta key.
978
979 `kM'
980      String of input sent by the "exit insert mode" key.
981
982 `kn'
983      Numeric value, the number of numbered function keys.
984
985 `kN'
986      String of input sent by the "next page" key.
987
988 `ko'
989      Very obsolete string listing the terminal's named function keys.
990
991 `kP'
992      String of input sent by the "previous page" key.
993
994 `kr'
995      String of input sent by typing the right-arrow key.
996
997 `kR'
998      String of input sent by the "scroll reverse" key.
999
1000 `ks'
1001      String to make the function keys transmit.
1002
1003 `kS'
1004      String of input sent by the "clear to end of screen" key.
1005
1006 `kt'
1007      String of input sent by the "clear tab stop this column" key.
1008
1009 `kT'
1010      String of input sent by the "set tab stop in this column" key.
1011
1012 `ku'
1013      String of input sent by typing the up-arrow key.
1014
1015 `l0'
1016      String on keyboard labelling function key 0 or 10.
1017
1018 `l1 ... l9'
1019      Strings on keyboard labelling function keys 1 through 9.
1020
1021 `le'
1022      String to move the cursor left one column.
1023
1024 `LE'
1025      String to move cursor left N columns.
1026
1027 `li'
1028      Number: height of the screen.
1029
1030 `ll'
1031      String to position cursor at lower left corner.
1032
1033 `lm'
1034      Number: lines of display memory.
1035
1036 `mb'
1037      String to enter blinking mode.
1038
1039 `md'
1040      String to enter double-bright mode.
1041
1042 `me'
1043      String to turn off all appearance modes
1044
1045 `mh'
1046      String to enter half-bright mode.
1047
1048 `mi'
1049      Flag: cursor motion in insert mode is safe.
1050
1051 `mk'
1052      String to enter invisible mode.
1053
1054 `mm'
1055      String to enable the functioning of the Meta key.
1056
1057 `mo'
1058      String to disable the functioning of the Meta key.
1059
1060 `mp'
1061      String to enter protected mode.
1062
1063 `mr'
1064      String to enter reverse-video mode.
1065
1066 `ms'
1067      Flag: cursor motion in standout mode is safe.
1068
1069 `nc'
1070      Obsolete flag: do not use ASCII carriage-return on this terminal.
1071
1072 `nd'
1073      String to move the cursor right one column.
1074
1075 `nl'
1076      Obsolete alternative name for the `do' and `sf' capabilities.
1077
1078 `ns'
1079      Flag: the terminal does not normally scroll for sequential output.
1080
1081 `nw'
1082      String to move to start of next line, possibly clearing rest of
1083      old line.
1084
1085 `os'
1086      Flag: terminal can overstrike.
1087
1088 `pb'
1089      Number: the lowest baud rate at which padding is actually needed.
1090
1091 `pc'
1092      String containing character for padding.
1093
1094 `pf'
1095      String to terminate redirection of output to the printer.
1096
1097 `po'
1098      String to redirect further output to the printer.
1099
1100 `pO'
1101      String to redirect N characters ofoutput to the printer.
1102
1103 `ps'
1104      String to print the screen on the attached printer.
1105
1106 `rc'
1107      String to move to last saved cursor position.
1108
1109 `RI'
1110      String to move cursor right N columns.
1111
1112 `rp'
1113      String to output character C repeated N times.
1114
1115 `rs'
1116      String to reset the terminal from any strange modes.
1117
1118 `sa'
1119      String to turn on an arbitrary combination of appearance modes.
1120
1121 `sc'
1122      String to save the current cursor position.
1123
1124 `se'
1125      String to leave standout mode.
1126
1127 `sf'
1128      String to scroll the screen one line up.
1129
1130 `SF'
1131      String to scroll the screen N lines up.
1132
1133 `sg'
1134      Number: width of magic standout cookie.  Absent if magic cookies
1135      are not used.
1136
1137 `so'
1138      String to enter standout mode.
1139
1140 `sr'
1141      String to scroll the screen one line down.
1142
1143 `SR'
1144      String to scroll the screen N line down.
1145
1146 `st'
1147      String to set tab stop at current cursor column on all lines.
1148      programs.
1149
1150 `ta'
1151      String to move the cursor right to the next hardware tab stop
1152      column.
1153
1154 `te'
1155      String to return terminal to settings for sequential output.
1156
1157 `ti'
1158      String to initialize terminal for random cursor motion.
1159
1160 `ts'
1161      String to move the terminal cursor into the status line.
1162
1163 `uc'
1164      String to underline one character and move cursor right.
1165
1166 `ue'
1167      String to turn off underline mode
1168
1169 `ug'
1170      Number: width of underlining magic cookie.  Absent if underlining
1171      doesn't use magic cookies.
1172
1173 `ul'
1174      Flag: underline by overstriking with an underscore.
1175
1176 `up'
1177      String to move the cursor vertically up one line.
1178
1179 `UP'
1180      String to move cursor vertically up N lines.
1181
1182 `us'
1183      String to turn on underline mode
1184
1185 `vb'
1186      String to make the screen flash.
1187
1188 `ve'
1189      String to return the cursor to normal.
1190
1191 `vi'
1192      String to make the cursor invisible.
1193
1194 `vs'
1195      String to enhance the cursor.
1196
1197 `wi'
1198      String to set the terminal output screen window.
1199
1200 `ws'
1201      Number: the width of the status line.
1202
1203 `xb'
1204      Flag: superbee terminal.
1205
1206 `xn'
1207      Flag: cursor wraps in a strange way.
1208
1209 `xs'
1210      Flag: clearing a line is the only way to clear the appearance
1211      modes of positions in that line (or, only way to remove magic
1212      cookies on that line).
1213
1214 `xt'
1215      Flag: Teleray 1061; several strange characteristics.
1216
1217 \1f
1218 File: termcap.info,  Node: Var Index,  Next: Cap Index,  Prev: Summary,  Up: Top
1219
1220 Variable and Function Index
1221 ***************************
1222
1223 * Menu:
1224
1225 * BC:                                    tgoto.
1226 * ospeed:                                Output Padding.
1227 * PC:                                    Output Padding.
1228 * tgetent:                               Find.
1229 * tgetflag:                              Interrogate.
1230 * tgetnum:                               Interrogate.
1231 * tgetstr:                               Interrogate.
1232 * tgoto:                                 tgoto.
1233 * tparam:                                tparam.
1234 * tputs:                                 Output Padding.
1235 * UP:                                    tgoto.
1236
1237 \1f
1238 File: termcap.info,  Node: Cap Index,  Next: Index,  Prev: Var Index,  Up: Top
1239
1240 Capability Index
1241 ****************
1242
1243 * Menu:
1244
1245 * ae:                                    Standout.
1246 * AL:                                    Insdel Line.
1247 * al:                                    Insdel Line.
1248 * am:                                    Wrapping.
1249 * as:                                    Standout.
1250 * bc:                                    Cursor Motion.
1251 * bl:                                    Bell.
1252 * bs:                                    Cursor Motion.
1253 * bt:                                    Cursor Motion.
1254 * bw:                                    Cursor Motion.
1255 * CC:                                    Basic.
1256 * cd:                                    Clearing.
1257 * ce:                                    Clearing.
1258 * ch:                                    Cursor Motion.
1259 * cl:                                    Clearing.
1260 * cm:                                    Cursor Motion.
1261 * CM:                                    Cursor Motion.
1262 * co:                                    Screen Size.
1263 * cr:                                    Cursor Motion.
1264 * cS:                                    Scrolling.
1265 * cs:                                    Scrolling.
1266 * ct:                                    Initialization.
1267 * cv:                                    Cursor Motion.
1268 * da:                                    Scrolling.
1269 * dB:                                    Pad Specs.
1270 * db:                                    Scrolling.
1271 * dC:                                    Pad Specs.
1272 * DC:                                    Insdel Char.
1273 * dc:                                    Insdel Char.
1274 * dF:                                    Pad Specs.
1275 * DL:                                    Insdel Line.
1276 * dl:                                    Insdel Line.
1277 * dm:                                    Insdel Char.
1278 * dN:                                    Pad Specs.
1279 * DO:                                    Cursor Motion.
1280 * do:                                    Cursor Motion.
1281 * ds:                                    Status Line.
1282 * dT:                                    Pad Specs.
1283 * ec:                                    Clearing.
1284 * ed:                                    Insdel Char.
1285 * ei:                                    Insdel Char.
1286 * eo:                                    Basic.
1287 * es:                                    Status Line.
1288 * ff:                                    Cursor Motion.
1289 * fs:                                    Status Line.
1290 * gn:                                    Basic.
1291 * hc:                                    Basic.
1292 * hd:                                    Half-Line.
1293 * ho:                                    Cursor Motion.
1294 * hs:                                    Status Line.
1295 * hu:                                    Half-Line.
1296 * hz:                                    Basic.
1297 * i1:                                    Initialization.
1298 * i3:                                    Initialization.
1299 * IC:                                    Insdel Char.
1300 * ic:                                    Insdel Char.
1301 * if:                                    Initialization.
1302 * im:                                    Insdel Char.
1303 * in:                                    Insdel Char.
1304 * ip:                                    Insdel Char.
1305 * is:                                    Initialization.
1306 * it:                                    Initialization.
1307 * K1...K5:                               Keypad.
1308 * k1...k9:                               Keypad.
1309 * kA...kT:                               Keypad.
1310 * ka...ku:                               Keypad.
1311 * km:                                    Meta Key.
1312 * l0...l9:                               Keypad.
1313 * le:                                    Cursor Motion.
1314 * LE:                                    Cursor Motion.
1315 * li:                                    Screen Size.
1316 * ll:                                    Cursor Motion.
1317 * lm:                                    Scrolling.
1318 * mb:                                    Standout.
1319 * md:                                    Standout.
1320 * me:                                    Standout.
1321 * mh:                                    Standout.
1322 * mi:                                    Insdel Char.
1323 * mk:                                    Standout.
1324 * mm:                                    Meta Key.
1325 * mo:                                    Meta Key.
1326 * mp:                                    Standout.
1327 * mr:                                    Standout.
1328 * ms <1>:                                Standout.
1329 * ms:                                    Underlining.
1330 * nc:                                    Cursor Motion.
1331 * nd:                                    Cursor Motion.
1332 * nl:                                    Cursor Motion.
1333 * ns:                                    Scrolling.
1334 * nw:                                    Cursor Motion.
1335 * os:                                    Basic.
1336 * pb:                                    Pad Specs.
1337 * pc:                                    Pad Specs.
1338 * pf:                                    Printer.
1339 * pO:                                    Printer.
1340 * po:                                    Printer.
1341 * ps:                                    Printer.
1342 * rc:                                    Cursor Motion.
1343 * RI:                                    Cursor Motion.
1344 * rp:                                    Basic.
1345 * rs:                                    Initialization.
1346 * sa:                                    Standout.
1347 * sc:                                    Cursor Motion.
1348 * se:                                    Standout.
1349 * sf:                                    Scrolling.
1350 * SF:                                    Scrolling.
1351 * sg:                                    Standout.
1352 * so:                                    Standout.
1353 * sr:                                    Scrolling.
1354 * SR:                                    Scrolling.
1355 * st:                                    Initialization.
1356 * ta:                                    Cursor Motion.
1357 * te:                                    Initialization.
1358 * ti:                                    Initialization.
1359 * ts:                                    Status Line.
1360 * uc:                                    Underlining.
1361 * ue:                                    Underlining.
1362 * ug:                                    Underlining.
1363 * ul:                                    Underlining.
1364 * up:                                    Cursor Motion.
1365 * UP:                                    Cursor Motion.
1366 * us:                                    Underlining.
1367 * vb:                                    Bell.
1368 * ve:                                    Cursor Visibility.
1369 * vi:                                    Cursor Visibility.
1370 * vs:                                    Cursor Visibility.
1371 * wi:                                    Windows.
1372 * ws:                                    Status Line.
1373 * xb:                                    Basic.
1374 * xn:                                    Wrapping.
1375 * xs:                                    Standout.
1376 * xt <1>:                                Cursor Motion.
1377 * xt:                                    Standout.
1378
1379 \1f
1380 File: termcap.info,  Node: Index,  Prev: Cap Index,  Up: Top
1381
1382 Concept Index
1383 *************
1384
1385 * Menu:
1386
1387 * %:                                     Encode Parameters.
1388 * appearance modes:                      Standout.
1389 * bell:                                  Bell.
1390 * clearing the screen:                   Clearing.
1391 * command character:                     Basic.
1392 * cursor motion:                         Cursor Motion.
1393 * delete character:                      Insdel Char.
1394 * delete line:                           Insdel Line.
1395 * delete mode:                           Insdel Char.
1396 * description format:                    Format.
1397 * erasing:                               Clearing.
1398 * generic terminal type:                 Basic.
1399 * home position:                         Cursor Motion.
1400 * inheritance:                           Inheriting.
1401 * initialization:                        Initialization.
1402 * insert character:                      Insdel Char.
1403 * insert line:                           Insdel Line.
1404 * insert mode:                           Insdel Char.
1405 * line speed:                            Output Padding.
1406 * magic cookie:                          Standout.
1407 * meta key:                              Meta Key.
1408 * names of terminal types:               Naming.
1409 * overstrike:                            Basic.
1410 * padding <1>:                           Padding.
1411 * padding:                               Pad Specs.
1412 * parameters:                            Parameters.
1413 * printer:                               Printer.
1414 * repeat output:                         Basic.
1415 * reset:                                 Initialization.
1416 * screen size <1>:                       Screen Size.
1417 * screen size:                           Naming.
1418 * scrolling:                             Scrolling.
1419 * standout:                              Standout.
1420 * status line:                           Status Line.
1421 * Superbee:                              Basic.
1422 * tab stops:                             Initialization.
1423 * termcap:                               Introduction.
1424 * terminal flags (kernel):               Initialize.
1425 * underlining:                           Underlining.
1426 * visibility:                            Cursor Visibility.
1427 * visible bell:                          Bell.
1428 * window:                                Windows.
1429 * wrapping <1>:                          Naming.
1430 * wrapping:                              Wrapping.
1431
1432