1/* autogenerated. */ 2/* src="transcode-tblgen.rb", len=28460, checksum=51276 */ 3/* src="escape.trans", len=1982, checksum=23094 */ 4 5#include "transcode_data.h" 6 7 8 9static const unsigned char 10escape_byte_array[1055] = { 11#define from__to_amp_escape_offsets 0 120, 255, 13 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29 30#define str1_amp makeSTR1(258) 31 makeSTR1LEN(5), 0x26, 0x61, 0x6D, 0x70, 0x3B, 32 33#define from__to_xml_text_escape_offsets 264 340, 255, 35 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 39 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51 52#define str1_lt makeSTR1(522) 53 makeSTR1LEN(4), 0x26, 0x6C, 0x74, 0x3B, 54 55#define str1_gt makeSTR1(527) 56 makeSTR1LEN(4), 0x26, 0x67, 0x74, 0x3B, 57 58#define from__to_xml_attr_content_escape_offsets 532 590, 255, 60 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 64 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76 77#define str1_quot makeSTR1(790) 78 makeSTR1LEN(6), 0x26, 0x71, 0x75, 0x6F, 0x74, 0x3B, 79 80#define escape_xml_attr_quote_offsets 797 810, 255, 82 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98 99}; 100static const unsigned int 101escape_word_array[20] = { 102#define from__to_amp_escape_infos WORDINDEX2INFO(0) 103 NOMAP, str1_amp, 104 105#define from__to_amp_escape WORDINDEX2INFO(2) 106 from__to_amp_escape_offsets, 107 from__to_amp_escape_infos, 108 109#define from__to_xml_text_escape_infos WORDINDEX2INFO(4) 110 NOMAP, str1_amp, str1_lt, str1_gt, 111 112#define from__to_xml_text_escape WORDINDEX2INFO(8) 113 from__to_xml_text_escape_offsets, 114 from__to_xml_text_escape_infos, 115 116#define from__to_xml_attr_content_escape_infos WORDINDEX2INFO(10) 117 NOMAP, str1_quot, str1_amp, str1_lt, 118 str1_gt, 119 120#define from__to_xml_attr_content_escape WORDINDEX2INFO(15) 121 from__to_xml_attr_content_escape_offsets, 122 from__to_xml_attr_content_escape_infos, 123 124#define escape_xml_attr_quote_infos WORDINDEX2INFO(17) 125 FUNso, 126 127#define escape_xml_attr_quote WORDINDEX2INFO(18) 128 escape_xml_attr_quote_offsets, 129 escape_xml_attr_quote_infos, 130 131}; 132#define TRANSCODE_TABLE_INFO escape_byte_array, 1055, escape_word_array, 20, ((int)sizeof(unsigned int)) 133static const rb_transcoder 134rb_from__to_amp_escape = { 135 "", "amp_escape", from__to_amp_escape, 136 TRANSCODE_TABLE_INFO, 137 1, /* input_unit_length */ 138 1, /* max_input */ 139 5, /* max_output */ 140 asciicompat_converter, /* asciicompat_type */ 141 0, NULL, NULL, /* state_size, state_init, state_fini */ 142 NULL, NULL, NULL, NULL, 143 NULL, NULL, NULL 144}; 145static const rb_transcoder 146rb_from__to_xml_text_escape = { 147 "", "xml_text_escape", from__to_xml_text_escape, 148 TRANSCODE_TABLE_INFO, 149 1, /* input_unit_length */ 150 1, /* max_input */ 151 5, /* max_output */ 152 asciicompat_converter, /* asciicompat_type */ 153 0, NULL, NULL, /* state_size, state_init, state_fini */ 154 NULL, NULL, NULL, NULL, 155 NULL, NULL, NULL 156}; 157static const rb_transcoder 158rb_from__to_xml_attr_content_escape = { 159 "", "xml_attr_content_escape", from__to_xml_attr_content_escape, 160 TRANSCODE_TABLE_INFO, 161 1, /* input_unit_length */ 162 1, /* max_input */ 163 6, /* max_output */ 164 asciicompat_converter, /* asciicompat_type */ 165 0, NULL, NULL, /* state_size, state_init, state_fini */ 166 NULL, NULL, NULL, NULL, 167 NULL, NULL, NULL 168}; 169 170 171#define END 0 172#define NORMAL 1 173 174static int 175escape_xml_attr_quote_init(void *statep) 176{ 177 unsigned char *sp = statep; 178 *sp = END; 179 return 0; 180} 181 182static ssize_t 183fun_so_escape_xml_attr_quote(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize) 184{ 185 unsigned char *sp = statep; 186 int n = 0; 187 if (*sp == END) { 188 *sp = NORMAL; 189 o[n++] = '"'; 190 } 191 o[n++] = s[0]; 192 return n; 193} 194 195static ssize_t 196escape_xml_attr_quote_finish(void *statep, unsigned char *o, size_t osize) 197{ 198 unsigned char *sp = statep; 199 int n = 0; 200 201 if (*sp == END) { 202 o[n++] = '"'; 203 } 204 205 o[n++] = '"'; 206 *sp = END; 207 208 return n; 209} 210 211static const rb_transcoder 212rb_escape_xml_attr_quote = { 213 "", "xml_attr_quote", escape_xml_attr_quote, 214 TRANSCODE_TABLE_INFO, 215 1, /* input_unit_length */ 216 1, /* max_input */ 217 7, /* max_output */ 218 asciicompat_encoder, /* asciicompat_type */ 219 1, escape_xml_attr_quote_init, escape_xml_attr_quote_init, 220 NULL, NULL, NULL, fun_so_escape_xml_attr_quote, 221 escape_xml_attr_quote_finish 222}; 223 224TRANS_INIT(escape) 225{ 226 rb_register_transcoder(&rb_from__to_amp_escape); 227 rb_register_transcoder(&rb_from__to_xml_text_escape); 228 rb_register_transcoder(&rb_from__to_xml_attr_content_escape); 229 230 rb_register_transcoder(&rb_escape_xml_attr_quote); 231} 232 233 234