2 /* src="transcode-tblgen.rb", len=20916, checksum=45137 */
3 /* src="newline.trans", len=3114, checksum=39279 */
5 #include "transcode_data.h"
9 static const unsigned char
10 newline_byte_array[516] = {
11 #define universal_newline_offsets 0
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, 0, 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,
30 #define crlf_newline_offsets 258
32 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
33 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
34 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
38 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
50 static const unsigned int
51 newline_word_array[11] = {
52 #define universal_newline_infos WORDINDEX2INFO(0)
55 #define universal_newline WORDINDEX2INFO(1)
56 universal_newline_offsets,
57 universal_newline_infos,
59 #define crlf_newline_infos WORDINDEX2INFO(3)
62 #define crlf_newline WORDINDEX2INFO(5)
66 #define cr_newline_infos WORDINDEX2INFO(7)
69 #define cr_newline WORDINDEX2INFO(9)
74 #define TRANSCODE_TABLE_INFO newline_byte_array, 516, newline_word_array, 11, sizeof(unsigned int)
79 #define JUST_AFTER_CR 1
81 /* no way to access this information, yet. */
82 #define NEWLINES_MET (sp[1])
88 universal_newline_init(void *statep)
90 unsigned char *sp = statep;
97 fun_so_universal_newline(void *statep, const unsigned char *s, size_t l, unsigned char *o, size_t osize)
99 unsigned char *sp = statep;
102 if (STATE == NORMAL) {
103 NEWLINES_MET |= MET_LF;
107 else { /* JUST_AFTER_CR */
108 NEWLINES_MET |= MET_CRLF;
114 if (STATE == JUST_AFTER_CR)
115 NEWLINES_MET |= MET_CR;
119 STATE = JUST_AFTER_CR;
132 universal_newline_finish(void *statep, unsigned char *o, size_t osize)
134 unsigned char *sp = statep;
135 if (STATE == JUST_AFTER_CR)
136 NEWLINES_MET |= MET_CR;
141 static const rb_transcoder
142 rb_universal_newline = {
143 "", "universal_newline", universal_newline,
144 TRANSCODE_TABLE_INFO,
145 1, /* input_unit_length */
148 asciicompat_converter, /* asciicompat_type */
149 2, universal_newline_init, universal_newline_init, /* state_size, state_init, state_fini */
150 NULL, NULL, NULL, fun_so_universal_newline,
151 universal_newline_finish
154 static const rb_transcoder
156 "", "crlf_newline", crlf_newline,
157 TRANSCODE_TABLE_INFO,
158 1, /* input_unit_length */
161 asciicompat_converter, /* asciicompat_type */
162 0, NULL, NULL, /* state_size, state_init, state_fini */
163 NULL, NULL, NULL, NULL
166 static const rb_transcoder
168 "", "cr_newline", cr_newline,
169 TRANSCODE_TABLE_INFO,
170 1, /* input_unit_length */
173 asciicompat_converter, /* asciicompat_type */
174 0, NULL, NULL, /* state_size, state_init, state_fini */
175 NULL, NULL, NULL, NULL
181 rb_register_transcoder(&rb_universal_newline);
182 rb_register_transcoder(&rb_crlf_newline);
183 rb_register_transcoder(&rb_cr_newline);