1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
impl_enum! {
/// Boolean capabilities.
#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash, Ord, PartialOrd)]
#[repr(usize)]
#[non_exhaustive]
pub enum Boolean {
/// `bw`: `cub1` wraps from column 0 to last column
AutoLeftMargin => ("bw", "auto_left_margin"),
/// `am`: Terminal has automatic margins
AutoRightMargin => ("am", "auto_right_margin"),
/// `xsb`: Beehive (F1 = Escape, F2 = Ctrl-C)
NoEscCtlc => ("xsb", "no_esc_ctlc"),
/// `xhp`: Standout not erased by overwriting (hp)
CeolStandoutGlitch => ("xhp", "ceol_standout_glitch"),
/// `xenl`: Newline ignored after 80 columns (Concept)
EatNewlineGlitch => ("xenl", "eat_newline_glitch"),
/// `eo`: Can erase overstrikes with a \<blank\>
EraseOverstrike => ("eo", "erase_overstrike"),
/// `gn`: Generic line type (e.g. dialup, switch)
GenericType => ("gn", "generic_type"),
/// `hc`: Hardcopy terminal
HardCopy => ("hc", "hard_copy"),
/// `km`: Has a meta key (shift, sets parity bit)
HasMetaKey => ("km", "has_meta_key"),
/// `hs`: Has extra "status line"
HasStatusLine => ("hs", "has_status_line"),
/// `in`: Insert mode distinguishes nulls
InsertNullGlitch => ("in", "insert_null_glitch"),
/// `da`: Display may be retained above the screen
MemoryAbove => ("da", "memory_above"),
/// `db`: Display may be retained below the screen
MemoryBelow => ("db", "memory_below"),
/// `mir`: Safe to move while in insert mode
MoveInsertMode => ("mir", "move_insert_mode"),
/// `msgr`: Safe to move in standout modes
MoveStandoutMode => ("msgr", "move_standout_mode"),
/// `os`: Terminal overstrikes on hard-copy terminal
OverStrike => ("os", "over_strike"),
/// `eslok`: Escape can be used on the status line
StatusLineEscOk => ("eslok", "status_line_esc_ok"),
/// `xt`: Destructive tabs, magic `smso` char (t1061)
DestTabsMagicSmso => ("xt", "dest_tabs_magic_smso"),
/// `hz`: Hazeltine; can't print tilde (~)
TildeGlitch => ("hz", "tilde_glitch"),
/// `ul`: Underline character overstrikes
TransparentUnderline => ("ul", "transparent_underline"),
/// `xon`: Terminal uses xon/xoff handshaking
XonXoff => ("xon", "xon_xoff"),
/// `nxon`: Padding won' work, xon/xoff required
NeedsXonXoff => ("nxon", "needs_xon_xoff"),
/// `mc5i`: Printer won't echo on screen
PrtrSilent => ("mc5i", "prtr_silent"),
/// `chts`: Cursor is hard to see
HardCursor => ("chts", "hard_cursor"),
/// `nrrmc`: `smcup` does not reverse `rmcup`
NonRevRmcup => ("nrrmc", "non_rev_rmcup"),
/// `npc`: Pad character doesn' exist
NoPadChar => ("npc", "no_pad_char"),
/// `ndscr`: Scrolling region is non-destructive
NonDestScrollRegion => ("ndscr", "non_dest_scroll_region"),
/// `ccc`: Terminal can redefine existing color
CanChange => ("ccc", "can_change"),
/// `bce`: Screen erased with background color
BackColorErase => ("bce", "back_color_erase"),
/// `hls`: Terminal uses only HLS color notation (Tektronix)
HueLightnessSaturation => ("hls", "hue_lightness_saturation"),
/// `xhpa`: Only positive motion for `hpa`/`mhpa` caps
ColAddrGlitch => ("xhpa", "col_addr_glitch"),
/// `crxm`: Using `cr` turns off micro mode
CrCancelsMicroMode => ("crxm", "cr_cancels_micro_mode"),
/// `daisy`: Printer needs operator to change character set
HasPrintWheel => ("daisy", "has_print_wheel"),
/// `xvpa`: Only positive motion for `vpa`/`mvpa` caps
RowAddrGlitch => ("xvpa", "row_addr_glitch"),
/// `sam`: Printing in last column causes `cr`
SemiAutoRightMargin => ("sam", "semi_auto_right_margin"),
/// `cpix`: Changing character pitch changes resolution
CpiChangesRes => ("cpix", "cpi_changes_res"),
/// `lpix`: Changing line pitch changes resolution
LpiChangesRes => ("lpix", "lpi_changes_res"),
}
}