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