1/*
2 * Dropbear - a SSH2 server
3 *
4 * Copyright (c) 2002,2003 Matt Johnston
5 * All rights reserved.
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal
9 * in the Software without restriction, including without limitation the rights
10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 * copies of the Software, and to permit persons to whom the Software is
12 * furnished to do so, subject to the following conditions:
13 *
14 * The above copyright notice and this permission notice shall be included in
15 * all copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 * SOFTWARE. */
24
25#include "includes.h"
26#include "termcodes.h"
27
28const struct TermCode termcodes[MAX_TERMCODE+1] = {
29
30		{0, 0}, /* TTY_OP_END */
31		{VINTR, TERMCODE_CONTROLCHAR}, /* control character codes */
32		{VQUIT, TERMCODE_CONTROLCHAR},
33		{VERASE, TERMCODE_CONTROLCHAR},
34		{VKILL, TERMCODE_CONTROLCHAR},
35		{VEOF, TERMCODE_CONTROLCHAR},
36		{VEOL, TERMCODE_CONTROLCHAR},
37		{VEOL2, TERMCODE_CONTROLCHAR},
38		{VSTART, TERMCODE_CONTROLCHAR},
39		{VSTOP, TERMCODE_CONTROLCHAR},
40		{VSUSP, TERMCODE_CONTROLCHAR},
41#ifdef VDSUSP
42		{VDSUSP, TERMCODE_CONTROLCHAR},
43#else
44		{0, 0},
45#endif
46#ifdef VREPRINT
47		{VREPRINT, TERMCODE_CONTROLCHAR},
48#else
49		{0, 0},
50#endif
51#ifdef AIX
52		{CERASE, TERMCODE_CONTROLCHAR},
53#else
54		{VWERASE, TERMCODE_CONTROLCHAR},
55#endif
56		{VLNEXT, TERMCODE_CONTROLCHAR},
57#ifdef VFLUSH
58		{VFLUSH, TERMCODE_CONTROLCHAR},
59#else
60		{0, 0},
61#endif
62#ifdef VSWTCH
63		{VSWTCH, TERMCODE_CONTROLCHAR},
64#else
65		{0, 0},
66#endif
67#ifdef VSTATUS
68		{VSTATUS, TERMCODE_CONTROLCHAR},
69#else
70		{0, 0},
71#endif
72#ifdef AIX
73		{CKILL, TERMCODE_CONTROLCHAR},
74#elif defined(VDISCARD)
75		{VDISCARD, TERMCODE_CONTROLCHAR},
76#else
77		{0, 0},
78#endif
79		{0, 0}, /* 19 */
80		{0, 0},
81		{0, 0},
82		{0, 0},
83		{0, 0},
84		{0, 0},
85		{0, 0},
86		{0, 0},
87		{0, 0},
88		{0, 0},
89		{0, 0}, /* 29 */
90		{IGNPAR, TERMCODE_INPUT}, /* input flags */
91		{PARMRK, TERMCODE_INPUT},
92		{INPCK, TERMCODE_INPUT},
93		{ISTRIP, TERMCODE_INPUT},
94		{INLCR, TERMCODE_INPUT},
95		{IGNCR, TERMCODE_INPUT},
96		{ICRNL, TERMCODE_INPUT},
97#ifdef IUCLC
98		{IUCLC, TERMCODE_INPUT},
99#else
100		{0, 0},
101#endif
102		{IXON, TERMCODE_INPUT},
103		{IXANY, TERMCODE_INPUT},
104		{IXOFF, TERMCODE_INPUT},
105#ifdef IMAXBEL
106		{IMAXBEL, TERMCODE_INPUT},
107#else
108		{0, 0},
109#endif
110		{0, 0}, /* 42 */
111		{0, 0},
112		{0, 0},
113		{0, 0},
114		{0, 0},
115		{0, 0},
116		{0, 0},
117		{0, 0}, /* 49 */
118		{ISIG, TERMCODE_LOCAL}, /* local flags */
119		{ICANON, TERMCODE_LOCAL},
120#ifdef XCASE
121		{XCASE, TERMCODE_LOCAL},
122#else
123		{0, 0},
124#endif
125		{ECHO, TERMCODE_LOCAL},
126		{ECHOE, TERMCODE_LOCAL},
127		{ECHOK, TERMCODE_LOCAL},
128		{ECHONL, TERMCODE_LOCAL},
129		{NOFLSH, TERMCODE_LOCAL},
130		{TOSTOP, TERMCODE_LOCAL},
131		{IEXTEN, TERMCODE_LOCAL},
132		{ECHOCTL, TERMCODE_LOCAL},
133		{ECHOKE, TERMCODE_LOCAL},
134#ifdef PENDIN
135		{PENDIN, TERMCODE_LOCAL},
136#else
137		{0, 0},
138#endif
139		{0, 0}, /* 63 */
140		{0, 0},
141		{0, 0},
142		{0, 0},
143		{0, 0},
144		{0, 0},
145		{0, 0}, /* 69 */
146		{OPOST, TERMCODE_OUTPUT}, /* output flags */
147#ifdef OLCUC
148		{OLCUC, TERMCODE_OUTPUT},
149#else
150		{0, 0},
151#endif
152		{ONLCR, TERMCODE_OUTPUT},
153#ifdef OCRNL
154		{OCRNL, TERMCODE_OUTPUT},
155#else
156		{0, 0},
157#endif
158#ifdef ONOCR
159		{ONOCR, TERMCODE_OUTPUT},
160#else
161		{0, 0},
162#endif
163#ifdef ONLRET
164		{ONLRET, TERMCODE_OUTPUT},
165#else
166		{0, 0},
167#endif
168		{0, 0}, /* 76 */
169		{0, 0},
170		{0, 0},
171		{0, 0},
172		{0, 0},
173		{0, 0},
174		{0, 0},
175		{0, 0},
176		{0, 0},
177		{0, 0},
178		{0, 0},
179		{0, 0},
180		{0, 0},
181		{0, 0}, /* 89 */
182		{CS7, TERMCODE_CONTROL},
183		{CS8, TERMCODE_CONTROL},
184		{PARENB, TERMCODE_CONTROL},
185		{PARODD, TERMCODE_CONTROL}
186		/* 94 */
187};
188