package fixing
[profile/ivi/xterm.git] / VTparse.h
1 /* $XTermId: VTparse.h,v 1.53 2010/08/24 21:27:13 tom Exp $ */
2
3 /*
4  * Copyright 2002-2009,2010 by Thomas E. Dickey
5  *
6  *                         All Rights Reserved
7  *
8  * Permission is hereby granted, free of charge, to any person obtaining a
9  * copy of this software and associated documentation files (the
10  * "Software"), to deal in the Software without restriction, including
11  * without limitation the rights to use, copy, modify, merge, publish,
12  * distribute, sublicense, and/or sell copies of the Software, and to
13  * permit persons to whom the Software is furnished to do so, subject to
14  * the following conditions:
15  *
16  * The above copyright notice and this permission notice shall be included
17  * in all copies or substantial portions of the Software.
18  *
19  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22  * IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
23  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
24  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
25  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26  *
27  * Except as contained in this notice, the name(s) of the above copyright
28  * holders shall not be used in advertising or otherwise to promote the
29  * sale, use or other dealings in this Software without prior written
30  * authorization.
31  *
32  *
33  * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
34  *
35  *                         All Rights Reserved
36  *
37  * Permission to use, copy, modify, and distribute this software and its
38  * documentation for any purpose and without fee is hereby granted,
39  * provided that the above copyright notice appear in all copies and that
40  * both that copyright notice and this permission notice appear in
41  * supporting documentation, and that the name of Digital Equipment
42  * Corporation not be used in advertising or publicity pertaining to
43  * distribution of the software without specific, written prior permission.
44  *
45  *
46  * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
47  * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
48  * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
49  * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
50  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
51  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
52  * SOFTWARE.
53  */
54
55 #ifndef included_VTparse_h
56 #define included_VTparse_h 1
57
58 #include <xterm.h>
59
60 #ifndef Const
61 # if defined(__STDC__) && !defined(__cplusplus)
62 #  define Const const
63 # else
64 #  define Const /**/
65 # endif
66 #endif
67
68 /*
69  * PARSE_T has to be large enough to handle the number of cases enumerated here.
70  */
71 typedef unsigned char PARSE_T;
72
73 extern Const PARSE_T ansi_table[];
74 extern Const PARSE_T cigtable[];
75 extern Const PARSE_T csi2_table[];
76 extern Const PARSE_T csi_ex_table[];
77 extern Const PARSE_T csi_quo_table[];
78 extern Const PARSE_T csi_sp_table[];
79 extern Const PARSE_T csi_table[];
80 extern Const PARSE_T dec2_table[];
81 extern Const PARSE_T dec3_table[];
82 extern Const PARSE_T dec_table[];
83 extern Const PARSE_T eigtable[];
84 extern Const PARSE_T esc_sp_table[];
85 extern Const PARSE_T esc_table[];
86 extern Const PARSE_T scrtable[];
87 extern Const PARSE_T scs96table[];
88 extern Const PARSE_T scstable[];
89 extern Const PARSE_T sos_table[];
90 extern Const PARSE_T csi_dec_dollar_table[];
91
92 #if OPT_DEC_LOCATOR
93 extern Const PARSE_T csi_tick_table[];
94 #endif  /* OPT_DEC_LOCATOR */
95
96 #if OPT_DEC_RECTOPS
97 extern Const PARSE_T csi_dollar_table[];
98 extern Const PARSE_T csi_star_table[];
99 #endif  /* OPT_DEC_LOCATOR */
100
101 #if OPT_VT52_MODE
102 extern Const PARSE_T vt52_table[];
103 extern Const PARSE_T vt52_esc_table[];
104 extern Const PARSE_T vt52_ignore_table[];
105 #endif
106
107 #if OPT_WIDE_CHARS
108 extern Const PARSE_T esc_pct_table[];
109 #endif
110
111 /*
112  * The following list of definitions is generated from VTparse.def using the
113  * following command line:
114  *
115  *     grep '^CASE_' VTparse.def | awk '{printf "#define %s %d\n", $1, n++}'
116  *
117  * If you need to change something, change VTparse.def and regenerate the
118  * definitions.  This would have been automatic, but since this doesn't change
119  * very often, it isn't worth the makefile hassle.
120  */
121
122 #define CASE_GROUND_STATE 0
123 #define CASE_IGNORE 1
124 #define CASE_BELL 2
125 #define CASE_BS 3
126 #define CASE_CR 4
127 #define CASE_ESC 5
128 #define CASE_VMOT 6
129 #define CASE_TAB 7
130 #define CASE_SI 8
131 #define CASE_SO 9
132 #define CASE_SCR_STATE 10
133 #define CASE_SCS0_STATE 11
134 #define CASE_SCS1_STATE 12
135 #define CASE_SCS2_STATE 13
136 #define CASE_SCS3_STATE 14
137 #define CASE_ESC_IGNORE 15
138 #define CASE_ESC_DIGIT 16
139 #define CASE_ESC_SEMI 17
140 #define CASE_DEC_STATE 18
141 #define CASE_ICH 19
142 #define CASE_CUU 20
143 #define CASE_CUD 21
144 #define CASE_CUF 22
145 #define CASE_CUB 23
146 #define CASE_CUP 24
147 #define CASE_ED 25
148 #define CASE_EL 26
149 #define CASE_IL 27
150 #define CASE_DL 28
151 #define CASE_DCH 29
152 #define CASE_DA1 30
153 #define CASE_TRACK_MOUSE 31
154 #define CASE_TBC 32
155 #define CASE_SET 33
156 #define CASE_RST 34
157 #define CASE_SGR 35
158 #define CASE_CPR 36
159 #define CASE_DECSTBM 37
160 #define CASE_DECREQTPARM 38
161 #define CASE_DECSET 39
162 #define CASE_DECRST 40
163 #define CASE_DECALN 41
164 #define CASE_GSETS 42
165 #define CASE_DECSC 43
166 #define CASE_DECRC 44
167 #define CASE_DECKPAM 45
168 #define CASE_DECKPNM 46
169 #define CASE_IND 47
170 #define CASE_NEL 48
171 #define CASE_HTS 49
172 #define CASE_RI 50
173 #define CASE_SS2 51
174 #define CASE_SS3 52
175 #define CASE_CSI_STATE 53
176 #define CASE_OSC 54
177 #define CASE_RIS 55
178 #define CASE_LS2 56
179 #define CASE_LS3 57
180 #define CASE_LS3R 58
181 #define CASE_LS2R 59
182 #define CASE_LS1R 60
183 #define CASE_PRINT 61
184 #define CASE_XTERM_SAVE 62
185 #define CASE_XTERM_RESTORE 63
186 #define CASE_XTERM_TITLE 64
187 #define CASE_DECID 65
188 #define CASE_HP_MEM_LOCK 66
189 #define CASE_HP_MEM_UNLOCK 67
190 #define CASE_HP_BUGGY_LL 68
191 #define CASE_HPA 69
192 #define CASE_VPA 70
193 #define CASE_XTERM_WINOPS 71
194 #define CASE_ECH 72
195 #define CASE_CHT 73
196 #define CASE_CPL 74
197 #define CASE_CNL 75
198 #define CASE_CBT 76
199 #define CASE_SU 77
200 #define CASE_SD 78
201 #define CASE_S7C1T 79
202 #define CASE_S8C1T 80
203 #define CASE_ESC_SP_STATE 81
204 #define CASE_ENQ 82
205 #define CASE_DECSCL 83
206 #define CASE_DECSCA 84
207 #define CASE_DECSED 85
208 #define CASE_DECSEL 86
209 #define CASE_DCS 87
210 #define CASE_PM 88
211 #define CASE_SOS 89
212 #define CASE_ST 90
213 #define CASE_APC 91
214 #define CASE_EPA 92
215 #define CASE_SPA 93
216 #define CASE_CSI_QUOTE_STATE 94
217 #define CASE_DSR 95
218 #define CASE_ANSI_LEVEL_1 96
219 #define CASE_ANSI_LEVEL_2 97
220 #define CASE_ANSI_LEVEL_3 98
221 #define CASE_MC 99
222 #define CASE_DEC2_STATE 100
223 #define CASE_DA2 101
224 #define CASE_DEC3_STATE 102
225 #define CASE_DECRPTUI 103
226 #define CASE_VT52_CUP 104
227 #define CASE_REP 105
228 #define CASE_CSI_EX_STATE 106
229 #define CASE_DECSTR 107
230 #define CASE_DECDHL 108
231 #define CASE_DECSWL 109
232 #define CASE_DECDWL 110
233 #define CASE_DEC_MC 111
234 #define CASE_ESC_PERCENT 112
235 #define CASE_UTF8 113
236 #define CASE_CSI_TICK_STATE 114
237 #define CASE_DECELR 115
238 #define CASE_DECRQLP 116
239 #define CASE_DECEFR 117
240 #define CASE_DECSLE 118
241 #define CASE_CSI_IGNORE 119
242 #define CASE_VT52_IGNORE 120
243 #define CASE_VT52_FINISH 121
244 #define CASE_CSI_DOLLAR_STATE 122
245 #define CASE_DECCRA 123
246 #define CASE_DECERA 124
247 #define CASE_DECFRA 125
248 #define CASE_DECSERA 126
249 #define CASE_DECSACE 127
250 #define CASE_DECCARA 128
251 #define CASE_DECRARA 129
252 #define CASE_CSI_STAR_STATE 130
253 #define CASE_SET_MOD_FKEYS 131
254 #define CASE_SET_MOD_FKEYS0 132
255 #define CASE_HIDE_POINTER 133
256 #define CASE_SCS1A_STATE 134
257 #define CASE_SCS2A_STATE 135
258 #define CASE_SCS3A_STATE 136
259 #define CASE_CSI_SPACE_STATE 137
260 #define CASE_DECSCUSR 138
261 #define CASE_SM_TITLE 139
262 #define CASE_RM_TITLE 140
263 #define CASE_DECSMBV 141
264 #define CASE_DECSWBV 142
265 #define CASE_DECLL 143
266 #define CASE_DECRQM 144
267 #define CASE_RQM 145
268 #define CASE_CSI_DEC_DOLLAR_STATE 146
269
270 #endif /* included_VTparse_h */