Terminal++ 3.1.0.4
A C++ library for interacting with ANSI terminal windows
Loading...
Searching...
No Matches
control_characters.hpp
1#pragma once
2
3#include "terminalpp/detail/ascii.hpp"
4
5namespace terminalpp::ansi {
6
7//* =========================================================================
10//* =========================================================================
11namespace control7 {
12
13// clang-format off
14// Full code for enabling 7-bit control mode.
15inline constexpr byte enable[] = { terminalpp::detail::ascii::esc,
16 terminalpp::detail::ascii::space,
17 terminalpp::detail::ascii::uppercase_f };
18
19// The following codes are all prefixes for command groups.
20
21// Index
22inline constexpr byte ind[] = { terminalpp::detail::ascii::esc,
23 terminalpp::detail::ascii::uppercase_d };
24// Next Line
25inline constexpr byte nel[] = { terminalpp::detail::ascii::esc,
26 terminalpp::detail::ascii::uppercase_e };
27// Horizontal Tab Set
28inline constexpr byte hts[] = { terminalpp::detail::ascii::esc,
29 terminalpp::detail::ascii::uppercase_h };
30// Reverse Index
31inline constexpr byte ri[] = { terminalpp::detail::ascii::esc,
32 terminalpp::detail::ascii::uppercase_m };
33// Single Shift Select of G2 Charset (next character only)
34inline constexpr byte ss2[] = { terminalpp::detail::ascii::esc,
35 terminalpp::detail::ascii::uppercase_n };
36// Single Shift Select of G3 Charset (next character only)
37inline constexpr byte ss3[] = { terminalpp::detail::ascii::esc,
38 terminalpp::detail::ascii::uppercase_o };
39// Device Control String
40inline constexpr byte dcs[] = { terminalpp::detail::ascii::esc,
41 terminalpp::detail::ascii::uppercase_p };
42// Start of Protected Area
43inline constexpr byte spa[] = { terminalpp::detail::ascii::esc,
44 terminalpp::detail::ascii::uppercase_v };
45// End of Protected Area
46inline constexpr byte epa[] = { terminalpp::detail::ascii::esc,
47 terminalpp::detail::ascii::uppercase_w };
48// Start of String
49inline constexpr byte sos[] = { terminalpp::detail::ascii::esc,
50 terminalpp::detail::ascii::uppercase_x };
51// Return Terminal ID (obsolete)
52inline constexpr byte decid[] = { terminalpp::detail::ascii::esc,
53 terminalpp::detail::ascii::uppercase_z };
54// Control Sequence Introducer
55inline constexpr byte csi[] = { terminalpp::detail::ascii::esc,
56 terminalpp::detail::ascii::open_bracket };
57// String Terminator
58inline constexpr byte st[] = { terminalpp::detail::ascii::esc,
59 terminalpp::detail::ascii::backslash };
60// Operating System Command
61inline constexpr byte osc[] = { terminalpp::detail::ascii::esc,
62 terminalpp::detail::ascii::close_bracket };
63// Privacy Message
64inline constexpr byte pm[] = { terminalpp::detail::ascii::esc,
65 terminalpp::detail::ascii::caret };
66// Application Program Command
67inline constexpr byte apc[] = { terminalpp::detail::ascii::esc,
68 terminalpp::detail::ascii::underscore };
69} // namespace control7
70
71//* =========================================================================
74//* =========================================================================
75namespace control8 {
76
77// Full command for enabling 8-bit control mode.
78inline constexpr byte enable[] = { terminalpp::detail::ascii::esc,
79 terminalpp::detail::ascii::space,
80 terminalpp::detail::ascii::uppercase_g };
81
82// As above, the following codes are all prefixes for command groups.
83// They have the same meaning, but a shorter representation. However, only
84// some terminals support them.
85
86inline constexpr byte ind = 0x84;
87inline constexpr byte nel = 0x85;
88inline constexpr byte hts = 0x88;
89inline constexpr byte ri = 0x8D;
90inline constexpr byte ss2 = 0x8E;
91inline constexpr byte ss3 = 0x8F;
92inline constexpr byte dcs = 0x90;
93inline constexpr byte spa = 0x96;
94inline constexpr byte epa = 0x97;
95inline constexpr byte sos = 0x98;
96inline constexpr byte decid = 0x9A;
97inline constexpr byte csi = 0x9B;
98inline constexpr byte st = 0x9C;
99inline constexpr byte osc = 0x9D;
100inline constexpr byte pm = 0x9E;
101inline constexpr byte apc = 0x9F;
102// clang-format off
103
104} // namespace control8
105} // namespace terminalpp::ansi
Low-level ANSI terminal constants and operations.
Definition charset.hpp:6