diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | string.c | 12 | ||||
-rw-r--r-- | transcode.c | 285 | ||||
-rw-r--r-- | transcode_data.h | 13 | ||||
-rw-r--r-- | transcode_data_iso_8859.c | 198 |
5 files changed, 229 insertions, 292 deletions
@@ -1,3 +1,16 @@ +Mon Dec 10 17:46:04 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * string.c (rb_str_tmp_new): creates hidden temporary buffer. + + * transcode.c (transcoding): added a pointer to function to flush. + + * transcode.c (transcode_loop): do not use string internal. + [ruby-dev:32512] + + * transcode.c (str_transcode): allow Encoding objects. + + * transcode_data.h (BYTE_LOOKUP): use actual struct name. + Mon Dec 10 16:52:17 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> * string.c (rb_str_insert): should not add length in bytes to index in @@ -179,7 +179,7 @@ str_alloc(VALUE klass) return (VALUE)str; } -VALUE +static VALUE str_new(VALUE klass, const char *ptr, long len) { VALUE str; @@ -370,6 +370,12 @@ rb_str_buf_new2(const char *ptr) return str; } +VALUE +rb_str_tmp_new(long len) +{ + return str_new(0, 0, len); +} + void rb_str_free(VALUE str) { @@ -384,7 +390,7 @@ rb_str_to_str(VALUE str) return rb_convert_type(str, T_STRING, "String", "to_str"); } -static void +void rb_str_shared_replace(VALUE str, VALUE str2) { if (str == str2) return; @@ -625,7 +631,7 @@ str_modifiable(VALUE str) rb_raise(rb_eSecurityError, "Insecure: can't modify string"); } -int +static int str_independent(VALUE str) { str_modifiable(str); diff --git a/transcode.c b/transcode.c index 805e9e4a89..716fe4fd72 100644 --- a/transcode.c +++ b/transcode.c @@ -16,55 +16,8 @@ #include "transcode_data.h" -/* - * prototypes and macros copied from string.c (temporarily !!!) - */ -VALUE str_new(VALUE klass, const char *ptr, long len); -int str_independent(VALUE str); -#define STR_NOCAPA_P(s) (FL_TEST(s,STR_NOEMBED) && FL_ANY(s,ELTS_SHARED|STR_ASSOC)) -#define STR_NOEMBED FL_USER1 -#define STR_ASSOC FL_USER3 -#define STR_SET_NOEMBED(str) do {\ - FL_SET(str, STR_NOEMBED);\ - STR_SET_EMBED_LEN(str, 0);\ -} while (0) -#define STR_UNSET_NOCAPA(s) do {\ - if (FL_TEST(s,STR_NOEMBED)) FL_UNSET(s,(ELTS_SHARED|STR_ASSOC));\ -} while (0) -#define STR_SET_EMBED_LEN(str, n) do { \ - long tmp_n = (n);\ - RBASIC(str)->flags &= ~RSTRING_EMBED_LEN_MASK;\ - RBASIC(str)->flags |= (tmp_n) << RSTRING_EMBED_LEN_SHIFT;\ -} while (0) -#define STR_SET_LEN(str, n) do { \ - if (STR_EMBED_P(str)) {\ - STR_SET_EMBED_LEN(str, n);\ - }\ - else {\ - RSTRING(str)->as.heap.len = (n);\ - }\ -} while (0) -#define STR_EMBED_P(str) (!FL_TEST(str, STR_NOEMBED)) -#define RESIZE_CAPA(str,capacity) do {\ - if (STR_EMBED_P(str)) {\ - if ((capacity) > RSTRING_EMBED_LEN_MAX) {\ - char *tmp = ALLOC_N(char, capacity+1);\ - memcpy(tmp, RSTRING_PTR(str), RSTRING_LEN(str));\ - RSTRING(str)->as.heap.ptr = tmp;\ - RSTRING(str)->as.heap.len = RSTRING_LEN(str);\ - STR_SET_NOEMBED(str);\ - RSTRING(str)->as.heap.aux.capa = (capacity);\ - }\ - }\ - else {\ - REALLOC_N(RSTRING(str)->as.heap.ptr, char, (capacity)+1);\ - if (!STR_NOCAPA_P(str))\ - RSTRING(str)->as.heap.aux.capa = (capacity);\ - }\ -} while (0) -/* end of copied prototypes and macros */ - - +VALUE rb_str_tmp_new(long); +VALUE rb_str_shared_replace(VALUE, VALUE); /* * Dispatch data and logic @@ -123,7 +76,7 @@ static transcoder transcoder_table[MAX_TRANSCODERS]; /* maybe the code here can be removed (changed to simple initialization) */ /* if we move this to another file???? */ static void -register_transcoder (const char *from_e, const char *to_e, +register_transcoder(const char *from_e, const char *to_e, const BYTE_LOOKUP *tree_start, int max_output, int from_utf8) { static int n = 0; @@ -141,7 +94,7 @@ register_transcoder (const char *from_e, const char *to_e, } static void -init_transcoder_table (void) +init_transcoder_table(void) { register_transcoder("ISO-8859-1", "UTF-8", &from_ISO_8859_1, 2, 0); register_transcoder("ISO-8859-2", "UTF-8", &from_ISO_8859_2, 2, 0); @@ -176,7 +129,7 @@ init_transcoder_table (void) static transcoder* -transcode_dispatch (char* from_encoding, char* to_encoding) +transcode_dispatch(const char* from_encoding, const char* to_encoding) { transcoder *candidate = transcoder_table; @@ -190,9 +143,10 @@ transcode_dispatch (char* from_encoding, char* to_encoding) /* dynamic structure, one per conversion (similar to iconv_t) */ /* may carry conversion state (e.g. for iso-2022-jp) */ -typedef struct { +typedef struct transcoding { VALUE ruby_string_dest; /* the String used as the conversion destination, or NULL if something else is being converted */ + char *(*flush_func)(struct transcoding*, int, int); } transcoding; @@ -200,85 +154,75 @@ typedef struct { * Transcoding engine logic */ static void -transcode_loop (unsigned char **in_pos, unsigned char **out_pos, - unsigned char *in_stop, unsigned char *out_stop, - transcoder *my_transcoder, - transcoding *my_transcoding) +transcode_loop(char **in_pos, char **out_pos, + char *in_stop, char *out_stop, + transcoder *my_transcoder, + transcoding *my_transcoding) { - unsigned char *input = *in_pos, *output = *out_pos; - unsigned char *in_p = *in_pos, *out_p = *out_pos; - BYTE_LOOKUP *conv_tree_start = my_transcoder->conv_tree_start; - BYTE_LOOKUP *next_table; + char *in_p = *in_pos, *out_p = *out_pos; + const BYTE_LOOKUP *conv_tree_start = my_transcoder->conv_tree_start; + const BYTE_LOOKUP *next_table; unsigned int next_offset; - unsigned int next_info; + VALUE next_info; unsigned char next_byte; int from_utf8 = my_transcoder->from_utf8; - unsigned char *out_s = out_stop - my_transcoder->max_output + 1; + char *out_s = out_stop - my_transcoder->max_output + 1; while (in_p < in_stop) { - unsigned char *char_start = in_p; next_table = conv_tree_start; if (out_p >= out_s) { - VALUE dest_string = my_transcoding->ruby_string_dest; - if (!dest_string) { - rb_raise(rb_eArgError /*@@@change exception*/, "Unable to obtain more space for transcoding"); - } - else { - int len = (out_p - *out_pos); - int new_len = (len + my_transcoder->max_output) * 2; - RESIZE_CAPA(dest_string, new_len); - STR_SET_LEN(dest_string, new_len); - *out_pos = RSTRING_PTR(dest_string); - out_p = *out_pos + len; - out_s = *out_pos + new_len - my_transcoder->max_output; - } + int len = (out_p - *out_pos); + int new_len = (len + my_transcoder->max_output) * 2; + *out_pos = (*my_transcoding->flush_func)(my_transcoding, len, new_len); + out_p = *out_pos + len; + out_s = *out_pos + new_len - my_transcoder->max_output; } - next_byte = *in_p++; + next_byte = (unsigned char)*in_p++; follow_byte: next_offset = next_table->base[next_byte]; - next_info = (unsigned int)next_table->info[next_offset]; + next_info = (VALUE)next_table->info[next_offset]; switch (next_info & 0x1F) { - case NOMAP: - *out_p++ = next_byte; - continue; - case 0x00: case 0x04: case 0x08: case 0x0C: - case 0x10: case 0x14: case 0x18: case 0x1C: - if (in_p >= in_stop) { - /* todo: deal with the case of backtracking */ - /* todo: deal with incomplete input (streaming) */ - goto illegal; - } - next_byte = *in_p++; - if (from_utf8) { - if ((next_byte&0xC0) == 0x80) - next_byte -= 0x80; - else - goto illegal; - } - next_table = (BYTE_LOOKUP*)next_info; - goto follow_byte; + case NOMAP: + *out_p++ = next_byte; + continue; + case 0x00: case 0x04: case 0x08: case 0x0C: + case 0x10: case 0x14: case 0x18: case 0x1C: + if (in_p >= in_stop) { + /* todo: deal with the case of backtracking */ + /* todo: deal with incomplete input (streaming) */ + goto illegal; + } + next_byte = (unsigned char)*in_p++; + if (from_utf8) { + if ((next_byte&0xC0) == 0x80) + next_byte -= 0x80; + else + goto illegal; + } + next_table = next_table->info[next_offset]; + goto follow_byte; /* maybe rewrite the following cases to use fallthrough???? */ - case ZERObt: /* drop input */ - continue; - case ONEbt: - *out_p++ = getBT1(next_info); - continue; - case TWObt: - *out_p++ = getBT1(next_info); - *out_p++ = getBT2(next_info); - continue; - case FOURbt: - *out_p++ = getBT0(next_info); - case THREEbt: /* fall through */ - *out_p++ = getBT1(next_info); - *out_p++ = getBT2(next_info); - *out_p++ = getBT3(next_info); - continue; - case ILLEGAL: - goto illegal; - case UNDEF: - /* todo: add code for alternative behaviors */ - rb_raise(rb_eRuntimeError /*@@@change exception*/, "conversion undefined for byte sequence"); - continue; + case ZERObt: /* drop input */ + continue; + case ONEbt: + *out_p++ = getBT1(next_info); + continue; + case TWObt: + *out_p++ = getBT1(next_info); + *out_p++ = getBT2(next_info); + continue; + case FOURbt: + *out_p++ = getBT0(next_info); + case THREEbt: /* fall through */ + *out_p++ = getBT1(next_info); + *out_p++ = getBT2(next_info); + *out_p++ = getBT3(next_info); + continue; + case ILLEGAL: + goto illegal; + case UNDEF: + /* todo: add code for alternative behaviors */ + rb_raise(rb_eRuntimeError /*@@@change exception*/, "conversion undefined for byte sequence"); + continue; } continue; illegal: @@ -297,38 +241,44 @@ transcode_loop (unsigned char **in_pos, unsigned char **out_pos, * String-specific code */ +static char * +str_transcoding_resize(transcoding *my_transcoding, int len, int new_len) +{ + VALUE dest_string = my_transcoding->ruby_string_dest; + rb_str_resize(dest_string, new_len); + return RSTRING_PTR(dest_string); +} + static VALUE -str_transcode(int argc, VALUE *argv, VALUE str, int bang) +str_transcode(int argc, VALUE *argv, VALUE str) { VALUE dest; - long blen, slen, len; + long blen, slen; char *buf, *bp, *sp, *fromp; - int tainted = 0; rb_encoding *from_enc, *to_enc; - char *from_e, *to_e; + const char *from_e, *to_e; transcoder *my_transcoder; - int idx; transcoding my_transcoding; if (argc<1 || argc>2) { rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc); } - to_enc = NULL; /* todo: work out later, 'to' parameter may be Encoding, - or we want an encoding to set on result */ - to_e = RSTRING_PTR(StringValue(argv[0])); + to_enc = rb_to_encoding(argv[0]); + to_e = rb_enc_name(to_enc); if (argc==1) { from_enc = rb_enc_get(str); - from_e = (char *)rb_enc_name(from_enc); } else { - from_enc = NULL; /* todo: work out later, 'from' parameter may be Encoding */ - from_e = RSTRING_PTR(StringValue(argv[1])); + from_enc = rb_to_encoding(argv[1]); } + from_e = rb_enc_name(from_enc); - /* strcasecmp: hope we are in C locale or locale-insensitive */ - if (0==strcasecmp(from_e, to_e)) { /* TODO: add tests for US-ASCII-clean data and ASCII-compatible encodings */ - if (bang) return str; - return rb_str_dup(str); + if (from_enc == to_enc) { + return Qnil; + } + if (rb_enc_asciicompat(from_enc) && rb_enc_asciicompat(to_enc)) { + if (ENC_CODERANGE(str) == ENC_CODERANGE_7BIT) + return Qnil; } if (!(my_transcoder = transcode_dispatch(from_e, to_e))) { rb_raise(rb_eArgError, "transcoding not supported (from %s to %s)", from_e, to_e); @@ -337,51 +287,24 @@ str_transcode(int argc, VALUE *argv, VALUE str, int bang) fromp = sp = RSTRING_PTR(str); slen = RSTRING_LEN(str); blen = slen + 30; /* len + margin */ - dest = str_new(0, 0, blen); - bp = buf = RSTRING_PTR(dest); + dest = rb_str_tmp_new(blen); + bp = RSTRING_PTR(dest); my_transcoding.ruby_string_dest = dest; + my_transcoding.flush_func = str_transcoding_resize; - rb_str_locktmp(dest); - /* for simple testing: */ - transcode_loop((unsigned char **)&fromp, (unsigned char **)&bp, - (unsigned char*)(sp+slen), (unsigned char*)(bp+blen), - my_transcoder, &my_transcoding); + transcode_loop(&fromp, &bp, (sp+slen), (bp+blen), my_transcoder, &my_transcoding); if (fromp != sp+slen) { rb_raise(rb_eArgError, "not fully converted, %d bytes left", sp+slen-fromp); } buf = RSTRING_PTR(dest); - blen = RSTRING_LEN(dest); *bp = '\0'; - rb_str_unlocktmp(dest); - if (bang) { - if (str_independent(str) && !STR_EMBED_P(str)) { - free(RSTRING_PTR(str)); - } - STR_SET_NOEMBED(str); - STR_UNSET_NOCAPA(str); - RSTRING(str)->as.heap.ptr = buf; - RSTRING(str)->as.heap.aux.capa = blen; - RSTRING(dest)->as.heap.ptr = 0; - RSTRING(dest)->as.heap.len = 0; - } - else { - RBASIC(dest)->klass = rb_obj_class(str); - OBJ_INFECT(dest, str); - str = dest; - } - STR_SET_LEN(str, bp - buf); + rb_str_set_len(dest, bp - buf); - /* set encoding */ /* would like to have an easier way to do this */ - if ((idx = rb_enc_find_index(to_e)) < 0) { - if ((idx = rb_enc_find_index("ASCII-8BIT")) < 0) { - rb_raise(rb_eArgError, "unknown encoding name: ASCII-8BIT"); - } - } - rb_enc_associate(str, rb_enc_from_index(idx)); + /* set encoding */ + rb_enc_associate(dest, to_enc); - if (tainted) OBJ_TAINT(str); /* is this needed??? */ - return str; + return dest; } /* @@ -399,7 +322,10 @@ str_transcode(int argc, VALUE *argv, VALUE str, int bang) static VALUE rb_str_transcode_bang(int argc, VALUE *argv, VALUE str) { - return str_transcode(argc, argv, str, 1); + VALUE newstr = str_transcode(argc, argv, str); + if (NIL_P(newstr)) return str; + rb_str_shared_replace(str, newstr); + return str; } /* @@ -415,18 +341,11 @@ rb_str_transcode_bang(int argc, VALUE *argv, VALUE str) static VALUE rb_str_transcode(int argc, VALUE *argv, VALUE str) { - return str_transcode(argc, argv, str, 0); -} - -/* function to fool the optimizer (avoid inlining transcode_loop) */ -void -transcode_fool_the_optimizer (void) -{ - unsigned char **in_pos, **out_pos, *in_stop, *out_stop; - transcoder *my_transcoder; - transcoding *my_transcoding; - transcode_loop(in_pos, out_pos, in_stop, out_stop, - my_transcoder, my_transcoding); + VALUE newstr = str_transcode(argc, argv, str); + if (NIL_P(newstr)) return rb_str_dup(str); + RBASIC(newstr)->klass = rb_obj_class(str); + OBJ_INFECT(newstr, str); + return newstr; } void diff --git a/transcode_data.h b/transcode_data.h index 42e0921458..f16b969da3 100644 --- a/transcode_data.h +++ b/transcode_data.h @@ -1,14 +1,13 @@ typedef unsigned char base_element; -typedef const void * const info_element; typedef struct byte_lookup { const base_element *base; - const void * const * const info; + const struct byte_lookup *const *info; } BYTE_LOOKUP; #ifdef TRANSCODE_DATA /* data file needs to treat this as a pointer, to remove warnings */ -#define PType (const void * const) +#define PType (const BYTE_LOOKUP *) #else /* in code, this is treated as just an integer */ #define PType (int) @@ -23,10 +22,10 @@ typedef struct byte_lookup { #define UNDEF (PType 0x09) /* legal but undefined */ #define ZERObt (PType 0x0A) /* zero bytes of payload, i.e. remove */ -#define output1(b1) ((void*)((((unsigned char)(b1))<<8)|ONEbt)) -#define output2(b1,b2) ((void*)((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|TWObt)) -#define output3(b1,b2,b3) ((void*)((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|(((unsigned char)(b3))<<24)|THREEbt)) -#define output4(b0,b1,b2,b3) ((void*)((((unsigned char)(b1))<< 8)|(((unsigned char)(b2))<<16)|(((unsigned char)(b3))<<24)|((((unsigned char)(b0))&0x07)<<5)|FOURbt)) +#define output1(b1) ((const BYTE_LOOKUP *)((((unsigned char)(b1))<<8)|ONEbt)) +#define output2(b1,b2) ((const BYTE_LOOKUP *)((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|TWObt)) +#define output3(b1,b2,b3) ((const BYTE_LOOKUP *)((((unsigned char)(b1))<<8)|(((unsigned char)(b2))<<16)|(((unsigned char)(b3))<<24)|THREEbt)) +#define output4(b0,b1,b2,b3) ((const BYTE_LOOKUP *)((((unsigned char)(b1))<< 8)|(((unsigned char)(b2))<<16)|(((unsigned char)(b3))<<24)|((((unsigned char)(b0))&0x07)<<5)|FOURbt)) #define getBT1(a) (((a)>> 8)&0xFF) #define getBT2(a) (((a)>>16)&0xFF) diff --git a/transcode_data_iso_8859.c b/transcode_data_iso_8859.c index 087932ae38..81826e3f64 100644 --- a/transcode_data_iso_8859.c +++ b/transcode_data_iso_8859.c @@ -20,7 +20,7 @@ from_ISO_8859_1_offsets[256] = { 97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112, 113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_1_infos[129] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -101,7 +101,7 @@ to_ISO_8859_1_C2_offsets[64] = { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_1_C2_infos[64] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -133,7 +133,7 @@ to_ISO_8859_1_C3_offsets[64] = { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_1_C3_infos[64] = { output1('\xC0'), output1('\xC1'), output1('\xC2'), output1('\xC3'), output1('\xC4'), output1('\xC5'), output1('\xC6'), output1('\xC7'), @@ -177,7 +177,7 @@ to_ISO_8859_1_offsets[256] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_1_infos[3] = { NOMAP, &to_ISO_8859_1_C2, &to_ISO_8859_1_C3, }; @@ -206,7 +206,7 @@ from_ISO_8859_2_offsets[256] = { 97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112, 113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_2_infos[129] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -287,7 +287,7 @@ to_ISO_8859_2_C2_offsets[64] = { 32, -1, -1, -1, 33, -1, -1, 34, 35, -1, -1, -1, -1, 36, -1, -1, 37, -1, -1, -1, 38, -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_2_C2_infos[40] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -313,7 +313,7 @@ to_ISO_8859_2_C3_offsets[64] = { -1, 16, 17, -1, 18, -1, -1, 19, -1, 20, -1, 21, -1, 22, 23, -1, -1, -1, -1, 24, 25, -1, 26, 27, -1, -1, 28, -1, 29, 30, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_2_C3_infos[31] = { output1('\xC1'), output1('\xC2'), output1('\xC4'), output1('\xC7'), output1('\xC9'), output1('\xCB'), output1('\xCD'), output1('\xCE'), @@ -337,7 +337,7 @@ to_ISO_8859_2_C4_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, 17, -1, -1, 18, 19, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_2_C4_infos[20] = { output1('\xC3'), output1('\xE3'), output1('\xA1'), output1('\xB1'), output1('\xC6'), output1('\xE6'), output1('\xC8'), output1('\xE8'), @@ -358,7 +358,7 @@ to_ISO_8859_2_C5_offsets[64] = { 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_2_C5_infos[32] = { output1('\xA3'), output1('\xB3'), output1('\xD1'), output1('\xF1'), output1('\xD2'), output1('\xF2'), output1('\xD5'), output1('\xF5'), @@ -382,7 +382,7 @@ to_ISO_8859_2_CB_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_2_CB_infos[5] = { output1('\xB7'), output1('\xA2'), output1('\xFF'), output1('\xB2'), output1('\xBD'), @@ -412,7 +412,7 @@ to_ISO_8859_2_offsets[256] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_2_infos[6] = { NOMAP, &to_ISO_8859_2_C2, &to_ISO_8859_2_C3, &to_ISO_8859_2_C4, &to_ISO_8859_2_C5, &to_ISO_8859_2_CB, @@ -442,7 +442,7 @@ from_ISO_8859_3_offsets[256] = { 92, 93, 94, -1, 95, 96, 97, 98, 99,100,101,102,103,104,105,106, -1,107,108,109,110,111,112,113, 114,115,116,117,118,119,120,121, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_3_infos[122] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -519,7 +519,7 @@ to_ISO_8859_3_C2_offsets[64] = { 32, -1, -1, 33, 34, -1, -1, 35, 36, -1, -1, -1, -1, 37, -1, -1, 38, -1, 39, 40, 41, 42, -1, 43, 44, -1, -1, -1, -1, 45, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_3_C2_infos[46] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -547,7 +547,7 @@ to_ISO_8859_3_C3_offsets[64] = { 24, 25, 26, -1, 27, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, -1, 37, 38, 39, 40, -1, 41, 42, -1, 43, 44, 45, 46, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_3_C3_infos[47] = { output1('\xC0'), output1('\xC1'), output1('\xC2'), output1('\xC4'), output1('\xC7'), output1('\xC8'), output1('\xC9'), output1('\xCA'), @@ -575,7 +575,7 @@ to_ISO_8859_3_C4_offsets[64] = { 8, 9, -1, -1, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, -1, -1, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_3_C4_infos[18] = { output1('\xC6'), output1('\xE6'), output1('\xC5'), output1('\xE5'), output1('\xD8'), output1('\xF8'), output1('\xAB'), output1('\xBB'), @@ -596,7 +596,7 @@ to_ISO_8859_3_C5_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, 7, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_3_C5_infos[8] = { output1('\xDE'), output1('\xFE'), output1('\xAA'), output1('\xBA'), output1('\xDD'), output1('\xFD'), output1('\xAF'), output1('\xBF'), @@ -614,7 +614,7 @@ to_ISO_8859_3_CB_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_3_CB_infos[2] = { output1('\xA2'), output1('\xFF'), }; @@ -643,7 +643,7 @@ to_ISO_8859_3_offsets[256] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_3_infos[6] = { NOMAP, &to_ISO_8859_3_C2, &to_ISO_8859_3_C3, &to_ISO_8859_3_C4, &to_ISO_8859_3_C5, &to_ISO_8859_3_CB, @@ -673,7 +673,7 @@ from_ISO_8859_4_offsets[256] = { 97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112, 113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_4_infos[129] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -754,7 +754,7 @@ to_ISO_8859_4_C2_offsets[64] = { 32, -1, -1, -1, 33, -1, -1, 34, 35, -1, -1, -1, -1, 36, -1, 37, 38, -1, -1, -1, 39, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_4_C2_infos[41] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -781,7 +781,7 @@ to_ISO_8859_4_C3_offsets[64] = { -1, 19, 20, 21, 22, 23, 24, -1, -1, 25, -1, 26, -1, 27, 28, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, 34, 35, 36, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_4_C3_infos[37] = { output1('\xC1'), output1('\xC2'), output1('\xC3'), output1('\xC4'), output1('\xC5'), output1('\xC6'), output1('\xC9'), output1('\xCB'), @@ -807,7 +807,7 @@ to_ISO_8859_4_C4_offsets[64] = { -1, -1, 14, 15, -1, -1, -1, -1, 16, 17, 18, 19, -1, -1, 20, 21, -1, -1, -1, -1, -1, -1, 22, 23, 24, -1, -1, 25, 26, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_4_C4_infos[27] = { output1('\xC0'), output1('\xE0'), output1('\xA1'), output1('\xB1'), output1('\xC8'), output1('\xE8'), output1('\xD0'), output1('\xF0'), @@ -830,7 +830,7 @@ to_ISO_8859_4_C5_offsets[64] = { 8, 9, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, 16, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_4_C5_infos[20] = { output1('\xD1'), output1('\xF1'), output1('\xBD'), output1('\xBF'), output1('\xD2'), output1('\xF2'), output1('\xA3'), output1('\xB3'), @@ -851,7 +851,7 @@ to_ISO_8859_4_CB_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_4_CB_infos[3] = { output1('\xB7'), output1('\xFF'), output1('\xB2'), }; @@ -880,7 +880,7 @@ to_ISO_8859_4_offsets[256] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_4_infos[6] = { NOMAP, &to_ISO_8859_4_C2, &to_ISO_8859_4_C3, &to_ISO_8859_4_C4, &to_ISO_8859_4_C5, &to_ISO_8859_4_CB, @@ -910,7 +910,7 @@ from_ISO_8859_5_offsets[256] = { 97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112, 113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_5_infos[129] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -991,7 +991,7 @@ to_ISO_8859_5_C2_offsets[64] = { 32, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_5_C2_infos[35] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -1016,7 +1016,7 @@ to_ISO_8859_5_D0_offsets[64] = { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_5_D0_infos[62] = { output1('\xA1'), output1('\xA2'), output1('\xA3'), output1('\xA4'), output1('\xA5'), output1('\xA6'), output1('\xA7'), output1('\xA8'), @@ -1048,7 +1048,7 @@ to_ISO_8859_5_D1_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_5_D1_infos[30] = { output1('\xE0'), output1('\xE1'), output1('\xE2'), output1('\xE3'), output1('\xE4'), output1('\xE5'), output1('\xE6'), output1('\xE7'), @@ -1072,7 +1072,7 @@ to_ISO_8859_5_E2_84_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_5_E2_84_infos[1] = { output1('\xF0'), }; @@ -1089,7 +1089,7 @@ to_ISO_8859_5_E2_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_5_E2_infos[1] = { &to_ISO_8859_5_E2_84, }; @@ -1118,7 +1118,7 @@ to_ISO_8859_5_offsets[256] = { -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_5_infos[5] = { NOMAP, &to_ISO_8859_5_C2, &to_ISO_8859_5_D0, &to_ISO_8859_5_D1, &to_ISO_8859_5_E2, @@ -1148,7 +1148,7 @@ from_ISO_8859_6_offsets[256] = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_6_infos[84] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -1206,7 +1206,7 @@ to_ISO_8859_6_C2_offsets[64] = { 32, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_6_C2_infos[35] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -1231,7 +1231,7 @@ to_ISO_8859_6_D8_offsets[64] = { -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_6_D8_infos[29] = { output1('\xAC'), output1('\xBB'), output1('\xBF'), output1('\xC1'), output1('\xC2'), output1('\xC3'), output1('\xC4'), output1('\xC5'), @@ -1255,7 +1255,7 @@ to_ISO_8859_6_D9_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_6_D9_infos[19] = { output1('\xE0'), output1('\xE1'), output1('\xE2'), output1('\xE3'), output1('\xE4'), output1('\xE5'), output1('\xE6'), output1('\xE7'), @@ -1288,7 +1288,7 @@ to_ISO_8859_6_offsets[256] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_6_infos[4] = { NOMAP, &to_ISO_8859_6_C2, &to_ISO_8859_6_D8, &to_ISO_8859_6_D9, }; @@ -1317,7 +1317,7 @@ from_ISO_8859_7_offsets[256] = { 95, 96, 97, 98, 99,100,101,102, 103,104,105,106,107,108,109,110, 111,112,113,114,115,116,117,118, 119,120,121,122,123,124,125, -1, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_7_infos[126] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -1396,7 +1396,7 @@ to_ISO_8859_7_C2_offsets[64] = { 32, -1, -1, 33, -1, -1, 34, 35, 36, 37, -1, 38, 39, 40, -1, -1, 41, 42, 43, 44, -1, -1, -1, 45, -1, -1, -1, 46, -1, 47, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_7_C2_infos[48] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -1424,7 +1424,7 @@ to_ISO_8859_7_CD_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_7_CD_infos[1] = { output1('\xAA'), }; @@ -1441,7 +1441,7 @@ to_ISO_8859_7_CE_offsets[64] = { 25, 26, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_7_CE_infos[56] = { output1('\xB4'), output1('\xB5'), output1('\xB6'), output1('\xB8'), output1('\xB9'), output1('\xBA'), output1('\xBC'), output1('\xBE'), @@ -1471,7 +1471,7 @@ to_ISO_8859_7_CF_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_7_CF_infos[15] = { output1('\xF0'), output1('\xF1'), output1('\xF2'), output1('\xF3'), output1('\xF4'), output1('\xF5'), output1('\xF6'), output1('\xF7'), @@ -1491,7 +1491,7 @@ to_ISO_8859_7_E2_80_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_7_E2_80_infos[3] = { output1('\xAF'), output1('\xA1'), output1('\xA2'), }; @@ -1508,7 +1508,7 @@ to_ISO_8859_7_E2_82_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_7_E2_82_infos[2] = { output1('\xA4'), output1('\xA5'), }; @@ -1525,7 +1525,7 @@ to_ISO_8859_7_E2_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_7_E2_infos[2] = { &to_ISO_8859_7_E2_80, &to_ISO_8859_7_E2_82, }; @@ -1554,7 +1554,7 @@ to_ISO_8859_7_offsets[256] = { -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_7_infos[6] = { NOMAP, &to_ISO_8859_7_C2, &to_ISO_8859_7_CD, &to_ISO_8859_7_CE, &to_ISO_8859_7_CF, &to_ISO_8859_7_E2, @@ -1584,7 +1584,7 @@ from_ISO_8859_8_offsets[256] = { 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, -1, -1, 91, 92, -1, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_8_infos[93] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -1647,7 +1647,7 @@ to_ISO_8859_8_C2_offsets[64] = { 32, -1, 33, 34, 35, 36, 37, 38, 39, 40, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, 56, 57, 58, 59, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_8_C2_infos[60] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -1678,7 +1678,7 @@ to_ISO_8859_8_C3_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_8_C3_infos[2] = { output1('\xAA'), output1('\xBA'), }; @@ -1695,7 +1695,7 @@ to_ISO_8859_8_D7_offsets[64] = { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_8_D7_infos[27] = { output1('\xE0'), output1('\xE1'), output1('\xE2'), output1('\xE3'), output1('\xE4'), output1('\xE5'), output1('\xE6'), output1('\xE7'), @@ -1718,7 +1718,7 @@ to_ISO_8859_8_E2_80_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_8_E2_80_infos[3] = { output1('\xFD'), output1('\xFE'), output1('\xDF'), }; @@ -1735,7 +1735,7 @@ to_ISO_8859_8_E2_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_8_E2_infos[1] = { &to_ISO_8859_8_E2_80, }; @@ -1764,7 +1764,7 @@ to_ISO_8859_8_offsets[256] = { -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_8_infos[5] = { NOMAP, &to_ISO_8859_8_C2, &to_ISO_8859_8_C3, &to_ISO_8859_8_D7, &to_ISO_8859_8_E2, @@ -1794,7 +1794,7 @@ from_ISO_8859_9_offsets[256] = { 97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112, 113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_9_infos[129] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -1875,7 +1875,7 @@ to_ISO_8859_9_C2_offsets[64] = { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_9_C2_infos[64] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -1907,7 +1907,7 @@ to_ISO_8859_9_C3_offsets[64] = { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, -1, 57, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_9_C3_infos[58] = { output1('\xC0'), output1('\xC1'), output1('\xC2'), output1('\xC3'), output1('\xC4'), output1('\xC5'), output1('\xC6'), output1('\xC7'), @@ -1938,7 +1938,7 @@ to_ISO_8859_9_C4_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_9_C4_infos[4] = { output1('\xD0'), output1('\xF0'), output1('\xDD'), output1('\xFD'), }; @@ -1955,7 +1955,7 @@ to_ISO_8859_9_C5_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_9_C5_infos[2] = { output1('\xDE'), output1('\xFE'), }; @@ -1984,7 +1984,7 @@ to_ISO_8859_9_offsets[256] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_9_infos[5] = { NOMAP, &to_ISO_8859_9_C2, &to_ISO_8859_9_C3, &to_ISO_8859_9_C4, &to_ISO_8859_9_C5, @@ -2014,7 +2014,7 @@ from_ISO_8859_10_offsets[256] = { 97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112, 113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_10_infos[129] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -2095,7 +2095,7 @@ to_ISO_8859_10_C2_offsets[64] = { 32, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, 34, -1, -1, 35, -1, -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_10_C2_infos[37] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -2121,7 +2121,7 @@ to_ISO_8859_10_C3_offsets[64] = { -1, 23, 24, 25, 26, 27, 28, -1, -1, 29, -1, 30, -1, 31, 32, 33, 34, -1, -1, 35, 36, 37, 38, -1, 39, -1, 40, 41, 42, 43, 44, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_10_C3_infos[45] = { output1('\xC1'), output1('\xC2'), output1('\xC3'), output1('\xC4'), output1('\xC5'), output1('\xC6'), output1('\xC9'), output1('\xCB'), @@ -2149,7 +2149,7 @@ to_ISO_8859_10_C4_offsets[64] = { -1, -1, 14, 15, -1, -1, -1, -1, 16, 17, 18, 19, -1, -1, 20, 21, -1, -1, -1, -1, -1, -1, 22, 23, 24, -1, -1, 25, 26, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_10_C4_infos[27] = { output1('\xC0'), output1('\xE0'), output1('\xA1'), output1('\xB1'), output1('\xC8'), output1('\xE8'), output1('\xA9'), output1('\xB9'), @@ -2172,7 +2172,7 @@ to_ISO_8859_10_C5_offsets[64] = { 6, 7, -1, -1, -1, -1, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, 17, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_10_C5_infos[18] = { output1('\xD1'), output1('\xF1'), output1('\xAF'), output1('\xBF'), output1('\xD2'), output1('\xF2'), output1('\xAA'), output1('\xBA'), @@ -2193,7 +2193,7 @@ to_ISO_8859_10_E2_80_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_10_E2_80_infos[1] = { output1('\xBD'), }; @@ -2210,7 +2210,7 @@ to_ISO_8859_10_E2_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_10_E2_infos[1] = { &to_ISO_8859_10_E2_80, }; @@ -2239,7 +2239,7 @@ to_ISO_8859_10_offsets[256] = { -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_10_infos[6] = { NOMAP, &to_ISO_8859_10_C2, &to_ISO_8859_10_C3, &to_ISO_8859_10_C4, &to_ISO_8859_10_C5, &to_ISO_8859_10_E2, @@ -2269,7 +2269,7 @@ from_ISO_8859_11_offsets[256] = { 93, 94, 95, 96, 97, 98, 99,100, 101,102,103,104,105,106,107,108, 109,110,111,112,113,114,115,116, 117,118,119,120, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_11_infos[121] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -2346,7 +2346,7 @@ to_ISO_8859_11_C2_offsets[64] = { 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_11_C2_infos[33] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -2371,7 +2371,7 @@ to_ISO_8859_11_E0_B8_offsets[64] = { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, 58, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_11_E0_B8_infos[59] = { output1('\xA1'), output1('\xA2'), output1('\xA3'), output1('\xA4'), output1('\xA5'), output1('\xA6'), output1('\xA7'), output1('\xA8'), @@ -2402,7 +2402,7 @@ to_ISO_8859_11_E0_B9_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_11_E0_B9_infos[28] = { output1('\xE0'), output1('\xE1'), output1('\xE2'), output1('\xE3'), output1('\xE4'), output1('\xE5'), output1('\xE6'), output1('\xE7'), @@ -2425,7 +2425,7 @@ to_ISO_8859_11_E0_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_11_E0_infos[2] = { &to_ISO_8859_11_E0_B8, &to_ISO_8859_11_E0_B9, }; @@ -2454,7 +2454,7 @@ to_ISO_8859_11_offsets[256] = { 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_11_infos[3] = { NOMAP, &to_ISO_8859_11_C2, &to_ISO_8859_11_E0, }; @@ -2483,7 +2483,7 @@ from_ISO_8859_13_offsets[256] = { 97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112, 113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_13_infos[129] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -2564,7 +2564,7 @@ to_ISO_8859_13_C2_offsets[64] = { 32, -1, 33, 34, 35, -1, 36, 37, -1, 38, -1, 39, 40, 41, 42, -1, 43, 44, 45, 46, -1, 47, 48, 49, -1, 50, -1, 51, 52, 53, 54, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_13_C2_infos[55] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -2594,7 +2594,7 @@ to_ISO_8859_13_C3_offsets[64] = { -1, -1, -1, -1, 11, 12, 13, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, 16, 17, 18, 19, -1, -1, -1, 20, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_13_C3_infos[21] = { output1('\xC4'), output1('\xC5'), output1('\xAF'), output1('\xC9'), output1('\xD3'), output1('\xD5'), output1('\xD6'), output1('\xD7'), @@ -2616,7 +2616,7 @@ to_ISO_8859_13_C4_offsets[64] = { -1, -1, 14, 15, -1, -1, -1, -1, -1, -1, 16, 17, -1, -1, 18, 19, -1, -1, -1, -1, -1, -1, 20, 21, -1, -1, -1, 22, 23, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_13_C4_infos[24] = { output1('\xC2'), output1('\xE2'), output1('\xC0'), output1('\xE0'), output1('\xC3'), output1('\xE3'), output1('\xC8'), output1('\xE8'), @@ -2638,7 +2638,7 @@ to_ISO_8859_13_C5_offsets[64] = { 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 14, 15, -1, -1, -1, -1, -1, -1, 16, 17, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, 23, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_13_C5_infos[24] = { output1('\xD9'), output1('\xF9'), output1('\xD1'), output1('\xF1'), output1('\xD2'), output1('\xF2'), output1('\xD4'), output1('\xF4'), @@ -2660,7 +2660,7 @@ to_ISO_8859_13_E2_80_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_13_E2_80_infos[4] = { output1('\xFF'), output1('\xB4'), output1('\xA1'), output1('\xA5'), }; @@ -2677,7 +2677,7 @@ to_ISO_8859_13_E2_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_13_E2_infos[1] = { &to_ISO_8859_13_E2_80, }; @@ -2706,7 +2706,7 @@ to_ISO_8859_13_offsets[256] = { -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_13_infos[6] = { NOMAP, &to_ISO_8859_13_C2, &to_ISO_8859_13_C3, &to_ISO_8859_13_C4, &to_ISO_8859_13_C5, &to_ISO_8859_13_E2, @@ -2736,7 +2736,7 @@ from_ISO_8859_14_offsets[256] = { 97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112, 113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_14_infos[129] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -2817,7 +2817,7 @@ to_ISO_8859_14_C2_offsets[64] = { 32, -1, -1, 33, -1, -1, -1, 34, -1, 35, -1, -1, -1, 36, 37, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_14_C2_infos[39] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -2843,7 +2843,7 @@ to_ISO_8859_14_C3_offsets[64] = { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, -1, 45, 46, 47, 48, 49, 50, -1, 51, 52, 53, 54, 55, 56, -1, 57, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_14_C3_infos[58] = { output1('\xC0'), output1('\xC1'), output1('\xC2'), output1('\xC3'), output1('\xC4'), output1('\xC5'), output1('\xC6'), output1('\xC7'), @@ -2874,7 +2874,7 @@ to_ISO_8859_14_C4_offsets[64] = { 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_14_C4_infos[4] = { output1('\xA4'), output1('\xA5'), output1('\xB2'), output1('\xB3'), }; @@ -2891,7 +2891,7 @@ to_ISO_8859_14_C5_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_14_C5_infos[5] = { output1('\xD0'), output1('\xF0'), output1('\xDE'), output1('\xFE'), output1('\xAF'), @@ -2909,7 +2909,7 @@ to_ISO_8859_14_E1_B8_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_14_E1_B8_infos[6] = { output1('\xA1'), output1('\xA2'), output1('\xA6'), output1('\xAB'), output1('\xB0'), output1('\xB1'), @@ -2927,7 +2927,7 @@ to_ISO_8859_14_E1_B9_offsets[64] = { 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_14_E1_B9_infos[8] = { output1('\xB4'), output1('\xB5'), output1('\xB7'), output1('\xB9'), output1('\xBB'), output1('\xBF'), output1('\xD7'), output1('\xF7'), @@ -2945,7 +2945,7 @@ to_ISO_8859_14_E1_BA_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_14_E1_BA_infos[6] = { output1('\xA8'), output1('\xB8'), output1('\xAA'), output1('\xBA'), output1('\xBD'), output1('\xBE'), @@ -2963,7 +2963,7 @@ to_ISO_8859_14_E1_BB_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_14_E1_BB_infos[2] = { output1('\xAC'), output1('\xBC'), }; @@ -2980,7 +2980,7 @@ to_ISO_8859_14_E1_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_14_E1_infos[4] = { &to_ISO_8859_14_E1_B8, &to_ISO_8859_14_E1_B9, &to_ISO_8859_14_E1_BA, &to_ISO_8859_14_E1_BB, @@ -3010,7 +3010,7 @@ to_ISO_8859_14_offsets[256] = { -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_14_infos[6] = { NOMAP, &to_ISO_8859_14_C2, &to_ISO_8859_14_C3, &to_ISO_8859_14_C4, &to_ISO_8859_14_C5, &to_ISO_8859_14_E1, @@ -3040,7 +3040,7 @@ from_ISO_8859_15_offsets[256] = { 97, 98, 99,100,101,102,103,104, 105,106,107,108,109,110,111,112, 113,114,115,116,117,118,119,120, 121,122,123,124,125,126,127,128, }; -static const void* const +static const struct byte_lookup* const from_ISO_8859_15_infos[129] = { NOMAP, output2('\xC2','\x80'), output2('\xC2','\x81'), output2('\xC2','\x82'), @@ -3121,7 +3121,7 @@ to_ISO_8859_15_C2_offsets[64] = { 32, 33, 34, 35, -1, 36, -1, 37, -1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, -1, 49, 50, 51, -1, 52, 53, 54, -1, -1, -1, 55, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_15_C2_infos[56] = { output1('\x80'), output1('\x81'), output1('\x82'), output1('\x83'), output1('\x84'), output1('\x85'), output1('\x86'), output1('\x87'), @@ -3151,7 +3151,7 @@ to_ISO_8859_15_C3_offsets[64] = { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_15_C3_infos[64] = { output1('\xC0'), output1('\xC1'), output1('\xC2'), output1('\xC3'), output1('\xC4'), output1('\xC5'), output1('\xC6'), output1('\xC7'), @@ -3183,7 +3183,7 @@ to_ISO_8859_15_C5_offsets[64] = { 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, 5, 6, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_15_C5_infos[7] = { output1('\xBC'), output1('\xBD'), output1('\xA6'), output1('\xA8'), output1('\xBE'), output1('\xB4'), output1('\xB8'), @@ -3201,7 +3201,7 @@ to_ISO_8859_15_E2_82_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_15_E2_82_infos[1] = { output1('\xA4'), }; @@ -3218,7 +3218,7 @@ to_ISO_8859_15_E2_offsets[64] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_15_E2_infos[1] = { &to_ISO_8859_15_E2_82, }; @@ -3247,7 +3247,7 @@ to_ISO_8859_15_offsets[256] = { -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; -static const void* const +static const struct byte_lookup* const to_ISO_8859_15_infos[5] = { NOMAP, &to_ISO_8859_15_C2, &to_ISO_8859_15_C3, &to_ISO_8859_15_C5, &to_ISO_8859_15_E2, |