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